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批量删除数据
Jan 18 PHP
php header()函数使用说明
Jul 10 PHP
php中的观察者模式简单实例
Jan 20 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
php生成酷炫的四个字符验证码
Apr 22 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
php取出数组单个值的方法
Mar 12 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
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
javascript import css实例代码
2008/07/18 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
web.py获取上传文件名的正确方法
2014/08/26 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
python属于解释语言吗
2020/06/11 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
浅析Python 多行匹配模式
2020/07/24 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
任课老师推荐信范文
2013/11/24 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
小学生优秀评语
2014/12/29 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
导游词书写之黄山
2019/08/06 职场文书
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript