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 相关文章推荐
PHP与SQL注入攻击[二]
Apr 17 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
PHP防盗链代码实例
Aug 27 PHP
php实现购物车功能(上)
Jul 23 PHP
yii2中的rules 自定义验证规则详解
Apr 19 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 PHP
laravel 解决多库下的DB::transaction()事务失效问题
Oct 21 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
PHP的FTP学习(四)
2006/10/09 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python实现查看系统启动项功能示例
2018/05/10 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
python源文件的字符编码知识点详解
2021/03/04 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
市场开发与营销专业求职信
2013/12/31 职场文书
给校长的建议书600字
2014/05/15 职场文书
中央空调节能方案
2014/06/15 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
个人事迹材料范文
2014/12/29 职场文书
大学新生入学感想
2015/08/07 职场文书
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android