Веб-пентест 5.15 Наиболее популярные уязвимости серверной части. Часть 2
514.23K

5.15 Наиболее популярные уязвимости серверной части. Часть 2

1. Веб-пентест 5.15 Наиболее популярные уязвимости серверной части. Часть 2

Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва
Веб-пентест
5.15 Наиболее популярные
уязвимости серверной части.
Часть 2
автор: Талачев З. Р., г. Москва

2.

Введение
Введение
В данной теме мы продолжим изучать server-side атаки, как и какими инструментами их можно
реализовать, проведём несколько атак и составим отчёт по результатам проведённой
практической работы.
Результатом модуля будет освоение таких атак, как XXE: XML external entity, SSRF.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

3.

Уязвимость
XXE
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

4.

XXE
Инъекция внешних сущностей XML (также известная, как XXE) — это уязвимость веб-безопасности,
которая позволяет злоумышленнику вмешиваться в обработку XML-данных приложением. Она
часто позволяет злоумышленнику просматривать файлы в файловой системе сервера
приложений и взаимодействовать с любыми серверными или внешними системами, к которым
может получить доступ само приложение.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

5.

XXE
Стоит рассказать, что такое XML, в переводе с английского eXtensible Markup Language —
расширяемый язык разметки. Используется для хранения и передачи данных. Так что увидеть
его можно не только в API, но и в коде.
Этот формат рекомендован Консорциумом Всемирной паутины (W3C), поэтому он часто
используется для передачи данных по API.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

6.

XXE
Какие типы атак XXE существуют?
1
• Использование XXE для извлечения файлов, где внешняя сущность, включающая
содержимое файла, определяется и возвращается в ответе приложения.
• Использование XXE для выполнения атак типа SSRF, где внешняя сущность
определяется на основе URL-адреса внутренней системы.
• Использование слепого извлечения информации XXE по управляющему каналу,
где конфиденциальные данные передаются с сервера приложений в систему,
которой управляет злоумышленник.
• Использование слепого XXE для возвращения данных из сообщений об
ошибках, когда злоумышленник может вызвать сообщение об ошибке,
содержащее необходимую информацию.
• Использование XXE для извлечения файлов.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

7.

XXE
Чтобы выполнить атаку вида XXE-инъекция, которая извлекает произвольный файл из
файловой системы сервера, необходимо изменить представленный XML одним из двух
способов:
1. Введите (или измените) элемент DOCTYPE, который определяет внешнюю сущность,
содержащую путь к файлу.
2. Измените значение данных в XML, возвращаемых в ответе приложения, чтобы
использовать определённую внешнюю сущность.
Давайте разберём пару легких примеров. Начнем с любимого «прогерского» Hello world!.
Запрос:
POST http://example.com/xml HTTP/1.1
<foo>
Hello World
</foo>
Ответ:
HTTP/1.0 200 OK Hello World
Запрос:
POST http://example.com/xml HTTP/1.1
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY bar "World">
]>
<foo>
Hello &bar;
</foo>
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

8.

XXE
А теперь поговорим про то, как можно получить доступ содержимому системного файла
через XML:
Запрос:
POST http://example.com/xml HTTP/1.1
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY xxe SYSTEM file:///etc/passwd
]>
<foo> &xxe; </foo>
Ответ:
HTTP/1.0 200 OK
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
(...)
С помощью конструкции foo [ “file:///etc/passwd” можно увидеть содержимое файла
/etc/passwd (файл, содержащий в текстовом формате список пользовательских учётных
записей (аккаунтов)).
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

9.

XXE
Давайте рассмотрим атаку, которую называют «Billion Laughs attack», она перегружает память
анализатора XML и схожа по смыслу с DDoS-атакой, у парсера так же есть лимит по
одновременному количеству запросов. Некоторые анализаторы XML автоматически ограничивают
объём памяти, который они могут использовать.
Запрос:
POST http://example.com/xml HTTP/1.1
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY bar "World">
<!ENTITY t1 "&bar;&bar;">
<!ENTITY t2 "&t1;&t1;&t1;&t1;">
<!ENTITY t3 "&t2;&t2;&t2;&t2;&t2;"> ]>
<foo> Hello &t3; </foo>
Защита от XXE
• Самый простой и безопасный способ предотвратить атаки XXE — полностью отключить
определения типов документов (DTD).
• Воспользоваться рекомендациями из OWASP XXE Prevention Cheatsheet. Здесь описаны
рекомендации для разных парсеров.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

