Просмотр полной версии : возможно ли подделать $_server['remote_addr']?
надо ли его проверять на валидность айпи?
GreenBear
26.06.2008, 16:12
нет
нет
Разве можно доверять $_server['remote_addr']?
А если в заголовке передавать неверный ip?
То и $_server['remote_addr'] - будет неверный
Exlibris
26.06.2008, 16:19
А если в заголовке передавать неверный ip?
То и $_server['remote_addr'] - будет неверный
Naydav если такой умный то скажи пожалуйстиа способ по твоему опра\еделить "верный айпи"
GreenBear
26.06.2008, 16:21
remote_addr в заголовке передать нельзя
Naydav если такой умный то скажи пожалуйстиа способ по твоему опра\еделить "верный айпи"
Я нахожусь по ip-адрессу 177.55.67.288 , а передаю в заголовке 10.10.10.10
Даже в квесте античата есть такое задание, 4 или 5 левел, если не ошибаюсь
Exlibris
26.06.2008, 16:26
епт ну через ремоте_аддр и придет 10.10.10.10 и каким образом ты собрался узнать 177.55.67.288...
--
Так что уже отвтили, расслабся
ну через ремоте_аддр и придет 10.10.10.10
В том то и дело, что придет 10.10.10.10, а не реальный айп
Ты вопрос прочитай
возможно ли подделать $_server['remote_addr']?
Да можно
Exlibris
26.06.2008, 16:40
Друг это ты вопрос прочитай и вникни в его смысл. Ты прочитал название темы если что =/
надо ли его проверять на валидность айпи?
А проверять на валидность нет смысла, потому что если 10.10.10.10 придет как ремоте_аддр, то 177.55.67.288 ты уже никак(формально, в рамках данного вопроса) не узнаешь
Цитата:
ну через ремоте_аддр и придет 10.10.10.10
В том то и дело, что придет 10.10.10.10, а не реальный айп
Ты вопрос прочитай
Цитата:
возможно ли подделать $_server['remote_addr']?
Да можно
:eek: хуясе о_О.
ну я читал (не помню где уже), что можно при определенных условиях обмануть сервак при передаче модифицированного X_FORWARDED_FOR, но чтобы подменять REMOTE_ADDR, ... хмм... можно линк у тебя попросить. или описание)
Получается, ты можешь перезаписать глобальную $_SERVER['remote_addr'] на любом серваке ? хм. сомнительно.
я имел ввиду проверить не на валидность, а на отсутствие вредоносного кода в нём.
тем не менее слепил вот такой говнокод, просьба помидорами не закидывать:
static function validateIp($ip) {
$ipData = explode('.', $ip);
if(sizeof($ipData) == 4){
for($i=0;$i<4;$i++)
if($i != 0)
$newIp .= ('.' . intval($ipData[$i]));
else
$newIp .= intval($ipData[$i]);
return $newIp;
}else
return 0;
}
Whirt
можно линк у тебя попросить. или описание)
Квест Античат
Задание - Нужно зайти с Ip 10.10.10.10
С помощью проги - InetCrack
GreenBear
26.06.2008, 17:05
не путай с дополнительными заголовками !!!
Дикс
$text = '127.0.0.1';
if (preg_match('/^([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][
0-9]|25[0-5])(\.([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4]
[0-9]|25[0-5])){3}$/', $text))
{
echo "Address is ok!"
}
Naydav, в квесте античата надо подделать x_forwarded_for, и отношения к ip_addr это никакого не имеет. Не надо утверждать то чего не знаешь. (Кстати уже второй раз)
2Дикс, в ip_addr ты не передашь ничего кроме ип адреса. Другое дело юзер агент.
.Slip, +1
Я так и сказал выше, но все же для уверенности глянул в описание InetCrack (ну мало ли ? :)
Программа позволяет задавать или модифицировать следующие парметры запроса:
# URL (в том числе строку запроса CGI)
# Referer
# Host
# Content-Type
# Accept-Encoding
# User-Agent
# Cookie
# Authorization
# X-Forwarded-Fornew
# Vianew
# Cache-Controlnew
Собственно давайте поставим точку.
$_SERVER['REMOTE_ADDR'] сюда записывается IP адрес, машины которая запрашивает, скрипт, и заполняется он информацией которую передаёт вебсервер к ПХП.
Иногда допускают ошибку в кодинге, в определении IP адреса, доверяя дополнительным заголовкам HTTP_* (например HTTP_X_FORWARDED_FOR) которые МОЖНО подменить послав произвольные дынные в этом заголовке, вследствии чего даётся доступ к какой то ограниченой зоне.
Иными словами в нормальных условиях туда записать ничего НЕЛЬЗЯ, никакими заголовками. Другое дело это криворукость програмеров, допускающих, глобализацию переменных например фунциями extact,import_global_variables и др. с неверными аргументами, тогда становится возможным переопределение практически любых переменных, вследствии чего возможно внедрение вредоносного произвольных данных в переменную $_SERVER['REMOTE_ADDR'].
Всё.
Разве можно доверять $_server['remote_addr']?
А если в заголовке передавать неверный ip?
То и $_server['remote_addr'] - будет неверный
remote_addr берется из заголовков пакета методами php его подделать нельзя, но можно подделать ip адрес в пакете с помошью perl raw_socket (используется в Ddos ) .
в заголовках можно поделать client_ip но remote_addr от этого не изменится.
не уверен но вроде нельзя заделать ип в пакете не подходящий под формат [0-9].[0-9].[0-9].[0-9]
Во первых, SQLHACK уже поставил жирную точку, думаю обсуждать далее бессмысленно, всем и так все ясно.
но можно подделать ip адрес в пакете с помошью perl raw_socket (используется в Ddos ) .
Ты немного не понял. Да, это возможно, например в UDP-флуде, TCP SYN флуде итд.
Т.е. там факта соединения впринципе нет, просто хост закидывается пакетами.
Когда же ты соединяешься, то сервер<-->клиент перекидывается номером последовательности (sequence number), и подтверждая тем самым подлинность соединения.
з.ы. писал по памяти, поправьте, если где ошибся :)
подменить можно в нескольких случаях:
а) если версия php уязвима , через массив $_GLOBALS в request
в) если в скрипте до этого используется перенос request в глобальную область, например через ф-ю extract() и тп
вобще во многих движках проверяется все равно на валид это значение.
PS хотя на счет первого сто % не скажу но вроде так было.
Из темы делаю вывод что проверять $_server['remote_addr'] не имеет смысла.
Всем спасибо.
Подделать можно на уровне Tcp/ip
AHTOLLlKA
23.05.2009, 18:21
да, по идее сам пакет потделать можно..
но вот инфа обратно уйдет по тому .. потделаному ИП...
а если там текст то я хз... может и проверяться переменная..
Pashkela
23.05.2009, 19:31
Естественно нельзя. Те, кто говорит, что можно, просто никогда этого не делали и не понимают ОЧЕВИДНОЙ разницы между
X_FORWARDED_FOR
и
$_SERVER['remote_addr']
потому что не обладают достаточной квалификацией
ЗЫЖ Ну кроме гринов и выше, ес-но
хватит архиологией заниматься..тему уже изжевали как только можно...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot