php下通过伪造http头破解防盗链的代码


Posted in PHP onJuly 03, 2010

伪造referer实例代码,主要用于一些突破防盗链,比如图片,软件等等

这里就直接给出完整的程序吧,具体的应用可以自己修改。
我这里给出的例子是很简单的,其实可以从这个例子中发展出很多的应用。比如隐藏真实的URL地址……嘿嘿,具体的就自己分析去吧
这里新建一个文件file.php。后面的参数就是需要伪造referfer的目标地址吧。如:file.php/http://www.xxx.xxx/xxx.mp3

<? 
$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);//得出需要转换的网址。这里我就偷懒,不做安全检测了,需要的自己加上去 
$downfile=str_replace(" ","%20",$url);//替换空格之类,可以根据实际情况进行替换 
$downfile=str_replace("http://","",$downfile);//去掉http:// 
$urlarr=explode("/",$downfile);//以"/"分解出域名 
$domain=$urlarr[0];//域名 
$getfile=str_replace($urlarr[0],'',$downfile);//得出header中的GET部分 
$content = @fsockopen("$domain", 80, $errno, $errstr, 12);//连接目标主机 
if (!$content){//链接不上就提示错误 
die("对不起,无法连接上 $domain 。"); 
} 
fputs($content, "GET $getfile HTTP/1.0rn"); 
fputs($content, "Host: $domainrn"); 
fputs($content, "Referer: $domainrn");//伪造部分 
fputs($content, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)rnrn"); 
while (!feof($content)) { 
$tp.=fgets($content, 128); 
if (strstr($tp,"200 OK")){ //这里要说明一下。header的第一行一般是请求文件的状态。具体请参照HTTP 1.1状态代码及其含义 hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html这里是正常的文件请求状态,只需直接转向就可以。其他状态的继续执行程序 
header("Location:$url"); 
die(); 
} 
} 
//302 转向,大部分的防盗链系统都是先判断referfer,对了的话再转向真实的地址。下面就是获取真实的地址。 
$arr=explode("n",$tp); 
$arr1=explode("Location: ",$tp);//分解出Location后面的真时地址 
$arr2=explode("n",$arr1[1]); 
header('Content-Type:application/force-download');//强制下载 
header("location:".$arr2[0]);//转向目标地址 
die(); 
?>

这段程序只能针对使用referer来判断是否盗链的防盗链系统,使用其他特殊方法防盗链的,这个估计就不适用了

$txt=$_GET['url']; 
echo referfile($txt,'https://3water.com/'); function referfile($url,$refer='') { 
$opt=array('http'=>array('header'=>"Referer:$refer")); 
$context=stream_context_create($opt); 
Header("Location:".$url); 
return file_get_contents($url,false,$context); 
}

<?php 
$host = "pakey.net"; //你要访问的域名 
$target = "/test.asp"; //你要访问的页面地址 
$referer = "http//uuwar.com/"; //伪造来路页面 
$fp = fsockopen($host, 80, $errno, $errstr, 30); 
if(!$fp){ 
echo "$errstr($errno)<br />\n"; 
}else{ 
$out = " 
GET $target HTTP/1.1 
Host: $host 
Referer: $referer 
Connection: Close\r\n\r\n"; fwrite($fp, $out); 
while(!feof($fp)){ 
echo fgets($fp, 1024); 
} 
fclose($fp); 
} 
?>

个是我用在我的小说小偷中的代码,破解 了云轩阁的txt电子书防盗链。
PHP 相关文章推荐
MySQL GBK→UTF-8编码转换
May 24 PHP
PHP下对数组进行排序的函数
Aug 08 PHP
php中全局变量global的使用演示代码
May 18 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 PHP
php模板引擎技术简单实现
Mar 15 PHP
PHP文件上传处理案例分析
Oct 15 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 #PHP
php防盗链的常用方法小结
Jul 02 #PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 #PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 #PHP
php操作excel文件 基于phpexcel
Jul 02 #PHP
PHP 多维数组排序(usort,uasort)
Jun 30 #PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 #PHP
You might like
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP 快速排序算法详解
2014/11/10 PHP
PHP编写RESTful接口
2016/02/23 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
Python 自动补全(vim)
2014/11/30 Python
Python闭包思想与用法浅析
2018/12/27 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
Jdbc数据访问技术面试题
2012/03/30 面试题
外贸实习生自荐信范文
2013/11/24 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
运动会演讲稿50字
2014/08/25 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
oracle重置序列从0开始递增1
2022/02/28 Oracle
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android
Windows server 2012搭建FTP服务器
2022/04/29 Servers