avatar
SHADOW:Group
Переслано от канала
24.11.2025 09:54
file://localhost/etc/passwd
что вернёт?

Да, вернётся /etc/passwd.

В RFC 8089, верный формат протокола описан как 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)


Представил сколько возможностей для обхода фильтров? И это не последний твой приступ FOMO за сегодня.

В статье The Minefield Between Syntaxes от @yeswehack, автор вскрывает проблемы разных синтаксисов и как парсеры выживают с ними.

Представим, ты нашёл SSTI, но WAF блокирует символ $
Что делать?


Неприятно, но не критично, ведь в Python / Perl возможно представить символ через \N{CHARACTER NAME}.

Пример обхода фильтра
\N{dollar sign}{7*7} == ${7*7} == 49


Уже на стену лезешь? Погоди, я с тобой ещё не закончил.

Давай дальше по загрузке файлов. Видел же в Content-Disposition есть параметр filename?

В RFC 6266 описан базовый подход с именем файла, но RFC 8187 вышибает дверь с... чего.. какие юникод байты


# RFC 6266
filename="image.png"

# RFC 8187
filename*=UTF8''image%0a.png


RFC 8187 вводит новые правила для filename параметра, включая поддержку всего Unicode + способности кодировать произвольные байты через %

То есть, ты можешь закодировать перенос строки (%0a == \n) и всячески ломать как парсинг имени файла, так и куда тот запишется.

. . .

FOMO карусель закрыта.
Как восстановишь силы, пробегись по статье автора ради:
⚀ разбор CVE из-за проблем синтаксиса [^]

⚀ кейс бб, из cache poisoning в stored xss через пролом валидации parse_url в PHP [^]

⚀ кейс бб, из слепого чтения файлов через SSRF в arbitrary file read [^]


Затем разнеси CTF по ресерчу
1. обход фильтров SSTI [^]

2. иной подход к протоколу file:// [^]

3. пролом parse_url в PHP [^]


#web #waf_bypass
🔥 29
👍 4
2 165 4.4K

Обсуждение 2

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram