HTTP 헤더를 위조 하 여 균열 도난 방지 체인의 코드를 PHP는 자습서
방법 1
$txt = $_get [' url '];
에코 referfile ($txt, 'http://www.jzread.com/');
Referfile 기능 ($url, $refer = ') 없음
$opt = 배열 (' http ' = > 배열 (' 헤더 ' = > ' 참조: $refer '));
$context = stream_context_create ($opt);
헤더 ("위치:". $url);
File_get_contents 반환 ($url, False, $context);
}
<? php
$host = "Pakey.net"; 방문 하고자 하는 도메인 이름
$target = "/test.asp 자습서"; 방문 하려는 페이지의 주소
$referer = "http//jzread.com/"; 라우팅 페이지를 만들어
$fp = Fsockopen ($host, $errno, $errstr, 30);
만약 (! $fp) 없음
에코 "$errstr ($errno) < br / > n";
} 다른 없음
$out = "
$target http/1.1을 얻을
호스트: $host
참조: $referer
연결: closernrn ";
Fwrite ($fp, $out);
동안 (! feof ($fp)) 없음
에코 fgets ($FP, 1024);
}
Fclose ($FP);
}
? >
다른 방법
$url = str_replace ('/ file.php/', ',' $_server [' Request_uri ']); 여기 내가 게으른, 보안 테스트,
$downfile를 추가할 필요 = str_replace ("", "%20", $url); //replace 공간, 그리고, 실제 상황
$downfile에 의해 대체 될 수 있다 str_replace = ("http://", "", $downfile); //Remove http://
$urlarr = 폭발 ("/", $downfile); 도메인 이름을
$domain //Break $urlarr [0]; = //domain 이름
$getfile = str_replace ($urlarr [0], ', $downfile) //Get 부분의 헤더
$content = @fsockopen ("$domain", $errno $ERRSTR, 12) 대상 //Connect 호스트
경우 (! $content) {//link
오류 메시지를 표시 하지 않는 다이 ("미안 해요, 내가 연결할 수 없습니다 $domain.") ");
} Fputs ($content, "Get $getfile http / 1.0rn");
Fputs ($content, "호스트: $domainrn");
Fputs ($content, "참조: $domainrn"); //Forged 부분
Fputs ($content, "사용자-에이전트: 모질라 / 4.0 (호환; MSIE 6.0; Windows NT 5.1) rnrn ");
동안 (! feof ($content)) {$tp.
fgets ($content, 128); =
경우 ($TP, strstr)) {설명 //Here's. 헤더의 첫 번째 줄은 일반적으로 요청 파일의 상태. 참조 하십시오 HTTP 1.1 상태 코드와 그 의미 hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html 여기 일반 파일 요청 상태는, 그냥 그것에 직접. 다른 모양
국가의 지속적인된 실행 프로그램 헤더 ("위치: $url");
다이 ();
}
}
//302 스티어링, 가장 도난 방지 체인 시스템 Referfer를 먼저 판단 하는 다음 실제 주소. 여기에 실제 주소를 얻을 하는 방법이입니다.
$arr = 폭발 ("n", $TP);
$arr 1 = 폭발 ("위치:", $TP); 위치
$arr 2 후 //Decompose 진정한 타임 주소 = 폭발 ("n", $arr 1[1));
헤더 (' 콘텐츠-유형: 응용 프로그램 / 포스 다운로드 '); //force 다운로드
헤더 ("위치:". $arr 2 [0]).
다이 () 대상 주소로 설정 / ;