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

Форум PHP

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

 

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

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

тема: Как может поиметь хакер вот такой скрипт?
 
 автор: PantiL   (30.01.2006 в 17:45)   письмо автору
 
 


<?
if(!isset($_GET['go']))
{
          
$go "index";
}
else
{
          
$go $_GET['go'];
}
// go - это то что будем загружать в центральный блок
include "block/top_block.php";
include 
"block/menu_block.php";
include 
"block/down_block.php";
include 
"modules/".$go.".php"
//Подключаем главный шаблон 
include "theme/default/default.php";
?>

   
 
 автор: Loki   (30.01.2006 в 17:55)   письмо автору
 
   для: PantiL   (30.01.2006 в 17:45)
 

например, можно подставить в адресную строку какую-нибудь белиберду, после чего скрипт сакжет что на нашел файл "полный путь/белиберда.php".
туперь у нас есть структура сайта. можно идти в директорию modules и запускать все скрипты оттуда наблюдая что из этого выйдет и проверяя их на прочность. Если они написаны грамотно. То этим, скорее всего, все и ограничится.

   
 
 автор: neudor   (30.01.2006 в 17:58)   письмо автору
 
   для: PantiL   (30.01.2006 в 17:45)
 

Если имя этого скрипта, допустим, index.php и он находится в корневой папке, то вот так:

index.php?go=../index

Скрипт вызывает сам себя и зависает. По-другому здесь ничего вскрыть нельзя. (Насколько я знаю)
Но это только что касается само переменной $_GET['go']. Можно и так, как предложил Loki.

   
 
 автор: Artem S.   (30.01.2006 в 18:11)   письмо автору
 
   для: PantiL   (30.01.2006 в 17:45)
 

Можно получить любой файл на сервере с правами php скрипта.

   
 
 автор: Drago   (31.01.2006 в 01:43)   письмо автору
 
   для: Artem S.   (30.01.2006 в 18:11)
 

То есть, если хакер сможет, каким-либо образом, залить на сервер файл, то он сможет указать путь к нему в переменной "go" и исполнить его зловредный код.

   
 
 автор: Sasha   (31.01.2006 в 11:00)   письмо автору
 
   для: Drago   (31.01.2006 в 01:43)
 

Почему любой? Кажется только с папки modules/ или выше ...

   
 
 автор: Artem S.   (31.01.2006 в 11:46)   письмо автору
 
   для: Sasha   (31.01.2006 в 11:00)
 

?go=../../../../etc/passwd%00

   
 
 автор: Sasha   (06.02.2006 в 19:58)   письмо автору
 
   для: Artem S.   (31.01.2006 в 11:46)
 

И что?

   
 
 автор: Drago   (06.02.2006 в 21:18)   письмо автору
 
   для: Sasha   (06.02.2006 в 19:58)
 

И все. :) Если этот файл существует, то на экран выведется его содержимое.

   
 
 автор: Sasha   (06.02.2006 в 21:31)   письмо автору
 
   для: Drago   (06.02.2006 в 21:18)
 

это ж угадать надо. Я вот попробовал так сделать, и у меня например ничего не выводит.

   
 
 автор: cheops   (07.02.2006 в 03:23)   письмо автору
 
   для: Sasha   (06.02.2006 в 21:31)
 

Виртуальный хосты, как правило, в chroot засовывают, так что не часто это удаётся, даже если нет chroot выставляют права доступа не позволяющие читать, что папало, но бывает об этом забывают - администраторы тоже люди...

   
Rambler's Top100
вверх

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