вольтаж
1.24K subscribers
38 photos
6 videos
7 files
64 links
Кибершумные заметки о безопасности веба, инфры и головы

связь - @w0ltage
Download Telegram
whatis @hackthishit

Меня бесит мерцающий курсор, но больше всего меня бесят статьи и отчеты формата

я впервые вижу это, но знаю точно, что если отправить 0xYAA на предпоследний порт, то получу шелл


Это неидеальный, и порой даже грубый, канал про offense / defense / dev веба, инфры и головы. Здесь будут повторяться недочеты, нестабильные скрипты, объяснения базы, шутки и явные screwups.

Хочу передавать знания, нежели показывать "step-by-step гайд по взлому тостера". хотя, взлом тостера звучит как неплохая статья

Маппинг хэштегов:
#guide = гайды
#tricks = техники
#invite = приглашаю тебя к соучастию в Х

#recon = разведка
#bypass = обходы СЗИ (WAF, AV, etc.)

#web = веб-приложения
#client_side
#server_side

#infra = инфраструктура
#mobile = мобилки, включая #android и #ios

#machineops = оптимизация работы за компом
#lifeops = как я упрощаю / усложняю себе жизнь
#aiops = как пользуюсь ИИ
#mindops = мысли и перестройка мыслительных процессов

#ctf = про захват флага на проде
#tool = занимательные инструменты (мои и чужие)
#ai = контент про ИИ
#teach = как обучать других

#me = инфа обо мне (привет осинтер)
вольтаж
КАК УЧИТЬСЯ С CTF Уже как пару недель подряд участвую в CTF соревнованиях по выходным, но лишь во время CTF кубка россии, в полночь, решил поискать "как же всё же играть в стф и чему-то учиться". Нашёл видео от LiveOverflow, рассказывающего методологию…
ПРИМЕР ОТЧЁТА ПО РЕШЕНИЮ CTF

Ранее в канале, расписывал "как учиться с CTF", пересказывая ролик LiveOverflow, суть которого можно свести к "пиши отчёт по ходу решения". Вышло так, что все праздники решал CTF'ки для ШКИБ. Решил 4 задачи (1, 2, 5, 7) из 7. К каждой задаче писал отчёт по ходу решение, одним из которых хочу поделиться.

Отчёт по 7 задаче, суть которой в вызове Reflected XSS. Рекомендую сначала попробовать самостоятельно потыкать. Писал отчёт в Obsidian.

Зачем делюсь?
Чтобы ты мог использовать отчёт в качестве шаблона для своих отчётов или чтобы вдохновился наконец начать описывать ход решения задачки. Самое главное - пиши для себя.

Твои отчёты являются твоим потоком мыслей и должны помогать тебе. Их необязательно разъяснять кому-то. Главное, чтобы ты сам понял, что написал вчера. Этот отчёт изначально писался без мысли, что его будет читать кто-то ещё.

#ctf #guide #web #client_side
Написал (yet another) инструмент для сбора поддоменов из поисковых систем. Пока парсятся только Google и несколько страниц Yandex (до появления капчи).

Цель инструмента - найти несколько поддоменов, которые не нашли другие инструменты, нежели найти всевозможные поддомены.

Среди результатов бывают false positive + сами результаты могут меняться от запуска к запуску. Рекомендую запускать 2-3 раза на 1 таргет.

В текущем состоянии, инструмент умеет:
- скрывать startup баннер
- конвертировать вывод JSON
- показывать страницу помощи

Буду рад послушать твой фидбек, предложения по улучшению, идеи по обходу капчи или проклинание неразборчивого кода.

#tool #recon #web
👍61
Сегодня читал доклад по использованию Chrome DevTools при тестировании веба.

Рассказал что лежит за пределами "посмотреть код элемента" и какими суперсилами обладает панели разработчика, с помощью которых ты сможешь тестировать веб без бурпа под рукой

#research #talk #web #chrome
Forwarded from HaHacking
🎄 #события #заметки #web #infrastructure #mobile #offense #defense #devsecops #malware #reverse #forensics #iot

➡️От лица HaHacking хочу поздравить каждого с наступившим Новым годом (дракона, кстати 💻)! 🔔⭐️

⭐️ Желаю срабатывания своих кавычек и несрабатывания чужих WAF'ов, побольше ивентов и инвайтов на ивенты, а также моральных сил, чтобы стойко переносить любой инцидент или статус отчёта! И, конечно, всего общечеловеческого: родных и близких рядом, искристой улыбки на лице и тепла на душе;


