PHP伪造referer实例代码


Posted in PHP onSeptember 20, 2008

这里就直接给出完整的程序吧,具体的应用可以自己修改。
我这里给出的例子是很简单的,其实可以从这个例子中发展出很多的应用。比如隐藏真实的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.0\r\n"); 
fputs($content, "Host: $domain\r\n"); 
fputs($content, "Referer: $domain\r\n");//伪造部分 
fputs($content, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n\r\n"); 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来判断是否盗链的防盗链系统,使用其他特殊方法防盗链的,这个估计就不适用了
PHP 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
第五章 php数组操作
Dec 30 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
深入array multisort排序原理的详解
Jun 18 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
Apr 10 PHP
php png失真的原因及解决办法
Nov 17 PHP
PHP面向对象分析设计的经验原则
Sep 20 #PHP
php 301转向实现代码
Sep 18 #PHP
PHP Squid中可缓存的动态网页设计
Sep 17 #PHP
PHP cron中的批处理
Sep 16 #PHP
FleaPHP的安全设置方法
Sep 15 #PHP
用PHP调用Oracle存储过程的方法
Sep 12 #PHP
php5新改动之短标记启用方法
Sep 11 #PHP
You might like
phpwind中的数据库操作类
2007/01/02 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
防止登录页面出现在frame中js代码
2014/07/22 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
python 搜索大文件的实例代码
2019/07/08 Python
俄罗斯鲜花递送:AMF
2020/04/24 全球购物
中学老师的自我评价
2013/11/07 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
教师开学感言
2014/02/14 职场文书
宣传口号大全
2014/06/16 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python