Довольно часто встречаются ситуации, когда злоумышленники отправляют полезную нагрузку ХХЕ в веб-приложение, при этом не получая обратного ответа. Это явление можно охарактеризовать как уязвимость вне зоны обслуживания. Чтобы оптимизировать данный процесс, злоумышленнику необходимо заставить анализатор XML послать дополнительный запрос на сервер, контролируемый им же, чтобы в итоге прочитать содержимое заветного файла. Сегодня мы с вами постараемся на практике освоить основные тонкости XXE OOB, чтобы получить полезные навыки и отточить своё мастерство на будущее.
Задачку сегодня мы возьмём не простую. Она же использовалась во время CTF на одном из престижных специализированных мероприятий в Москве. Итак, ближе к делу.
Вот наша форма, вводим произвольные значения и смотрим в BURP, что получилось:
Пересылаем в Repeater и отключаем intercept.
Вот такой незамысловатый запрос/ответ у нас получился. Т.к. это ХХЕ, надо изменить Content-type на xml, а затем проверить, работает ли вообще то, что мы делаем. =)
Отправим запрос на сторонний сервер и послушаем логи:
Как видно, запрос сработал.
Ну что ж, пора углубляться дальше =)
Я использовал это и это для составления запроса:
В файле 1.dtd прописываем:
Остается только слушать )))
И когда делаем запрос получаем:
Закодировано в base 64. Раздекодим и получим:
Ура! У нас всё получилось ))) В видео все нагляднее. На сегодня всё 🙂