🎁 В честь праздника – символический подарок:

🧩 Бот @HaHacking2023bot

🧩 Карта qwqoro.github.io


Собрала 150 статей 2023 года выпуска, которые оставили наиболее яркий след в моей памяти; Благо спектр любопытных для меня тем довольно широкий, так что каждый сможет найти на созданной мною карте уголок, соответствующий его интересам и уровню погружения 🚗

⬆️ Организовала для них небольшой город, распределила по категориям и кратко описала каждую статью в карточках внутри зданий ‼️


Читайте, вдоволь наевшись салатов, тепло вспоминайте уходящий год и радушно встречайте следующий. С Новым годом!


➡️Enjoy! 🐇

   @HaHacking  🐇🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥62
👁 Курс на мисконфиги. Как поймать проблемный CORS на проде

На новогодних праздниках, вместо поедания мандаринов, решил совместно с SidneyJob, провести исследование поведений браузеров при мисконфигурации CORS.

Разобрали как работает SOP и CORS, посмотрели возможные мисконфиги и способы их эксплуатации, провели несколько экспериментов, и даже вспомнили, как работают регулярки.

Мы даже сделали для этого отдельную лабу! В ней ты сможешь создавать свои PoC'и при мисконфигурация CORS'a и сразу же кидать на них ссылки уже в отчёте.

Всё получившееся собрали вместе и выпустили как нашу первую статью на xakep.ru. Приятного чтения!

https://xakep.ru/2024/01/18/cors-cheatsheet/

#web #client_side #research
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍4
это мы читаем

#web #client_side #xss #tool
🔥3
👁 Таблица для определения веб-серверов / бэкенда по странице с 404 кодом ответа

https://0xdf.gitlab.io/cheatsheets/404

Помимо скриншотов, приведены примеры кода, триггерящие ошибку

#web #server_side #tricks
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤‍🔥3
это мы читаем, применяем и собираем слёзы вендоров с битриксом

#web #server_side #guide
💅6❤‍🔥2
наконец-то узнал как атаковать эту синюю коробку

#infrastructure #web #research
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 #bypass #server_side #guide
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
32248
Forwarded from HaHacking
⚠️  #web #offense #события #заметки

➡️Что по поводу React2Shell (CVE-2025-55182 / CVE-2025-66478)?

Исходя из обновлённых react2shell.com (ресурс от автора CVE) и репозитория msanft/CVE-2025-55182, на данный момент имеем следующее: подтверждается, что наконец стали распространяться валидные PoC, не требующие подключения vm#runInThisContext, child_process#exec, fs#writeFile и им подобных;

⚡️ UPD:

Уже доступен оригинальный PoC, использованный для репорта уязвимости вендору!



🐇 Проблема

Сервер и клиент обмениваются чанками, передавая их через form-data — причём чанки могут содержать ссылки друг на друга.  До этого коммита не проверялось, принадлежит ли ключ объекту — можно было добраться до прототипа;

С помощью нагрузки вроде "$1:__proto__:constructor:constructor" можно получить [Function: Function]глобальный конструктор;


Если чанк имеет поле then, то уязвимый сервер думает, что это промис — делает await decodeReplyFromBusboy(...) и вызывает then(resolve, reject);

Соответственно, можем сформировать специальный объект, где then указывал бы на Function


files = {
    "0": (None, '{"then":"$1:__proto__:constructor:constructor"}'),
    "1": (None, '{"x":1}'),
}



🐇 Эксплуатация

0️⃣ Десериализатор React через getChunck берёт чанк с ID=0 как корневой для разбора ссылок;

1️⃣ Через специальный синтаксис ($@) можно сослаться из чанка ID=1 на чанк ID=0, который вернул бы сырой чанк вместо разобранного объекта;

2️⃣ Когда .status вредоносного чанка = "resolved_model", мы попадаем в initializeModelChunk — где .value парсится как JSON, резолвятся ссылки и вызывается reviveModel, куда передаётся _response из чанка;

3️⃣ При обработке blob'ов с префиксом $B происходит вызов response._formData.get(response._prefix + obj);

4️⃣ Значит, в ._formData — указываем на конструктор Function, а в ._prefix — на произвольный код;

5️⃣ response._formData.get(response._prefix + "0") превратится в Function("█████████") ⚡️

