Доминируем в dom xss
8Нихао, %username%!
Я, как скрипткидди со стажем, хотел бы рассказать о интересной софтине от mindedsecurity — DOMinator. Это хоть и не новое, но единственное на данный момент решение для поиска dom based xss динамически (няшный динамический анализатор, который позволяет по феншую проследить за выполнением операций в js). Статические анализаторы (есть в acunetix wvs, burp suite, w3af и других) явно отстают от того, что можно найти с помощью доминатора, вот поэтому я хотел бы написать небольшой обзор, взвесить плюсы и минусы, показать пару примеров.
Внимание, это плагин. Ага, хитровыдуманный такой плагин для firefox, и огнелис-то не простой, а специальная сборка — Aurora 8. Из фич, например, отсутствие urlencode (ну это короч когда вместо site/здарова получается site/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82) поэтому проблем с кавычками в url не будет. А это неплохо так помогает имитировать всеми любимый Internet Explorer и сразу запиливать векторы под него.
Сам плагин — симбиоз Firebug с дополнительной вкладкой под анализатор DOMinator’а, в логе которого и наблюдаем подозрительные места в js.
После запуска чудо-плагина и открытия страницы — url можно пофаззить кнопочкой play. Доминатор тем временем засунет переменные, интересные ему в url, и начинает следить за реакцией, кто что берёт и как использует. В логах плагина можно наблюдать наш подозрительный адрес и возможные баги, которые определяются как alert, warning и info по степени опасности. В вкладке Issue Description можно почитать, чего-же опасного обнаружил DOMinator, и как это можно использовать.
Вот демонстрация возможностей на примере vk.com
В идеале — xss будет выглядеть как-то так, его в принципе можно обнаружить и статичным анализатором :
А вот теперь о плохом. Огромные утечки памяти, циклы, зависания, краши. Софт ведет себя как отличница на вечеринке, ломается и не хочет слушаться. Иногда не видит явные и очевидные вещи, типа классических dom based. Со своей работой он справляется, пусть и придется несколько раз его перезапустить, да с «тяжёлыми» js он будет очень долго думать, а то и займет всю память и зависнет. Но на фоне отсутствия аналогов, это простимо.
А теперь о цене. Чтобы заполучить столь ценный софт, нужно заплатить 1000 баксов евро. Дороговато будет. Но в умелых руках его стоимость быстро отобьётся, хотя и не каждый багхантер может купить.
Получается такое двоякое впечатление, софт ведет себя как будто он на альфа-тестировании, был бы он бесплатный — цены бы ему небыло. А получается, что цена ему есть. Но в любом случае он работает, пусть и не идеально.
Купить или запросить демку можно .
Плюсуем с XSS
0Приветствую, %username%!
Не слышал о таком сервисе как Pluso? Если нет, .
Прикольные кнопки, которые можно настроить и воткнуть на любой сайт. К слову, из-за моей лени они используются и на моём бложике. Так вот.
После того, как подгружаются кнопки можно увидеть примерно следующий код
<a href="http://bo0om.ru/" title="Twitter" class="pluso-twitter"></a>
И как-то руки не доходили проверить, а что будет, если в url содержится символ двойной ковычки? Ну как что. Конечно xss!
К примеру, ссылка со страницей /»><img src=q onerror=alert(123)>.html заставит тег <a> закрыться и выполнить событие onerror у картинки. Но это как-то не кошерно, но тут до меня дошло что можно же использовать параметры!
Вот, например, http://ringcloud.ru/?"><img src=q onerror=alert("zdarova")> — заставит сайт ringcloud поздороваться ![]()
По данным самих же pluso — охват за 24 часа: 96 931 домен. То есть сейчас уязвимы почти 100,000 сайтов. Pluso на связь не выходят (несколько раз пытался), так что пусть это будет на их совести.
Из минусов, в современных браузеров <«»> будет в url-кодировке, поэтому реально такое юзать только в Internet Explorer. Ну да ладно ![]()
Учим провайдера пинговать
9Привет %username%.
Некоторое время назад была найдена прикольная бага на сайте Ростелекома, а именно произвольное выполнение команд операционной системы. На одном из сайтов провайдера была такая штука как ping и traceroute удаленного узла, но не фильтровались юзерские данные. Ну не сложилось у ростелекома с пингом, не на роутерах, не на сайтах.
Как эта хрень работает? А просто php скрипт выполняет команду ping $сайт и выводит ответ на страницу. Но дело в том, что вместо команды можно записать список команд.
Список команд — это последовательность команд, разделенных точками с запятой ; , амперсандами & , символами «и-если» && или «или-если» || .
Как раз точка с запятой вызывает последовательное выполнение предыдущей команды. Поэтому если указать в качестве сайта ya.ru;echo 123 — выполнятся две команды, пропингуется яндекс и выведется число 123.
Вот, можешь даже глянуть небольшой видос.
Таким образом пара команд, а именно ls -l, чтобы показать листинг директорий и файлов (и права на них), и echo "злой-злой-код" >> /tmp/shell.php, чтобы записать шелл в доступный для записи каталог. А каталогов там было несколько, tmp, font и i.
А это ещё один минус, неправильные права от пользователя daemon. Вот зачем скрипту, который делает пинг, возможность записи файлов?)
Ну поржали, а багу что-то не фиксят и не фиксят. Я писал в службу поддержки, создавал обращение, писал на support по почте, а реакции (тем более ответа) нет… В итоге я залил шелл, нашел админов в базе данных (баз было много), написал им на почту. Тишина. Ну что делать, нужно исправлять.
Теперь нужно было найти уязвимый код, почему-то я думал что там будет system() или exec(), а оказалось, что зло таилось в функции popen().
$ip = $_POST['ip'];
if (isset($_POST['tracert'])) {
$cmd = '/bin/traceroute';
}
if (!empty($cmd)) {
$f = popen("$cmd $ip", 'r');
while (!feof($f)) {
$buf .= fgets($f);
}
pclose($f);
}
Но вот незадача, редактировать-то нельзя! В руках у нас web-shell, linux с ядром 2.6.9 и уязвимый скрипт. Что будем делать?
А будем повышать привилегии. Благо версия kernel’а стара как смерть и под нее много различных эксплойтов.
В итоге я поместил сплойт, который имел расширение *.c в папку /tmp/ и скомпилировал его командой
gcc sploit.c -o exploit
где sploit.c имя входного файла, а exploit — выходного. Теперь, чтобы запустить его достаточно выполнить ./sploit, что я и сделал. И у меня нахрен всё повисло.
Возможно, это из-за криворукости, но сплойт повис, пришлось убить его и попробовать другой. Другой не захотел компилироваться (возможно там были намеренные ошибки, даже не смотрел), другой не захотел работать, в итоге был найден тот самый, который дал мне права root и я удалил все к херам исправил уязвимость отфильтровав эти спецсимволы. Потом я в базе нашёл чувака среди админов, чья почта была на mail.ru, узнал его имя и дату рождения, нашёл в vk.com, постучался в личку, мы чутка пообщались и шелл был удалён. А опыт остался ![]()
Такой вот пятничный пост, %username%. Не болей!
Атака на фишинг
0Нихао, %username%!
Оригинал этой статьи был опубликован на форуме , материал был взят после согласования с администрацией.
Фишинговые атаки очень распространены и иногда это единственный способ хоть как-то подобраться к доверчивому пользователю. По данным Kaspersky Lab, они регистрируют около 113 500 фишинговых атак в месяц и как-то довелось наткнуться на одну из них. На почту пришло письмо, с фэйковым документом, письмо не целевое и явно рассчитана на хомячков.
Приложение к договору, к какому нафиг договору?)) У меня такие письма сразу же попадают в спам без осмотра, но это письмо удостоилось внимания.
Текст письма:
Добрый день!
Во вложении документ, который вы просили поппавить.
Если все устраивает — подписываем. Мoжем прислaть курьераC уважением, Анна Черкасова
Руководитель отдела документооборота
+7(495)244264
Интересное было то, что была прикреплена картинка, стилизованное под документ, ссылка которого вела на левый домен с скриптом b64vr.php, который в параметре принимал base64-закодированный url на сам фэйк.
Сам скрипт вёл на mail-google.com-mail-5.u-0-inbox.pw, в котором была фэйковая форма авторизации гугла. Вообще, над скриптом можно было всячески издеваться, например, там были xss’ки.
При вводе пароля ты остаёшься на этом же сайте, где тебе доступен документ. Хотя сам документ не несет никакой смысловой нагрузки и был сделан для отвода глаз. Однако, был сделан дополнительный функционал, который позволяет скачать этот документ.
Ссылка для скачивания формировалась как-то так:
/view?account=ЖЕРТВА%40gmail.com&letter=Файл&act=down&folder=view&hl=ru&ticket=Идентификатор_письма
и нам отдаётся для скачивания оригинал документа
Но дело в том, что можно выйти из директории, если указать в имени файла ../../../ или их же в urlencode. Путём небольшого фаззинга мы получаем полноценную читалку и читаем /etc/passwd, где список юзеров данного хостинга.
Факт #1 После этого приходили ещё письма, с другими доменами, и все фэйки хостятся на sweb.ru
Так как на этом серваке был phpinfo (http://vh199.sweb.ru/phpinfo.php), первым делом решил прочитать его.
http://mail-google.com-mail-5.u-0-inbox.pw/view?account=putinvova%40gmail.com&letter=%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fvar%2fwww%2flocalhost%2fhtdocs%2fphpinfo.php&act=down&folder=view&hl=ru&ticket=1404890449
Сервер отдал файл с содержимым <?php phpinfo(); ?>
Осмотрев сайт получше, получаем список файлов, из которых состоит данный фэйк, интересующий нас файл был /templates/view.php
Так как это хостинг, помимо домашней директории нужно «зайти» в папочку public_html, а домашние директории мы узнаем из /etc/passwd, который вытащили выше.
Факт #2 У каждого пользователя в /etc/passwd помимо логина указана имя и фамилия, на кого зарегистрирован хостинг. Они обязательны для регистрации, но у пользователя где располагались фэйки — их не было.
После прочтения исходника фэйка можно посмотреть, куда он сохраняет и отправляет логи, найти там десяток-другой взломанных почтовых ящиков и все такое прочее.
Взлом email’ов — прибыльный бизнес, сотни людей ежедневно заказывают взлом мыл, цены на которые в среднем от 5 до 10 тысяч рублей за 1 email, просто нужно быть более внимательным, %username%, внимательно наблюдай куда ты переходишь и не вводи свои пароли налево и направо ![]()
Бывай)









