이 기사의 예에서는 PHP가 컬을 사용하여 위조된 IP 소스를 구현하는 방법을 설명합니다. IP 소스를 위조하고, 도메인 이름을 위조하고, 사용자 정보를 위조하고, 참조용으로 모든 사람과 공유할 수 있습니다. 구체적인 구현 방법은 다음과 같습니다.
가짜 사용자 브라우저 정보 HTTP_USER_AGENT 정의
$binfo =array('Mozilla/4.0 (호환; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; AskTbPTV/5.17.0.25589; Alexa Toolbar)','Mozilla/5.0(Windows NT 5.1; rv:22.0) Gecko/20100101 ,'Mozilla /4.0(호환; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; Alexa Toolbar)','Mozilla/4.0(호환; MSIE 6.0; Windows NT 5.1; SV1)',$_SERVER[ 'HTTP_USER_AGENT' ]);
//123.125.68.*
//125.90.88.*
가짜 IP 소스 세그먼트를 정의합니다. 여기에서는 Baidu의 IP 주소를 찾고 있습니다
$cip = '123.125.68.'.mt_rand(0,254);
$xip = '125.90.88.'.mt_rand(0,254);
$헤더 = 배열(
'클라이언트-IP:'.$cip,
'X-FORWARDED-FOR:'.$xip,
);
컬을 사용하여 서버에 가짜 정보 보내기 시작
function getimgs( $url,$userinfo,$header)
{
$ch = 컬_init();
$timeout = 5;
컬_setopt($ch, CURLOPT_URL, "$url");
컬_setopt($ch, CURLOPT_HTTPHEADER, $header);
cur_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com/")
cur_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
cur_setopt($ch, CURLOPT_USERAGENT, "$userinfo");
컬_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout)
$contents = 컬_exec($ch);
컬_닫기($ch);
$contents 반환;
}
데이터를 받은 후 저장하겠습니다
function saveimgs( $handle )
{
$fp = fopen('a.jpg',"w");
fwrite($fp,$handle);
설정 해제($fp);
설정 해제($handle);
}
가짜 IP 인스턴스 테스트
$url ='http://www.jb51.net/images /로고.gif';
$u = $binfo[mt_rand(0,3)];
saveimgs(getimgs($url,$u,$header));
이렇게 하면 현재 디렉터리에 a.jpg 파일이 성공적으로 저장됩니다. 이제 서버 로그가 우리의 사용자 정의된 사용자 정보인지 확인할 수 있습니다
192.168.1.108 - - [22/Jul/2013:10:29:37 0800] "GET /test.php HTTP/1.1" 200 1244 "-" "Mozilla/4.0(호환; MSIE 8.0; Windows NT 5.1 ; 트라이던트/4.0; .NET CLR 2.0.50727; AskTbPTV/5.17.0.25589)"
192.168.1.108 - - [22/Jul/2013:10:29:37 0800] "GET / HTTP/1.1" 200 40538 "http://www.baidu.com/" "Mozilla/4.0(호환; MSIE 8.0; 윈도우 NT 5.1; .NET4.0C; 알렉사 툴바)
192.168.1.108 - - [22/Jul/2013:10:29:37 0800] "GET /test.php HTTP/1.1" 200 1244 "-" "Mozilla/4.0(호환; MSIE 8.0; Windows NT 5.1; Trident/ 4.0; .NET CLR 2.0.50727; AskTbPTV/5.17.0.25589)"
192.168.1.108 - - [22/Jul/2013:10:29:37 0800] "GET / HTTP/1.1" 200 40538 "http://www.baidu.com/" "Mozilla/5.0(Windows NT 5.1; rv :22.0) Gecko/20100101 Firefox/22.0"
아시다시피 IP 주소를 테스트하지 않은 것이 맞습니다. PHP를 사용하여 IP 주소를 얻으면 IP 주소가 위조되었다고 표시됩니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.