ホームページ  >  記事  >  バックエンド開発  >  PHP が http ヘッダーを偽造して anti-hotlink_PHP をクラックするチュートリアル

PHP が http ヘッダーを偽造して anti-hotlink_PHP をクラックするチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:35:35874ブラウズ

アンチホットリンク

偽造されたリファラーのサンプルコードは、主に画像やソフトウェアなどのアンチリーチングを突破するために使用されます。

完全なプログラムはここに直接提供されており、特定のアプリケーションに合わせて自分で変更できます。
ここで挙げた例は非常に単純です。実際、この例から多くのアプリケーションを開発できます。たとえば、実際の URL アドレスを隠すとか… ふふ、自分で解析してください
ここで新しいファイル file.php を作成します。次のパラメータは、偽造する必要があるリファファーのターゲット アドレスです。例: file.php/http://www.xxx.xxx/xxx.mp3

コード:
  1. $url
  2. =str_replace('/file.php/','',$_SERVER[" REQUEST _ URI「]) ; //変換する必要がある URL を取得します。私はここで怠けているだけで、安全性のチェックは行っていません
  3. $downfile
  4. =str_replace(" ","%20",$url);//スペースカテゴリを置換できますに基づく実際の状況を置き換えてください
  5. $downfile
  6. =str_replace("http://","",$downfile);// http:// を削除
  7. $urlarr
  8. =explode("/",$downfile);//ドメイン名を分解するには「/」を使用します
  9. $domain
  10. =$urlarr[0];//ドメイン名
  11. $getfile
  12. =str_replace($urlarr[0],'',$downfile);//ヘッダーを取得の一部
  13. $content
  14. = @fsockopen("$domain", 80, $errno, $errstr, 12) ; //に接続しますターゲットホスト
  15. if
  16. (!$content){//リンクが利用できない場合は、エラーメッセージが表示されます
  17. die
  18. (「申し訳ありませんが、$domain に接続できません。」); }
  19. fputs
  20. (
  21. $content, "GET $getfile HTTP/1.0rn"); fputs(
  22. $content
  23. , "ホスト: $domainrn"); fputs($content
  24. ,
  25. "Referer: $domainrn");//偽の部分 fputs($content
  26. ,
  27. "ユーザーエージェント: Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.1)rnrn"); ながら (!feof(
  28. $content
  29. )) { $tp.=fgets(
  30. $content
  31. , ); if (strstr(
  32. $tp
  33. ,"200 OK")){//ここで説明があります。通常、ヘッダーの最初の行は、要求されたファイルのステータスです。詳細については、「HTTP 1.1 ステータス コードとその意味」を参照してください。hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html これは通常のファイル リクエスト ステータスであり、直接リダイレクトするだけです。他の状態でもプログラムの実行を継続します
  34. header("場所:$url");
  35. 死ね
  36. (); }
  37. }
  38. //302 転用、ほとんどのアンチホットリンク システムは、最初にリファファーを決定し、それが正しければ実際のアドレスにリダイレクトします。実際のアドレスを取得するには以下のようにします。
  39. $arr=
  40. explode("n",$tp); $arr1=explode
  41. (
  42. "Location: ",$tp);//Locationの背後にあるリアルタイムアドレスを抽出します $arr2=explode
  43. (
  44. "n",$arr1[1]); header('Content-Type:application/force-download');//強制ダウンロード
  45. header("location:".$arr2[0]);//方向目標アドレス
  46. 死ね(); ?> 上記のコードは、リファラーを使用してホットリンクされているかどうかを判断するホットリンク防止システムにのみ使用できます。ホットリンクを防ぐ他の特別なメソッドには適用されません。
  47. <スパン 例: <スパン
    1. $txt=$_GET['url'];   
    2. echo referfile($txt,'http://www.jbxue.com/');   
    3. 関数 referfile($url,$refer='') {
    4. $opt=array('http'=>array('header'=>"リファラー:$refer" ));   
    5. $context=stream_context_create($opt);   
    6. ヘッダー("場所:".$url);   
    7. return file_get_contents($url,false,$context);   
    8. }
    9. $host = "pakey.net"//要访问のドメイン名
    10. $target = "/test.asp"//你要访问の页面地址
    11. $referer = "http//uuwar.com/"; //伪造来路页面
    12. $fp = fsockopen($host, 80, $errno, $errstr, 30);   
    13. if(!$fp){
    14. echo "$errstr($errno)n";   
    15. }else{
    16. $out = "
    17. GET $target HTTP/1.1
    18. ホスト: $host
    19. リファラー: $リファラー
    20. 接続: 閉じるrnrn";
    21. fwrite($fp, $out);   
    22. ながら(!feof($fp)){
    23. echo fgets($fp, 1024);   
    24. }
    25. fclose($fp);   
    26. }
    27. ?>   

    www.bkjia.com本当http://www.bkjia.com/PHPjc/743818.html技術記事アンチホットリンク偽リファラーのサンプルコードは、主に画像やソフトウェアなどのアンチホットリンクを突破するために使用されます。 完全なプログラムはここで直接提供されます。特定のアプリケーションに合わせて自分で変更できます。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。