
CVE-2025-29927 PoC | Эксплойт обхода аутентификации | Python-инструмент с использованием httpx | Уязвимость middleware | Инструментарий для этического хакинга
Это не просто обход — это откровение. Один-единственный заголовок, неверно понятый и обработанный логикой middleware, превращается в мастер-ключ к тому, что должно было быть заперто. CVE-2025-29927 эксплуатирует некорректно настроенный слой авторизации middleware — а именно системы, которые доверяют заголовку
x-middleware-subrequestбез проверки источника или контекста.
Простыми словами? Добавляешь один заголовок — и бам, ты внутри. Без аутентификации. Без токенов. Чистое доминирование.
Причина уязвимости: Многие современные веб-приложения используют middleware для перехвата и обработки API-запросов. Этот заголовок:
x-middleware-subrequest: middleware
доверяется некоторыми фреймворками (🤦), особенно при небрежном деплое. Когда он присутствует, бэкенд предполагает, что запрос уже прошёл слои аутентификации.
Вектор эксплуатации:
Формируя запрос с этим заголовком, атакующие могут обойти контроль аутентификации и напрямую получить доступ к защищённым маршрутам (например, /api/private, /admin/dashboard и т.д.).
HTTP-методы: Инструмент поддерживает GET, POST, PUT, DELETE, PATCH. Потому что мы не просто любопытные — мы дотошные.
Имя файла: thank_u_next.py
python thank_u_next.py -u https://target.com -p /api/private -m GET
Основные компоненты:
| Компонент | Назначение |
|---|---|
payload | Внедряет заголовок, вызывающий уязвимость |
exploit() |
httpx (установка через pip install httpx)[+] GET https://target.com/api/private → HTTP 200
[!] Possible vulnerability: access granted without authentication
Видишь этот зелёный 200? Это не просто код ответа. Это твоя победа. Их ошибка — твой доступ.
Этот скрипт предназначен только для образовательного и авторизованного тестирования. Если ты используешь его на несанкционированных целях, ты не хакер — ты просто глуп. И тебя поймают.
Большинство людей — овцы. Будь волком. Тем, кто знает, где ворота и как пройти через них, не стучась. Если ты читаешь это и всё ещё не понимаешь — тебе и не суждено.
| Отправляет вредоносный запрос |
analyze() | Выводит статус и показывает, сработал ли обход |
banner() | Показывает яркое ASCII-интро (почему бы и нет) |