На странице
Reflected XSS с большинством тегов и атрибутов заблокированными
Лаборатория
Reflected XSS into HTML context with most tags and attributes blocked · Practitioner
Решение
Из описания лабы понимаем, что скорее всего надо будет использовать Burp Intruder для попытки найти тег вне фильтров WAF. Закидываем в поле поиска наудачу <svg> — «Tag is not allowed».
Ладно, копируем запрос в Intruder, ставим переменную на место значения в параметре search. Идём в чит-шит PortSwigger, Copy tags to clipboard, эти 143 тега вставляем в поле нагрузок. Пуск.
Наши кандидаты — xss и body.
Окэ, попробуем отыскать разрешённые атрибуты у body.
В чит-шите находим body, Copy events to clipboard. Добавляем в Intruder. Но немного меняем нагрузку:
GET /?search=<body §> HTTP/2
Из интересных вариантов: onresize.
Попробуем сделать нагрузку из iframe + на onload менять его ширину. Тем самым сработает событие onresize у body, который мы инжектируем.
Ок, первая версия нагрузки:
<iframe src="https://0af40062043186e8833af680009500e2.web-security-academy.net/?search=<body onresize=print()>" onload=this.width=100>
В exploit-сервере доставляем эту нагрузку.
Лаба решена.
Ещё в этой категории
Внедрение произвольного объекта в PHP (PortSwigger Lab)
Восстановление утёкшего исходного кода и внедрение сериализованного объекта CustomTemplate, чей __destruct удаляет произвольный файл.
Эксплуатация небезопасной десериализации через функции приложения (PortSwigger Lab)
Подмена поля `avatar_link` в объекте сессии для удаления произвольного файла через функцию удаления аккаунта.
Изменение типов сериализованных данных (PortSwigger Lab)
Эксплуатируем нестрогое сравнение PHP, меняя тип `access_token` на целое `0` и обходя аутентификацию.