Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Безопасность кода ? Вот сам сурс Seobot (https://forum.antichat.xyz/showthread.php?t=130017)

Adio 16.07.2009 04:31

Безопасность кода ? Вот сам сурс 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 ?


Может поставить фильтрацию ? но там же надо что бы слеши были... а я опять в этих Регулярках ничо не понимаю..

Ну что бы все пропускало кроме кавычек или еще там чего ..

Вообщем просто хочу совета.

n0reply 16.07.2009 08:19

В данном коде, если включен register_globals можно перезаписать переменную $bot, тем самым писать что угодно тебе в файл sebot, насколько это опасно решать тебе....

Чтобы исправить перед первым if'ом напиши $bot = ""; А лучше переписать все через switch case default.

Dimi4 16.07.2009 11:16

Цитата:

Сообщение от FireFenix
Код абсолютно безопасен. Не заморачивайся так на этом

Неужели?
Можно записать любое содержимое в файл через специально сформированный УРЛ.
PHP код:

$home $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

$_SERVER['REQUEST_URI'] - никак не фильтруется, подделать очень просто:

Цитата:

/script.php?a=<?php eval('ls -la'); ?>

FireFenix 16.07.2009 11:33

Цитата:

Сообщение от Dimi4
Неужели?
Можно записать любое содержимое в файл через специально сформированный УРЛ.
PHP код:

$home $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 


Записать в файл можно всё что угодно, но т.к. файл не html и не php, то записанный контент не выполнится (по дефолту) => не повредит ничему

erihtoney 16.07.2009 11:47

Цитата:

Сообщение от FireFenix
Записать в файл можно всё что угодно, но т.к. файл на html и не php, то записанный контент не выполнится (по дефолту) => не повредит ничему

Ну тогда давайте будем позволять пользователю записывать в файл (html), что попало, и попросим чтобы на ачате включили HTML, ибо это "не повредит ничему"

Dimi4 16.07.2009 11:59

Цитата:

Сообщение от FireFenix
Записать в файл можно всё что угодно, но т.к. файл не html и не php, то записанный контент не выполнится (по дефолту) => не повредит ничему

Что значит по дефолту? Откуда ты знаешь какие дефолтные настройки сервака?
Не надо быть столь увереным. Если включен модуль mod_mime то пхп скрипт с любим расширением выполнится как пхп :)

Gar|k 16.07.2009 12:14

+ к этому локальный инклуд... или вдруг есть скрипт который читает этот лог, как минимум раскрытие информации о сервере )

L I G A 16.07.2009 12:18

Цитата:

Сообщение от Dimi4
Неужели?
Можно записать любое содержимое в файл через специально сформированный УРЛ.
PHP код:

$home $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

$_SERVER['REQUEST_URI'] - никак не фильтруется, подделать очень просто:

эмм,продимонстрируй плз я лично не догадуюсь,вот если б код имел такой вид:
PHP код:

$xek=$_GET['tratata']);
echo 
$xek

то

PHP код:

?tratata=phpinfo(); 

вобщем с интересом взгляну,да и новое для себя узнаю.
и по сабжу:
вышеприведенный скрипт будет работать если
регистр_глобал он
потому как:
$ip = $REMOTE_ADDR;

mailbrush 16.07.2009 12:25

Код:

http://evilsite.ru/evilscript.php?<?phpinfo()?>
В файл запишется
Код:

evilsite.ruevilscript.php?<?phpinfo()?>
Цитата:

Если включен модуль mod_mime то пхп скрипт с любим расширением выполнится как пхп

Spyder 16.07.2009 12:42

L I G A, ппц, бред ты написал
во-первых
Цитата:

$xek=$_GET['tratata']);
echo $xek;

?tratata=phpinfo();
ну и что тебе это даст? выведет надпись "phpinfo()" ?))
Цитата:

вышеприведенный скрипт будет работать если
регистр_глобал он
потому как:
$ip = $REMOTE_ADDR;
Вовторых Димич говорит про $_SERVER['REQUEST_URI']; , её изменить то проблем не возникнет


Время: 13:16