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 相关文章推荐
递归列出所有文件和目录
Oct 09 PHP
php下mysql数据库操作类(改自discuz)
Jul 03 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
php绘图中显示不出图片的原因及解决
Mar 05 PHP
小谈php正则提取图片地址
Mar 27 PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
destoon数据库表说明汇总
Jul 15 PHP
php格式化金额函数分享
Feb 02 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 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实现的功能是显示8条基色色带
2006/10/09 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
js内置对象 学习笔记
2011/08/01 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python实现关键词提取的示例讲解
2018/04/28 Python
便捷提取python导入包的属性方法
2018/10/15 Python
对python函数签名的方法详解
2019/01/22 Python
Python实现DDos攻击实例详解
2019/02/02 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python如何随机生成高强度密码
2020/08/19 Python
python3让print输出不换行的方法
2020/08/24 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
开水果连锁店创业计划书
2013/12/29 职场文书
校园广播稿500字
2014/02/04 职场文书
元旦促销方案
2014/03/15 职场文书
公司担保书格式范文
2014/05/12 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python