XSS через кодировку Base64 в JSON
Этичный ХакерЭто одна из моих очень интересных и неожиданных находок при тестировании системы трэкинга приложений.
Пусть целью будет target.com, и в разрешённой области тестирования был только один поддомен. Давайте назовем его sub.target.com. Каждый раз, когда вы посещаете sub.target.com, он будет перенаправлять вас на sub.target.com/members/index.php, а после входа в систему основной URL-адрес будет sub.target.com/members/modules/.
Я провёл некоторую базовую разведку по приложению и не мог найти ничего стоящего в течение почти недели. Но затем, я подумал, что следует проверить не только базовый URL-адрес, упомянутый выше, но и sub.target.com/, используя общий список слов для PHP файлов.
Выполнив это, я нашел интересную конечную точку sub.target.com/i.php, которая выглядела следующим образом:

В нижней части мы видим URL адрес с GET параметром settings, который, кажется, принимает JSON в кодировке base64. Пробуем раскодировать:

Круто, теперь давайте попробуем ввести HTML код в некоторые значения и закодировать это обратно в base64:

Далее, используем это закодированное значение base64 в параметре settings, чтобы получить всплывающее окно XSS:

На этом все, спасибо за просмотр!