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面试题附答案
Jan 07 PHP
php adodb分页实现代码
Mar 19 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
老生常谈PHP位运算的用途
Mar 12 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 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
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
PHP在线书签系统分享
2016/01/04 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
javascript 函数参数限制说明
2010/11/19 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
python 重命名轴索引的方法
2018/11/10 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
高二化学教学反思
2014/01/30 职场文书
电力安全事故反思
2014/04/27 职场文书
财务人员担保书
2014/05/13 职场文书
三好学生事迹材料
2014/12/24 职场文书