10.

Уязвимость
SSRF
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

11.

SSRF
SSRF (Server-Side Request Forgery — межсерверная подделка запросов) — атака, позволяющая
злоумышленнику создавать запрос от уязвимого сервера к ресурсам в интернете.
Рассмотрим веб-чат, который позволяет прикреплять к сообщениям картинки-карточки, добавляя
их URL. Причём карточки формируются на бэкенде.
Предполагается, что при загрузке карточки приложение будет обращаться по указанному URL и
формировать карточку.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

12.

SSRF
Но злоумышленник может предоставить в качестве URL картинки некий внутренний адрес, таким
образом получив несанкционированный доступ к сканированию внутренней сети компании и
отправке HTTP-запросов во внутреннюю сеть (где микросервисная архитектура).
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

13.

SSRF
Давайте рассмотрим пример, где злоумышленник делает запрос к HTTP-серверам Apache:
GET /?url=http://localhost/server-status HTTP/1.1
Host: example.com
В следующем примере используется file:/// схема URL-адреса:
GET /?url=file:///etc/passwd HTTP/1.1
Host: example.com
Защита от SSRF
Для уменьшения опасности SSRF стоит:
1. Ограничить доступ к внутренней инфраструктуре для потенциально
подверженных SSRF серверов:
• ввести межсервисную аутентификацию;
• использовать внешний прокси.
2. Ограничить поддерживаемые схемы.
3. Отключить поддержку перенаправлений или проверять каждый шаг.
4. Валидировать доменные имена.
5. Разобраться, как используемая библиотека обрабатывает адреса.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

14.

Уязвимость
Path/Directory
Traversal
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

15.

Path/Directory Traversal
Помимо стандартных документов на веб-сервер загружаются разные файлы, скрипты, шаблоны
конфигураций и другие документы. При правильной настройке пользователь не может получить
доступ к этим файлам. У него просто нет прав на другие директории. Обычно при переходе на
такую страницу возвращается 403 код ошибки.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

16.

Path/Directory Traversal
Нам особенно интересны случаи, когда возникают ошибки конфигураций и эти директории (по
случайности или по глупости) открыты, и мы можем получить доступ со всеми правами (root). Это
позволяет просматривать файлы, изменять их, а также проводить другие манипуляции.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

17.

Уязвимость
IDOR
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

18.

IDOR
IDOR (Insecure Direct Object References) — это небезопасная прямая ссылка на объект. Этот недостаток
часто объясняют на примере интерфейса службы поддержки, где, меняя ID тикета, можно читать
тикеты других пользователей. Но на самом деле IDOR не ограничивается изменением числового
идентификатора для чтения данных, результатом атаки может быть и изменение данных.
Встречаются также случаи, где узнать ID сложно, если это, например, хеш или uuid, в этом
случае риск сильно снижается.
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва

19.

IDOR
Как проводить атаки?
Уязвимость небезопасной прямой ссылки на объект возникает при выполнении следующих трёх
условий:
1
• Приложение показывает прямую ссылку на внутренний ресурс или операцию.
• Пользователь может манипулировать URL-адресом или параметром формы для изменения прямой ссылки.
• Приложение предоставляет доступ к внутреннему объекту, не проверяя, авторизован ли пользователь.
Допустим, интернет-магазин отправляет вам электронное письмо с персональным одноразовым
промокодом для траты определённой суммы в магазине. Затем он обрабатывает URL-адрес,
например:
www.example.com/applydiscount?promocode=123
Другим тривиальным примером IDOR может быть идентификатор пользователя,
включенный в URL-адрес.
www.example.com/userinfo/73627
Уязвимости IDOR могут возникать в формах смены пароля:
https://www.example.com/change_password.php?userid=1701
или при обращении к файлам
https://www.example.com/display_file.php?file.txt
Курс по кибербезопасности. Автор курса: Талачев З.Р., г. Москва
English     Русский Правила