full

full

You've been HACKED

Мнoгие сaйты испoльзуют прoверку нa испoльзoвaние proxy серверa. Прoверкa oснoвывaется нa aнaлизе HTTP зaгoлoвкoв, кoтoрые мoжнo легкo пoдделaть нa php. Тaким oбрaзoм, мoжнo выдaть свoй нaстoящий ip зa прoкси, a зa нaстoящий выдaть aбсoлютнo любoй ip - хoть ФБР-ий или прoстo 01.01.01.01

Крoме тoгo мoжнo пoдделaть и все oстaльные дaнные(брaузер, oС, стрaницa oткудa пришли...)

Мoдифицируйте... будет хoрoшим дoпoлнением в цепoчки прoкси, кoтoрoе свoей "пoддельнoстью" вынесет всем мoзг)

Сейчaс пoкaжу кaк этo делaется...


В PHP для имитaции клиентa(брaузерa) существует зaмечaтельнoе средствo curl. Примерoв пo испoльзoвaнию, aвтoризaции нa сервисaх и тд. в интернете пoлнo.

А для того чтоб сделать то, о чем я писал выше, нужно добавить в HTTP заголовки строку:

X-Forwarded-For: 01.01.01.01

где цифры - наш IP адрес.


PHP:

<?php

function get_page_from_ip($url,$ip) 

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_USERAGENT, 'Internet Explorer/6.0 (X11; U; Windows XP SP2; en-US; rv:1.7.2) Gecko/20040804');

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'Accept-Language: en-us,en;q=0.7,de-de;q=0.3',

'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',

'X-Forwarded-For: '. $ip));

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$page = curl_exec($ch);

curl_close($ch);

return $page;

}

echo get_page_from_ip('http://2ip.ru/', '19.19.19.19');

?>

Вот так простенько... и что же я увидел, когда (как видно из примера) загрузил (этим скриптом) страницу сайта сервиса по определению IP:

результат работы примера

IP подменен (настоящий не скрыт, но под 99% подозрение подставлен другой, если не учитывать, что для примера я взял слишком палевные цифры...)

Если Вам интересно, что происходит на 2ip.ru, то можете посмотреть такой вот класс для определения прокси серверов:


PHP:

/**

* Proxy Detector v0.1

* copyrights by: Daantje Eeltink (me@daantje.nl)

* http://www.daantje.nl

*

* first build: Mon Sep 18 21:43:48 CEST 2006

* last build: Tue Sep 19 10:37:12 CEST 2006

*

* Description:

* This class can detect if a visitor uses a proxy server by scanning the

* headers returned by the user client. When the user uses a proxy server,

* most of the proxy servers alter the header. The header is returned to

* PHP in the array $_SERVER.

*

* License:

* GPL v2 licence. (http://www.gnu.org/copyleft/gpl.txt)

*

* Support:

* If you like this class and find it usefull, please donate one or two

* coins to my PayPal account me@daantje.nl

*

* Todo:

* Add open proxy black list scan.

*/

class proxy_detector {

/**

* CONSTRUCTOR

* Set defaults...

*/

function proxy_detector(){

$this->config = array();

$this->lastLog = "";

//set default headers

$this->scan_headers = array(

'HTTP_VIA',

'HTTP_X_FORWARDED_FOR',

'HTTP_FORWARDED_FOR',

'HTTP_X_FORWARDED',

'HTTP_FORWARDED',

'HTTP_CLIENT_IP',

'HTTP_FORWARDED_FOR_IP',

'VIA',

'X_FORWARDED_FOR',

'FORWARDED_FOR',

'X_FORWARDED',

'FORWARDED',

'CLIENT_IP',

'FORWARDED_FOR_IP',

'HTTP_PROXY_CONNECTION'

);

}

/**

* VOID setHeader( STRING $trigger )

* Set new header trigger...

*/

function setHeader($trigger){

$this->scan_headers[] = $trigger;

}

/**

* ARRAY $triggers = getHeaders( VOID )

* Get all triggers in one array

*/

function getHeaders(){

return $this->scan_headers;

}

/**

* VOID setConfig( STRING $key, STRING $value)

* Set config line...

*/

function setConfig($key,$value){

$this->config[$key] = $value;

}

/**

* MIXED $config = getConfig( [STRING $key] )

* Get all config in one array, or only one config value as a string.

*/

function getConfig($key=''){

if($key)

return $this->config[$key];

else

return $this->config;

}

/**

* STRING $log = getLog( VOID )

* Get last logged information. Only works AFTER calling detect()!

*/

function getLog(){

return $this->lastLog;

}

/**

* BOOL $proxy = detect( VOID )

* Start detection and return true if a proxy server is detected...

*/

function detect(){

$log = "";

//scan all headers

foreach($this->scan_headers as $i){

//proxy detected? lets log...

if($_SERVER[$i])

$log.= "trigger $i: ".$_SERVER[$i]."\n";

}

//let's do something...

if($log){

$log = $this->lastLog = date("Y-m-d H:i:s")."\nDetected proxy server: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])." ({$_SERVER['REMOTE_ADDR']})\n".$log;

//mail message

if($this->getConfig('MAIL_ALERT_TO'))

mail($this->getConfig('MAIL_ALERT_TO'),"Proxy detected at {$_SERVER['REQUEST_URI']}",$log);

//write to file

$f = $this->getConfig('LOG_FILE');

if($f){

if(is_writable($f)){

$fp = fopen($f,'a');

fwrite($fp,"$log\n");

fclose($fp);

}else{

die("Fatal Error: Couldn't write to file: '$f'

Please check if the path exists and is writable for the webserver or php...");

}

}

//done

return true;

}

//nope, no proxy was logged...

return false;

}

}

?>

ExWex - лучший биткойн обменник ✔️

Report Page