Шестой апдейт по стажировке Positive Technologies

На шестом вебинаре нас познакомили с довольно громкой и весьма крутой атакой под названием XML External Entity или кратко — XXE. Признаться, до вебинара я так и не успел на практике ознакомиться с атакой даже в совсем уж сферических лабораторных условиях, тем интереснее было ковыряться. Суть атаки подробно расписывать не стану, ознакомиться можно на сайте OWASP. В самой простой форме выглядит так:

Домашнее задание было нацелено на демонстрацию основных возможностей XXE: вывод данных, вывод данных out-of-band и сканирование внутренней сети. Ярослав подготовил 3 сервера, каждый со своим заданием.

  • Первый флаг — практически hello world, за одним исключением. Файл с флагом — /etc/flag, содержал угловые скобки, что делало чтение напрямую невозможным (ломается структура xml), тогда как /etc/issue и /etc/passwd и прочие читались исправно. Для обхода необходимо было задействовать php-враппер, так что файл кодировался в base64 на стороне сервера и уже не содержал «плохих» символов. Оставалось только декодировать и прочитать содержимое. Тексты полезной нагрузки не сохранились, так что я буду прикладывать приблизительные варианты.
  • Второй флаг — out-of-band, то бишь вывод содержимого файла /etc/flag в ответе был выключен и его нужно было переслать на свой сервер тем или иным способом. От наиболее дефолтного варианта атаки, предложенного Тимуром и Алексеем, отличалось применением всё того же  враппера php.
  • Третий флаг преложено было найти самостоятельно. Особенностью XXE является возможность сканировать локальную сеть от славного имени сервера, так что искать нужно было явно здесь. Многие просканировали хост nmap’ом и увидели зафильтрованный 88-й порт, после чего догадались, что прочитать его можно сервером как localhost:88. Я же, видимо, налажал с параметрами сканирования, поэтому 88-й порт не увидел, а флаг нашёл, запустив в интрудере перебор вида localhost:1…1024.

 

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

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