Статья: http://www.astahost.com/info.php/hackers-view-easy-spoofing-ip-address_t13807.html код, написанный на основании этой статьи: PHP: <? @set_time_limit(0); @ini_set("display_errors","1"); $hostname = gethostbyname('2ip.ru'); $responce = ""; $fsock = fsockopen($hostname,80,$errnum,$errstr,2); $headers = "GET http://2ip.ru/ HTTP/1.1\n"; $headers .= "Host: 2ip.ru\n"; $headers .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\n"; $headers .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n"; $headers .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\n"; $headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\n"; $headers .= "X-Forwarded-For: 44.55.66.77\n"; $headers .= "Pragma: no-cache\n"; $headers .= "Referer: http://www.xakep.ru\n"; $headers .= "Keep-Alive: 500\n"; $headers .= "Connection: close\n"; $headers .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n"; fwrite ($fsock,$headers); while (!feof($fsock)) $responce .= fread($fsock,1024); echo $responce; ?> ключевая строчка здесь - это PHP: $headers .= "X-Forwarded-For: 44.55.66.77\n"; и даже 2ip.ru на эдакую хрень выдал вот что: Результат выполнения кода: 44.55.66.77 - это просто циферьки от балды, если кто не понял.
2 BlackSun: А что же это еще?))) вот зашел ЭТИМ же скриптом на СВОЙ снифак от Kanick: по моему строчка PHP: Real IP: 44.55.66.77 более чем красноречива
IP-spoofing это подмена адреса отправителя в заголовках TCP, UDP пакетов, а X-Forwarded-For в хидере http пакета - всего-лишь одно из полей, юзаемое не анонимными проксями для указания действительного адреса пользователя. Если бы благодаря этому полю перезаписывалось значение в REMOTE_ADDR, то да, это был бы спуфинг.
Сорец смотрел? Там примерно следующее: PHP: if (isset($_SERVER['X-Forwarded-For'])) { $proxy = $_SERVER['REMOTE_ADDR']; $ip = $_SERVER['X-Forwarded-For']; } else { $proxy = null; $ip = $_SERVER['REMOTE_ADDR']; } А X-Forwarded-For юзают далеко не всегда.
Да, но откуда у меня ощущение, что гугл это схавает, если делать множество запросов и попытаться избежать бана? Я не спорю, это не вот прямо полноценный спуфинг, но в некоторых случаях просто незаменим, потому что таки все привыкли считать, если есть X-Forwarded-For, то первый IP - прокси, а X-Forwarded-For - таки реальный IP, думается мне на этом построена система идентификации много, я бы даже сказал очень много где)) Ну в общем сами думайте, а я тоже пойду еще чонить придумаю
Это бага кодеров которые слишком доверяют X заголовкам HTTP, есть еще и HTTP_X_REAL_IP, в движке IPB есть ксати код который имено проверяет эти заголовки, если их нет то уже использует REMOTE_ADDR или HTTP_FROM которые для нельзя перезаписать.
Да взять тот же снифер от Каника уважаемого - какой IP вы бы сами посчитали реальным? Думается мне на первый бы даже не посмотрели
Абалдеть...называется "учим http протокол вместе" Pashkela, ты только сегодня узнал, что X-Forwarded-For можно подделать? Ни один нормальный сайт не будет определять ip из http-заголовков. Хотя бывают хостинги, где REMOTE_ADDR по умолчанию пустой, а IP хранится в X-Forwarded-For. Это не IP спуфинг а хня...в общем неуважуха, и незачёт... P.S. Следующая статья будет "Спуфинг Юзер-агента"?
В некоторых случаях, для разработок СВОИХ проектов, это может быть полезно, например, на одном форуме задали такой вопрос: Сабж выложен в разделе кодинг, а не в разделе уязвимости, вы слишком однобоко смотрите на вопросы в принципе, так что незачет и вам ЗЫЖ Так что это именно один из методов ip-спуфинга, чтобы вы там себе не думали.
Выше сказанное относится к классу Insufficient Process Validation, что является индивидуальной проблемой распространяемого ПО, и не умеет абсолютно никакого отношение к работе IP протокола (так и к Smurf, Spoofing атакам). К сожалению (а может и к счастью) в наше время уделяется совсем мало внимания дополнительным http-заголовкам, а зачастую используется метод "черных" списков которые не в состоянии полностью следить за "легитимным" трафиком, что и приводит к таким конфузам.
Баян.. Ещё я когда-то в своём сжимающем php прокси делал такую фичу.. В этом заголовке можно любые данные передавать. Я таким образом нашел на несколькох сайтах xss и sql-inj ) А вообще советую почитать спецификацию http протокола. Очень интересно