Безопасность кода ? Вот сам сурс Seobot |

16.07.2009, 04:31
|
|
Постоянный
Регистрация: 23.05.2005
Сообщений: 617
С нами:
11035659
Репутация:
71
|
|
Безопасность кода ? Вот сам сурс Seobot
Хотел бы поинтересоваться ибо когда то видел как ламают сайты через поисковик еще давненько.. типа через отображение запроса проводили атака в самом сайте.
Скачал я какойто скрипт под названием Seobot
Который отображает сприсо страниц и какой бот посетил
вот сам seobot
<?
if ( strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex') ) { $bot='Yandex';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot') ) {$bot='Google';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'Slurp') ) {$bot='Slurp';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'WebCrawler') ) {$bot='WebCrawler';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'ZyBorg') ) {$bot='ZyBorg';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'google') ) {$bot='Google';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'scooter') ) {$bot='AltaVista';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'stack') ) {$bot='Rambler';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'aport') ) {$bot='Aport';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'lycos') ) {$bot='Lycos';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'fast') ) {$bot='Fast Search';}
elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'rambler') ) {$bot='Rambler';}
if($bot !="") {
$ip = $REMOTE_ADDR;
$date = date("d.m.Y");
$home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$fh = fopen('sebot', "r");
$fil = fread($fh, filesize('sebot'));
fclose($fh);
$con=$date.":::".$bot.":::".$ip.":::".$home."::: \r\n".$fil;
$file=fopen("sebot","w");
fputs($file, $con);
fclose($file);
}
?>
Хотел просить безопасный ли этот код. т.е если пооделать запрост и он отобразит к примеру ковычки или инлюд какой или xss ?
Может поставить фильтрацию ? но там же надо что бы слеши были... а я опять в этих Регулярках ничо не понимаю..
Ну что бы все пропускало кроме кавычек или еще там чего ..
Вообщем просто хочу совета.
|
|
|

16.07.2009, 08:19
|
|
Новичок
Регистрация: 31.03.2009
Сообщений: 14
С нами:
9006942
Репутация:
6
|
|
В данном коде, если включен register_globals можно перезаписать переменную $bot, тем самым писать что угодно тебе в файл sebot, насколько это опасно решать тебе....
Чтобы исправить перед первым if'ом напиши $bot = ""; А лучше переписать все через switch case default.
|
|
|

16.07.2009, 11:16
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
С нами:
10077446
Репутация:
3965
|
|
Сообщение от FireFenix
Код абсолютно безопасен. Не заморачивайся так на этом
Неужели?
Можно записать любое содержимое в файл через специально сформированный УРЛ.
PHP код:
$home = $_SERVER . $_SERVER;
$_SERVER['REQUEST_URI'] - никак не фильтруется, подделать очень просто:
/script.php?a=<?php eval('ls -la'); ?>
__________________
BlackHat. MoDL
|
|
|

16.07.2009, 11:33
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
С нами:
8915117
Репутация:
389
|
|
Сообщение от Dimi4
Неужели?
Можно записать любое содержимое в файл через специально сформированный УРЛ.
PHP код:
$home = $_SERVER . $_SERVER;
Записать в файл можно всё что угодно, но т.к. файл не html и не php, то записанный контент не выполнится (по дефолту) => не повредит ничему
Последний раз редактировалось FireFenix; 16.07.2009 в 11:54..
|
|
|

16.07.2009, 11:47
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 86
С нами:
9047791
Репутация:
258
|
|
Сообщение от FireFenix
Записать в файл можно всё что угодно, но т.к. файл на html и не php, то записанный контент не выполнится (по дефолту) => не повредит ничему
Ну тогда давайте будем позволять пользователю записывать в файл (html), что попало, и попросим чтобы на ачате включили HTML, ибо это "не повредит ничему"
|
|
|

16.07.2009, 11:59
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
С нами:
10077446
Репутация:
3965
|
|
Сообщение от FireFenix
Записать в файл можно всё что угодно, но т.к. файл не html и не php, то записанный контент не выполнится (по дефолту) => не повредит ничему
Что значит по дефолту? Откуда ты знаешь какие дефолтные настройки сервака?
Не надо быть столь увереным. Если включен модуль mod_mime то пхп скрипт с любим расширением выполнится как пхп 
__________________
BlackHat. MoDL
|
|
|

16.07.2009, 22:14
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
С нами:
9796693
Репутация:
659
|
|
Сообщение от FireFenix
Записать в файл можно всё что угодно, но т.к. файл не html и не php, то записанный контент не выполнится (по дефолту) => не повредит ничему
Кури матчасть про локал-инклюд.
|
|
|

16.07.2009, 12:18
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
С нами:
9362947
Репутация:
1196
|
|
Сообщение от Dimi4
Неужели?
Можно записать любое содержимое в файл через специально сформированный УРЛ.
PHP код:
$home = $_SERVER . $_SERVER;
$_SERVER['REQUEST_URI'] - никак не фильтруется, подделать очень просто:
эмм,продимонстрируй плз я лично не догадуюсь,вот если б код имел такой вид:
PHP код:
$xek=$_GET['tratata']);
echo $xek;
то
вобщем с интересом взгляну,да и новое для себя узнаю.
и по сабжу:
вышеприведенный скрипт будет работать если
регистр_глобал он
потому как:
$ip = $REMOTE_ADDR;
Последний раз редактировалось L I G A; 16.07.2009 в 12:29..
|
|
|

16.07.2009, 12:14
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
С нами:
9023100
Репутация:
395
|
|
+ к этому локальный инклуд... или вдруг есть скрипт который читает этот лог, как минимум раскрытие информации о сервере )
|
|
|

16.07.2009, 12:25
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами:
9410786
Репутация:
2731
|
|
Код:
http://evilsite.ru/evilscript.php?<?phpinfo()?>
В файл запишется
Код:
evilsite.ruevilscript.php?<?phpinfo()?>
Если включен модуль mod_mime то пхп скрипт с любим расширением выполнится как пхп
Последний раз редактировалось mailbrush; 16.07.2009 в 12:38..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|