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 相关文章推荐
php的header和asp中的redirect比较
Oct 09 PHP
php 文件上传系统手记
Oct 26 PHP
php的大小写敏感问题整理
Dec 29 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
PHP实现的oracle分页函数实例
Jan 25 PHP
PHP7内核之Reference详解
Mar 14 PHP
thinkPHP事务操作简单案例分析
Oct 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
实用函数4
2007/11/08 PHP
PHP n个不重复的随机数生成代码
2009/06/23 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
PHP return语句的另一个作用
2014/07/30 PHP
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
Python中optparser库用法实例详解
2018/01/26 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Python线程指南分享
2019/11/19 Python
python如何实现word批量转HTML
2020/09/30 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
《再别康桥》教学反思
2014/02/12 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
2014年技术部工作总结
2014/12/12 职场文书
寻找成龙观后感
2015/06/12 职场文书
社团招新宣传语
2015/07/13 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书