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

Иногда это приводит ко взлому сайта, иногда к обнаружению новой уязвимости, а часто – не приводит ни к чему, потому как ссылок иногда накапливается за день с десяток и более, и до многих просто не доходят руки. А бывает, что обнаружишь урл полугодовой давности о котором совсем позабыл. Так случилось и в этот раз. Просматривая свой трехмегабайтный текстовичек и пытаясь найти в нем ссылку на скуль-инъекцию в PostgreSQL на одном из сайтов, которую если мне не изменяет память туда заносил, я обнаружил урл одного Интернет-шопа с тележкой OsCommerce, которая была подвержена инъекции.

Проверив урл и выяснив, что бага еще жива, я решил разобраться с ней позже, так как моя память подсказывала, что в скрипте index.php тележки OsCommerce sql-инъекции вроде не находили. На всякий случай стал искать в гугле упоминания об уязвимости и понял, что не ошибся. Действительно, о наличии инъекции никаких упоминаний не было. Это и стало решающим фактором, ведь обнаружение неизвестной уязвимости в известном продукте сулило не только греющие душу упоминания о тебе в зарубежных и отечественных багтрагах, но и возможность нагнуть некоторое количество буржуинских шопов, тем более, что данная тележка позволяла хранить у себя картон с cvv, хотя и встречался он в ней не часто.

Быстро подобрав количество полей я столкнулся с проблемой вывода информации:

http://www.xackme.co.uk/catalog/index.php?cPath=122+union+select+1/*

Конечно, остановить это меня не могло, инъекция вслепую хоть и более трудоемкий процесс, но при наличии упорства и терпения она позволяет творить чудеса. Оставалось выяснить есть ли в шопе админка и соответственно админский аккаунт, потому как мой опыт общения с OsCommerce показывал, что не на всех шопах была админка. И как назло этот оказался из них. Необходимость в инъекции вслепую в данном случае отпадала.

Но меня в этот момент интересовала уже не столько сама скуль-инъекция, сколько версия тележки, подверженная ей. Мне хотелось заполучить исходники скриптов тележки! Найдя несколько версий в инете и изучив их, искомой инъекции я не обнаружил. Оставалось одно — взломать сервер и забрать исходники тележки.

Проведя reverse IP я выяснил, что там хостится еще десяток сайтов, все они оказались шопами с тележкой OsCommerce, все были подвержены инъекции, на всех отсутствовал вывод информации и админка. Но самое главное — все они, похоже, обращались к одной базе, так как оплата товара шла через http://www.xackme.co.uk.

И вот, просматривая инъекцию в одном из шопов, я обнаружил наконец-то вывод информации:

http://www.purrxakeptoys.com/buy/sexy-catalogue.php?Adult=189_228&erotic=7180+union+select+1,user()/*

В сообщении об ошибке, после параметра Id=. Это было уже кое-что. Я стразу бросился проверять возможность чтения информации из таблицы mysql.user, и на этот раз мне повезло:

http://www.purrxakepsextoys.com/buy/sexy-catalogue.php? Adult=189_228&erotic=7180+union+select+1,user+from+mysql.user/*

Выудив логин и хеш пароля я решил проверить возможность чтения файлов. Но если /etc/passwd я прочел без проблем, то найти httpd.conf мне так и не удалось, хотя я попробовал все мыслимые и немыслимые пути. Ну что же, придется искать веб-каталог со скриптами вслепую.

Зачарив путь к каталогу пользователя xackme взятый из /etc/passwd: xackme:x:1005:100::/home/xackme/auto_orders/:/bin/bash и добавив в конце /catalog/index.php я получил отворот поворот.

Попробовав поискать файл index.php по таким путям как:

/home/xackme/index.php
/home/xackme/www/index.php
/home/xackme/public_html/index.php
/home/xackme/html/index.php

но и это не принесло результата.

Тогда я вернулся к изучению /etc/passwd и при более подробном его анализе увидел строку:

wwwupdate:x:1006:100::/home/www-sites/:/bin/bash

Зачарив путь к файлу /home/www-sites/xackme/index.php и вставив в браузер запрос:

http://www.purrxakepsextoys.com/buy/sexy-catalogue.php?Adult=189_228& erotic=7180+union+select+1, LOAD_FILE(CHAR(47,104,111,109, 101,47,119,119,119,45,115,105,116,101,115,47,104,111, 110,111,117,114,47,105,110,100,101,120,46, 112,104,112,32)) /*

я получил в ответ пустую белую страницу в исходном коде которой я обнаружил исходный код скрипта index.php. Добавив к пути еще /catalog/ я получил исходники бажного скрипта, в котором, кстати, были прописаны и реквизиты доступа к базе данных:

$temp_link = mysql_connect('localhost', 'xackme', 'тут и них был пароль');
if ($temp_link) {
mysql_select_db("xackme_cat");

что делало не нужным брутфорс хеша.

К сожалению, бажная версия OsCommerce оказалась релизом семилетней давности:

/*
$Id: application_top.php,v 1.115 2001/05/12 19:53:50 dwatkins Exp $

The Exchange Project - Community Made Shopping!
http://www.theexchangeproject.org

Copyright (c) 2000,2001 The Exchange Project

Released under the GNU General Public License
*/

но тогда скуль-инъекцию почему-то никто не обнаружил. Но в качестве утешения у меня были реквизиты доступа к базе, которые дали мне доступ к шеллу. Залив в веб-каталог mysql-скрипт от Rst, я сдампил базу себе на винт, удалил скрипт и отправился спать.

Через пару дней я зашел на сайт и обнаружил, что админы отключили вывод сообщений об ошибках, хотя сама инъекция осталась и может эксплуатироваться в слепую. Зато пароль поменять они так и не догадались, так что в ближайшее время я загляну к ним еще раз для расширения своих неконституционных прав на их сервере…

Оставить мнение

Check Also

Как работает Linux: от нажатия кнопки включения до рабочего стола

Лучший способ понять, как работает операционная система, — это проследить поэтапно ее загр…