Використання XML External Entities (XXE) для атак на інші сайти
22:49 28.07.2012В статті Використання сайтів для атак на інші сайти два роки тому я розповів про можливість атак на інші сайти через Abuse of Functionality і Remote File Include уразливості, та навів приклади Abuse of Functionality дірок на різних сайтах (в тому числі сайтах Google, Yahoo і W3C). Окрім даних класів дірок, XXE уразливості також можуть використовуватися для атак на інші сайти.
В класифікації уразливостей WASC TC v2.0 є такий клас як XML External Entities (XXE) (WASC-43). Який ще називають XXE Injection.
Дані уразливості можуть використовуватися для читання вмісту локальних файлів - Local File Disclosure (тобто Directory Traversal). Але також дану уразливість можна використати для з’єднання з зовнішніми серверами. Тобто можна робити запити до інших веб сайтів і через дані уразливості можна проводити CSRF і DoS атаки на інші сайти.
Атака відбувається через тег ENTITY. Якщо вказати локальний файл - “file:///etc/passwd”, то відбудеться включення і витік змісту локального файлу. А якщо вказати зовнішній ресурс - “http://site/page”, то відбудеться запит до сторінки зовнішнього сайта. Що можна використати для атак на зовнішні сайти, аналогічно атакам описаним у вищезгаданій статті.
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT methodName ANY>
<!ENTITY xxe SYSTEM "http://site/page" >]>
<methodCall>
<methodName>&xxe;</methodName>
</methodCall>
XXE Injection уразливості були виявлені в багатьох продуктах. Таких як Squiz CMS, Zend Framework, CakePHP та численні продукти Adobe (BlazeDS, Adobe LiveCycle Data Services ES2, Adobe ColdFusion, Adobe LiveCycle ES2). І враховуючи популярність Zend Framework, вони будуть знайдені ще в багатьох продуктах (як це було виявлено в CakePHP).
Для автоматизації атак на інші сайти можна використати такий інструмент як DAVOSET - DDoS attacks via other sites execution tool. Abuse of Functionality дірки передбачали відправлення як GET, так і POST запитів. DAVOSET був розроблений для GET запитів.
XXE Injection атака передбачає відправлення спеціального XML-запиту методом POST. Тому інструмент для проведення атак на інші сайти через XXE уразливості повинен підтримувати POST метод. Наприклад, його підтримка може бути додана в DAVOSET.
Субота, 15:29 19.04.2014
You can read this article on English in The Web Security Mailing List: Using XML External Entities (XXE) for attacks on other sites.