6️⃣ Эксплуатация происходит во время десериализации, ещё до валидации запроса через getActionModIdOrError;  В запросе должен быть заголовок Next-Action


🐇 Полезная нагрузка

crafted_chunk = {
    "then": "$1:__proto__:then",
    "status": "resolved_model",
    "reason": -1,
    "value": '{"then": "$B0"}',
    "_response": {
        "_prefix": f"███████████████████;",
        "_formData": {
            "get": "$1:constructor:constructor",
        },
    },
}

files = {
    "0": (None, json.dumps(crafted_chunk)),
    "1": (None, '"$@0"'),
}


Разбирая полезную нагрузку по пунктам:
▪️"then": "$1:__proto__:then"
➡️ чтобы чанк ID=0 переписал собственный .then();

▪️"status": "resolved_model"
➡️ чтобы Chunk.prototype.then перешёл к выполнению initializeModelChunk;

▪️"reason": -1
➡️ чтобы не упасть на моменте toString в initializeModelChunk;

▪️"value": '{"then": "$B0"}'
➡️ чтобы после второго прохода десериализации превратить в thenable и добраться до response._formData.get(response._prefix + obj);

▪️"_prefix"
➡️ здесь произвольный код для выполнения;

▪️"_formData"
➡️ здесь указываем на конструктор;



🐇 Обнаружение & Митигация

   🧩   WAF правила:  AWS / Google Cloud / Azure

   🧩   Шаблон Nuclei:  projectdiscovery/nuclei-templates/.../CVE-2025-55182.yaml


CVE-2025-55182
Уязвимые версии:  от React 19 до React 19.2.0
Починили в React 19.2.1

Починили тут:  facebook/react/commit/7dc9...8700
Объявили тут:  react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components


CVE-2025-66478
Уязвимые версии:  от Next.js 15 до Next.js 16
Починили в этих версиях

Починили тут:  vercel/next.js/commit/6ef90...07b2
Объявили тут:  nextjs.org/blog/CVE-2025-66478




➡️Здесь и здесь — подробный разбор причины, следствия и эксплуатации, а также PoC от сильного тайваньского CTF'ера:

   🧩   msanft/CVE-2025-55182

   🧩   maple3142/48bc...f5f3


⚡️ А здесь – сразу несколько PoC'ов от оригинального автора CVE:

   🧩   lachlan2k/React2Shell-CVE-2025-55182-original-poc


➡️Stay safe!

   @HaHacking  🐇
Please open Telegram to view this post
VIEW IN TELEGRAM
74
🎇 сводка по react2shell безумию

events
* китайские группировки сориентировались за 30 часов и начали раскидывать майнеры монеро и LD_PRELOAD руткиты
* добрые (😈) хакеры пробивают таргеты и затем патчат их, устраивая дефейс с "сервер уязвим, фиксаните пж"

* Vercel вышли на h1 с программой по обходам их WAF. платят 50к$ за обход react2shell. уже получили репортов на 750к$

facts
* легче обновиться, чем защищаться waf'ом
* все сдают react2shell в бб и надеются на деньги
* багхантеры написали браузерное расширение на детект
* nuclei добавили смешные правила на детект
(кто пропустит сложение чисел в powershell?)

vuln
* в эксплойтие, для массовых детектов, в _prefix используют js функции вместо child_process
(curl не всегда есть в контейнере, но fetch() всегда есть в node runtime)

* react2shell не оставляет следов на диске, от чего все жалуются на сложность детекта
* уязвим не только next.js, но и прочее во влиянии react rsc: react router, vite rsc, parcel rsc, waku, redwood sdk


слушай, вОЛьТаЖ, а что почитать? не хочу вникать в килотонны текста


Включай этот absolute cinema. Это будут лучшие 40 минут за день.

https://youtu.be/tdDHUoi_TdQ
https://youtu.be/tdDHUoi_TdQ
https://youtu.be/tdDHUoi_TdQ

Автор содрал кожу с реакта, расставил в нём брейкпоинтов и прошёлся по всему пути эксплоита, объясняя логику внутренностей реакта на важных чекпоинтах (их больше 20)

Если останутся силы, затем нырни в килотонну текста от CEO Vercel. После видео - it's starting to make sense

https://x.com/rauchg/status/1997362942929440937

#CVE_2025_55182 #web
Please open Telegram to view this post
VIEW IN TELEGRAM
617