PHP偽造referer實(shí)例代碼
更新時(shí)間:2008年09月20日 00:59:13 作者:
偽造referer實(shí)例代碼,主要用于一些突破防盜鏈
這里就直接給出完整的程序吧,具體的應(yīng)用可以自己修改。
我這里給出的例子是很簡單的,其實(shí)可以從這個(gè)例子中發(fā)展出很多的應(yīng)用。比如隱藏真實(shí)的URL地址……嘿嘿,具體的就自己分析去吧
這里新建一個(gè)文件file.php。后面的參數(shù)就是需要偽造referfer的目標(biāo)地址吧。如:file.php/http://www.xxx.xxx/xxx.mp3
<?
$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);//得出需要轉(zhuǎn)換的網(wǎng)址。這里我就偷懶,不做安全檢測了,需要的自己加上去
$downfile=str_replace(" ","%20",$url);//替換空格之類,可以根據(jù)實(shí)際情況進(jìn)行替換
$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);//連接目標(biāo)主機(jī)
if (!$content){//鏈接不上就提示錯(cuò)誤
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的第一行一般是請求文件的狀態(tài)。具體請參照HTTP 1.1狀態(tài)代碼及其含義 hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html這里是正常的文件請求狀態(tài),只需直接轉(zhuǎn)向就可以。其他狀態(tài)的繼續(xù)執(zhí)行程序
header("Location:$url");
die();
}
}
//302 轉(zhuǎn)向,大部分的防盜鏈系統(tǒng)都是先判斷referfer,對了的話再轉(zhuǎn)向真實(shí)的地址。下面就是獲取真實(shí)的地址。
$arr=explode("\n",$tp);
$arr1=explode("Location: ",$tp);//分解出Location后面的真時(shí)地址
$arr2=explode("\n",$arr1[1]);
header('Content-Type:application/force-download');//強(qiáng)制下載
header("location:".$arr2[0]);//轉(zhuǎn)向目標(biāo)地址
die();
?>
這段程序只能針對使用referer來判斷是否盜鏈的防盜鏈系統(tǒng),使用其他特殊方法防盜鏈的,這個(gè)估計(jì)就不適用了
我這里給出的例子是很簡單的,其實(shí)可以從這個(gè)例子中發(fā)展出很多的應(yīng)用。比如隱藏真實(shí)的URL地址……嘿嘿,具體的就自己分析去吧
這里新建一個(gè)文件file.php。后面的參數(shù)就是需要偽造referfer的目標(biāo)地址吧。如:file.php/http://www.xxx.xxx/xxx.mp3
復(fù)制代碼 代碼如下:
<?
$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);//得出需要轉(zhuǎn)換的網(wǎng)址。這里我就偷懶,不做安全檢測了,需要的自己加上去
$downfile=str_replace(" ","%20",$url);//替換空格之類,可以根據(jù)實(shí)際情況進(jìn)行替換
$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);//連接目標(biāo)主機(jī)
if (!$content){//鏈接不上就提示錯(cuò)誤
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的第一行一般是請求文件的狀態(tài)。具體請參照HTTP 1.1狀態(tài)代碼及其含義 hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html這里是正常的文件請求狀態(tài),只需直接轉(zhuǎn)向就可以。其他狀態(tài)的繼續(xù)執(zhí)行程序
header("Location:$url");
die();
}
}
//302 轉(zhuǎn)向,大部分的防盜鏈系統(tǒng)都是先判斷referfer,對了的話再轉(zhuǎn)向真實(shí)的地址。下面就是獲取真實(shí)的地址。
$arr=explode("\n",$tp);
$arr1=explode("Location: ",$tp);//分解出Location后面的真時(shí)地址
$arr2=explode("\n",$arr1[1]);
header('Content-Type:application/force-download');//強(qiáng)制下載
header("location:".$arr2[0]);//轉(zhuǎn)向目標(biāo)地址
die();
?>
這段程序只能針對使用referer來判斷是否盜鏈的防盜鏈系統(tǒng),使用其他特殊方法防盜鏈的,這個(gè)估計(jì)就不適用了
相關(guān)文章
php實(shí)現(xiàn)圖片添加描邊字和馬賽克的方法
這篇文章主要介紹了php實(shí)現(xiàn)圖片添加描邊字和馬賽克的方法,通過自定義函數(shù)imagemask與imagetextouter實(shí)現(xiàn)圖片添加馬賽克與文字描邊的效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
php中數(shù)據(jù)庫連接方式pdo和mysqli對比分析
這篇文章主要介紹了php中數(shù)據(jù)庫連接方式pdo和mysqli從各個(gè)方面進(jìn)行了對比分析,十分全面,這里推薦給大家,有需要的小伙伴來參考下。2015-02-02
PHP編程計(jì)算文件或數(shù)組中單詞出現(xiàn)頻率的方法
這篇文章主要介紹了PHP編程計(jì)算文件或數(shù)組中單詞出現(xiàn)頻率的方法,給出了2個(gè)統(tǒng)計(jì)單詞頻率的示例,涉及php正則、數(shù)組操作及字符串遍歷等相關(guān)技巧,需要的朋友可以參考下2017-05-05
PHP中array_merge和array相加的區(qū)別分析
今天處理一個(gè)這樣的問題:如何獲取字符鍵名相同值不同的兩個(gè)數(shù)組值集合,用array_merge和數(shù)組相加都不可行,讓我認(rèn)真比較了下PHP中array_merge和array相加的區(qū)別2013-06-06
php+websocket 實(shí)現(xiàn)的聊天室功能詳解
這篇文章主要介紹了php+websocket 實(shí)現(xiàn)的聊天室功能,結(jié)合實(shí)例形式詳細(xì)分析了php+websocket 實(shí)現(xiàn)的聊天室功能相關(guān)配置、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05

