XXE Инъекционные атаки — Уязвимость XML External Entity с примерами — Information Security Squad

XXE Инъекционные атаки — Уязвимость XML External Entity с примерами

Введение

XXE инъекции ли внешние уязвимости XML — это особый тип атаки на стороне сервера или SSRF-атаки, связанный с злоупотреблением функциями в XML-синтаксических парсерах.

Функции через которые эти атаки идут, широко доступны, но редко используются, и когда они запускаются, могут вызывать атаку DoS (отказ в обслуживании), а в некоторых случаях гораздо более серьезную эскалацию, например, извлечение конфиденциальных данных или в худшем случае RCE или удаленное выполнение кода.

Что такое XML?

Согласно википедии: расширяемый язык разметки. Рекомендован Консорциумом мира паутины (W3C). Спецификация XML-описания XML-документы и отделение поведения XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому).

Что такое атака XXE

Дело в том, что сущности XML могут быть определены где угодно, в том числе и извне,если находится приложение XXE, и злоумышленник может злоупотреблять полномочиями с помощью объектов XML, чтобы запросить выполнение определенных файлов или даже вернуть содержимое файлов, если они знают структуру вашего веб-приложения, например.

Также стоит упомянуть, что с некоторыми синтаксическими анализаторами XML даже можно получить списки каталогов в дополнение к содержимому файла.

Пример атаки XXE

Пример будет выглядеть так:

Запрос

 POST http://example.com/xml HTTP/1.1

<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY bar SYSTEM
"file:///etc/lsb-release">
]>
<foo>
&bar;
</foo> 
Отклик

 

 HTTP/1.0 200 OK

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
Очевидно, что это простой пример, но его можно использовать для echo / etc / passwd, получить секреты из репозитория исходного кода или выполнить вредоносный код (например, веб-оболочку), если злоумышленнику удалось загрузить что-то.
Вы можете узнать больше, гораздо глубже:

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40