 |
|

11.07.2008, 10:59
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
С нами:
10578566
Репутация:
1228
|
|
Сообщение от Helios
ага, а такая вот ссылка заставит твой винт пожужжать:
Код:
**.php??tel=8913-";system("rm - rf /"); print (">
ничего не произойдет. твой код не выйдет за приделы "
|
|
|

11.07.2008, 18:11
|
|
Постоянный
Регистрация: 14.07.2005
Сообщений: 964
С нами:
10960226
Репутация:
1424
|
|
Сообщение от Helios
ага, а такая вот ссылка заставит твой винт пожужжать:
Код:
**.php??tel=8913-";system("rm - rf /"); print (">
ты прав что это не безопастно, надо так:
PHP код:
preg_replace("#tel=(.*)></td>#e","print('$1\\n')",file_get_contents('http://www.sexnsk.com/index.php'));
в кавычках фишка, всем видно думаю.
|
|
|

11.07.2008, 18:56
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
С нами:
10169427
Репутация:
589
|
|
Отнюдь не в кавычках тут дело. Строка, идущая вторым параметром, после подстановки туда значения из регекспа по сути передается как аргумент функции eval. Поэтому никакие кавычки тут не спасут. Выход куда проще: нужно просто подправить саму регулярку, чтобы ничего лишнего туда не попало:
Код:
было:
(.*)
стало:
([0-9\-]*)
|
|
|

11.07.2008, 19:28
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами:
10562786
Репутация:
537
|
|
ага.
может кто ещё подобный скриптец на форум подкинет?
|
|
|

11.07.2008, 22:16
|
|
Постоянный
Регистрация: 14.07.2005
Сообщений: 964
С нами:
10960226
Репутация:
1424
|
|
Сообщение от Helios
Отнюдь не в кавычках тут дело. Строка, идущая вторым параметром, после подстановки туда значения из регекспа по сути передается как аргумент функции eval. Поэтому никакие кавычки тут не спасут. Выход куда проще: нужно просто подправить саму регулярку, чтобы ничего лишнего туда не попало:
Код:
было:
(.*)
стало:
([0-9\-]*)
если не согласен - дай код который выполнится в моем последнем примере тогда. с одним phpinfo() чтоб проще было.
PS если кстати дашь реальный ответ то похекаем сразу кучи двигов ) с регулярками.
Последний раз редактировалось ShAnKaR; 11.07.2008 в 22:25..
|
|
|

11.07.2008, 23:17
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
С нами:
10441826
Репутация:
1686
|
|
интересно зачем ему база с номерами проституток? 0_0
|
|
|

11.07.2008, 23:32
|
|
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
С нами:
11217866
Репутация:
3812
|
|
спам по смс ^^
тематический
__________________
|
|
|

11.07.2008, 23:45
|
|
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
С нами:
10052876
Репутация:
77
|
|
званить и апщаца имхо
|
|
|

12.07.2008, 01:47
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
С нами:
10169427
Репутация:
589
|
|
Кажется ты не совсем понял мою мысль. Смотрим в ман:
The e modifier makes preg_replace() treat the replacement parameter as PHP code after the appropriate references substitution is done.
Отсюда видим, что второй параметр выполняется как код после замены переменных. Отсюда следует, что никаким способом невозможно изменить второй параметр так, чтобы невозможен был инжект (вариант удалить замену в принципе - не рассматриваем=)).
А уже следуя из этого приходим к тому, что нужно следить за регулярным выражением, убирая лишнее еще там. Ну а предложенное тобой (.*) пропускает все что угодно.
Этим то и грешили многие движки, да и грешат до сих пор.
ЗЫ: и похекать мы сможем только единицы, т.к. девелоперы за регулярками обычно следят
|
|
|

12.07.2008, 01:55
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
С нами:
10541186
Репутация:
921
|
|
Сообщение от D=P=CH= MOD=
Код:
http://forum.sexnsk.com/forumbackup-06.05.2008-ff546.sql

жжошь ... лови плюсы =)
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|