Как часто, на пентестах/багбаунти, сталкивались с Race Condition?
Anonymous Poll
16%
1-2 раз
14%
3+ раз
50%
Знаком только в теории
20%
ХЗ че это такое
#racecondition #logic
Часто слышу, что Race Condition - это редкое явление, мало где можно встретить. Но на самом деле эта штука сейчас очень популярна, все из-за тех же микросервисных архитектур и не только. И встретить состояние гонок можно много где. В подробностях описывать почему и из-за чего возникает недостаток не станем, достаточно просто описывал уже Bo0oM, можно прочитать здесь
Где вообще можно встретить Race Condition?
- Пополнение счета
- Вывод денег со счета
- Покупка чего-то (например, в игровых магазинах или в банке)
- Оплата подписки
- Создание нескольких сущностей, когда по логике разрешена только одна
- В принципе везде, где есть ограничение на одно действие, но мы хотим несколько раз это выполнить.
А что на практике?
Перейдем к багам, которые я встречал за последний год. Я насчитал 8 штук, это и на ББ и на пентестах. В большинстве своем они типичные, как я описывал в списке выше. И чаще всего, если это сервис с таким функционалом, то там будет состояние гонки.
Опишу один из багов, который встречал на ББ:
Это все тот же Readme, где в своем аккаунте каждый желающий может создавать бесплатные проекты, но они были с большими ограничениями. Так же там была подписка enterprise, такой проект создавался отдельно, за какую-то определенную сумму и в этот enterprise проект можно было добавлять обычные бесплатные проекты, и они автоматом становились тоже enterprise. Но тут была проблема, что можно было добавлять 3 проекта только. Как вы уже поняли, решение было найдено – это с помощью Race Condition добавить столько проектов сколько хочешь.
Это как раз пример того, что состояние гонки не только там, где работа с деньгами.
Инструменты
Чаще всего я пользуюсь плагином в Burp – Turbo Intruder.
Так у меня выглядит скрипт в Turbo Intruder:
Часто слышу, что Race Condition - это редкое явление, мало где можно встретить. Но на самом деле эта штука сейчас очень популярна, все из-за тех же микросервисных архитектур и не только. И встретить состояние гонок можно много где. В подробностях описывать почему и из-за чего возникает недостаток не станем, достаточно просто описывал уже Bo0oM, можно прочитать здесь
Где вообще можно встретить Race Condition?
- Пополнение счета
- Вывод денег со счета
- Покупка чего-то (например, в игровых магазинах или в банке)
- Оплата подписки
- Создание нескольких сущностей, когда по логике разрешена только одна
- В принципе везде, где есть ограничение на одно действие, но мы хотим несколько раз это выполнить.
А что на практике?
Перейдем к багам, которые я встречал за последний год. Я насчитал 8 штук, это и на ББ и на пентестах. В большинстве своем они типичные, как я описывал в списке выше. И чаще всего, если это сервис с таким функционалом, то там будет состояние гонки.
Опишу один из багов, который встречал на ББ:
Это все тот же Readme, где в своем аккаунте каждый желающий может создавать бесплатные проекты, но они были с большими ограничениями. Так же там была подписка enterprise, такой проект создавался отдельно, за какую-то определенную сумму и в этот enterprise проект можно было добавлять обычные бесплатные проекты, и они автоматом становились тоже enterprise. Но тут была проблема, что можно было добавлять 3 проекта только. Как вы уже поняли, решение было найдено – это с помощью Race Condition добавить столько проектов сколько хочешь.
Это как раз пример того, что состояние гонки не только там, где работа с деньгами.
Инструменты
Чаще всего я пользуюсь плагином в Burp – Turbo Intruder.
Так у меня выглядит скрипт в Turbo Intruder:
def queueRequests(target, wordlists):Его почти всегда хватает, в некоторых других, специфичных, ситуациях через скрипт.
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=1000,
requestsPerConnection=2000,
pipeline=False
)
engine.start()
for i in range(3, 8):
engine.queue(target.req, randstr(i), learn=1)
engine.queue(target.req, target.baseInput, learn=2)
for word in open('\\wordlists\\race.txt'):
engine.queue(target.req, word.rstrip())
def handleResponse(req, interesting):
if '200 OK' in req.response:
table.add(req)
👍15❤🔥3🔥2
Крутое интервью от Егора и Никиты - BugBounty глазами исследователя.
https://music.yandex.ru/album/22592369/track/105695635
https://music.yandex.ru/album/22592369/track/105695635
Яндекс Музыка
Серия #3 - BugBounty глазами исследователя
🔥4
Forwarded from Web3 bounty plz
Рамазан @r0hack поделился на своем канале.
Интервью само-по-себе достаточно интересное, советую послушать 🙂
НО, что реально ценного я оттуда вынес – это узнал про платформу code4rena.com.
Если вам интересно попробовать себя в поиске уязвимостей в смарт-контрактах – имхо, это лучший вариант для старта. Объясняю, почему:
1) Эта платформа коллективного аудита смарт-контрактов, туда часто попадают еще слабо (или вообще не) аудированные смарт-контракты. Соответственно, высок шанс найти даже примитивные баги.
2) Платят за дубликаты, что опять же огромный плюс. Суть такая, что есть некий фиксированный баунти-пул, который сначала делится на все баги (согласно их критичности), а в рамках одного бага – на всех, кто его нашел.
3) Никакого KYC в большинстве случаев, а значит, welcome Russian researchers.
4) Доступны более или менее подробные протоколы прошлых аудитов: https://code4rena.com/reports. Это как открытые отчеты на H1 – также очень круто, можно учиться на чужих находках.
Интервью само-по-себе достаточно интересное, советую послушать 🙂
НО, что реально ценного я оттуда вынес – это узнал про платформу code4rena.com.
Если вам интересно попробовать себя в поиске уязвимостей в смарт-контрактах – имхо, это лучший вариант для старта. Объясняю, почему:
1) Эта платформа коллективного аудита смарт-контрактов, туда часто попадают еще слабо (или вообще не) аудированные смарт-контракты. Соответственно, высок шанс найти даже примитивные баги.
2) Платят за дубликаты, что опять же огромный плюс. Суть такая, что есть некий фиксированный баунти-пул, который сначала делится на все баги (согласно их критичности), а в рамках одного бага – на всех, кто его нашел.
3) Никакого KYC в большинстве случаев, а значит, welcome Russian researchers.
4) Доступны более или менее подробные протоколы прошлых аудитов: https://code4rena.com/reports. Это как открытые отчеты на H1 – также очень круто, можно учиться на чужих находках.
🔥9
При тестировании API обязательно нужно просматривать API через всевозможные приложения, например, и через Web, и через Mobile и через Desktop
Зачем это делать?
- Могут быть разные совсем разные API;
- Некоторые эндпоинты для мобильного интерфейса могут оставить без защиты, например, без рейт лимитов на перебор OTP, без капчи и т.д.;
- Какие-то дополнительные или специфические эндпоинты, которые нужны были для взаимодействия с приложением (по этому пункту ниже приведу пример);
- Часто бывает, что через Desktop видно больше функционала или наоборот.
Пример из ББ.
Это было в достаточно крупном сервисе, где как раз был и веб, и мобильная версия приложения. После открытия мобильного приложения и проксирования траффика в Burp сразу полетели такие запросы:
#api #pentest
Зачем это делать?
- Могут быть разные совсем разные API;
- Некоторые эндпоинты для мобильного интерфейса могут оставить без защиты, например, без рейт лимитов на перебор OTP, без капчи и т.д.;
- Какие-то дополнительные или специфические эндпоинты, которые нужны были для взаимодействия с приложением (по этому пункту ниже приведу пример);
- Часто бывает, что через Desktop видно больше функционала или наоборот.
Пример из ББ.
Это было в достаточно крупном сервисе, где как раз был и веб, и мобильная версия приложения. После открытия мобильного приложения и проксирования траффика в Burp сразу полетели такие запросы:
https://server/api/download?https://PhotoServer/api/files/uuid/Таким образом API тянула в мобильное приложение фотографии с другого своего сервера, которые потом отображались в новостях и в других сущностях. Ну и тут сразу становится понятно, что скорее всего тут есть SSRF, так и оказалось.
#api #pentest
👍10🔥4👏1
Не особо люблю искать Client Side баги, на ББ вообще не ищу их. Но знать все равно надо, так как на пентестах часто встречаем.
И вот в очередной раз почитывал про DOM XSS и решал таски и наткнулся на интересный доклад Тани Новиковой про Frontend Security:
- распространенные ошибки, которые допускаются разработчиками,
- какие вектора атак существуют,
- как хакеры эксплуатируют уязвимости фронтенда
- как с этим всем бороться.
Видео версия
Текстовая версия
#front #client #xss
И вот в очередной раз почитывал про DOM XSS и решал таски и наткнулся на интересный доклад Тани Новиковой про Frontend Security:
- распространенные ошибки, которые допускаются разработчиками,
- какие вектора атак существуют,
- как хакеры эксплуатируют уязвимости фронтенда
- как с этим всем бороться.
Видео версия
Текстовая версия
#front #client #xss
👍11
При эксплуатации SQL-инъекций почти всегда использую данный сервис: https://sqlwiki.netspi.com/
Чеклисты удобно распределены на:
- Каждый шаг эксплуатации
- Типы и техники
- Векторы атак БД
- И все это распределено по разным СУБД
Чеклисты удобно распределены на:
- Каждый шаг эксплуатации
- Типы и техники
- Векторы атак БД
- И все это распределено по разным СУБД
Netspi
NetSPI SQL Injection Wiki
A one stop resource for fully identifying, exploiting, and escalating SQL injection vulnerabilities across various Database Management Systems.
👍21🔥9
image_2022-07-18_13-54-31.png
64 KB
На этих выходных рубились в HTB Bussinnes CTF 2022
З.Ы. в прошлом году были 7
З.Ы. в прошлом году были 7
🔥26👍4👏1
Forwarded from Уточки информации
Вчера СМИ (как русскоязычные, так и англоязычные) раструбили о том, что хакеры Deteact выложили дамп БД пользователей популярного сервиса «Webtotem», позволяющего анализировать безопасность ресурсов. 🤦♂️
🔥🔥Дамп датируется 26.05.2020 (подтверждается данными в нем). На текущий момент “расшифровано” более 1 млн. хешированных паролей и скоро мы опубликуем их анализ на уникальность. 😎
🔥🔥Дамп датируется 26.05.2020 (подтверждается данными в нем). На текущий момент “расшифровано” более 1 млн. хешированных паролей и скоро мы опубликуем их анализ на уникальность. 😎
❤🔥14👏1
Веб-пентестер (Junior+/Middle- — Middle+)
Continuous Technologies (бренд DeteAct) — растущая компания, предоставляющая сервисы и разрабатывающая продукты в сфере кибербезопасности.
Мы — одни из лидеров на рынке услуг по оценке защищённости в России.
Мы помогаем клиентам обнаруживать уязвимости и действовать для их устранения, опередив злоумышленников.
Задача: участие в проектах по тестированию на проникновение и анализу защищённости приложений.
Вилка: 120-170 т.р. на руки
Обязанности:
— Анализ защищённости веб-приложений, фронтендов, API, исходного кода,
— Работа в команде как с российскими, так и зарубежными заказчиками (корпорации, стартапы, банки, компании любого размера и из различных индустрий),
— При желании: совместные исследования, разработка продуктов и сервисов, участие в соревнованиях и конференциях.
Примерные требования:
— Опыт проведения пентестов, понимание методологии, умение находить, эксплуатировать и объяснять основные веб-уязвимости,
— Уверенное владение всем необходимым инструментарием (Burp Suite, расширения, различные сканеры и нюансы их конфигурации) и технологическим стеком (программирование),
— Умение формулировать стандартные рекомендации по исправлению багов,
— Умение корректно оценивать уровень риска уязвимостей, придумывать атаки на бизнес-логику.
Условия:
— Работа удалённо или в московском офисе в БЦ "Савёловский Сити",
— Молодой коллектив и быстрорастущая компания,
— Время на исследования и публикации,
— Участие в конференциях и обучение.
HH: https://hh.ru/vacancy/68107810
В ЛС (neprivet.ru): @r0hack или @beched
Continuous Technologies (бренд DeteAct) — растущая компания, предоставляющая сервисы и разрабатывающая продукты в сфере кибербезопасности.
Мы — одни из лидеров на рынке услуг по оценке защищённости в России.
Мы помогаем клиентам обнаруживать уязвимости и действовать для их устранения, опередив злоумышленников.
Задача: участие в проектах по тестированию на проникновение и анализу защищённости приложений.
Вилка: 120-170 т.р. на руки
Обязанности:
— Анализ защищённости веб-приложений, фронтендов, API, исходного кода,
— Работа в команде как с российскими, так и зарубежными заказчиками (корпорации, стартапы, банки, компании любого размера и из различных индустрий),
— При желании: совместные исследования, разработка продуктов и сервисов, участие в соревнованиях и конференциях.
Примерные требования:
— Опыт проведения пентестов, понимание методологии, умение находить, эксплуатировать и объяснять основные веб-уязвимости,
— Уверенное владение всем необходимым инструментарием (Burp Suite, расширения, различные сканеры и нюансы их конфигурации) и технологическим стеком (программирование),
— Умение формулировать стандартные рекомендации по исправлению багов,
— Умение корректно оценивать уровень риска уязвимостей, придумывать атаки на бизнес-логику.
Условия:
— Работа удалённо или в московском офисе в БЦ "Савёловский Сити",
— Молодой коллектив и быстрорастущая компания,
— Время на исследования и публикации,
— Участие в конференциях и обучение.
HH: https://hh.ru/vacancy/68107810
В ЛС (neprivet.ru): @r0hack или @beched
❤🔥3👍3👎1
#tools #pentest #whitebox
Недавно наткнулся на эту тулзу: https://github.com/Yelp/detect-secrets
Для поиска захордкоженных данных в коде.
Поинтереснее, чем остальные подобные тулзы.
-
Недавно наткнулся на эту тулзу: https://github.com/Yelp/detect-secrets
Для поиска захордкоженных данных в коде.
Поинтереснее, чем остальные подобные тулзы.
-
GitHub
GitHub - Yelp/detect-secrets: An enterprise friendly way of detecting and preventing secrets in code.
An enterprise friendly way of detecting and preventing secrets in code. - Yelp/detect-secrets
🔥5👍1
Хм, интересная альтернатива для:
1. Nmap/Masscan
2. Subfinder -d hackerone.com | httpx -p portsForwarded from InfoSec
Тройка инструментов findomain, unimap, fhc для супер понятного и быстрого сбора открытых веб портов:
1)
2)
3)
4) PROFIT!
findomain -qt hackerone.com | unimap --fast-scan --stdin --url-output | fhc1)
findomain - ищем поддомены2)
unimap - быстренько сканим порты3)
fhc - чекаем на доступный вебчик4) PROFIT!
👍17
Forwarded from OWASP RU
https://github.com/OWASP/ASVS/blob/master/4.0/OWASP%20Application%20Security%20Verification%20Standard%204.0.3-ru.pdf за адаптацию и перевод спасибо Андрею Титову
GitHub
ASVS/4.0/OWASP Application Security Verification Standard 4.0.3-ru.pdf at master · OWASP/ASVS
Application Security Verification Standard. Contribute to OWASP/ASVS development by creating an account on GitHub.
👏4🔥1
👍2
Используешь какие-то чеклисты на пентестах?
Anonymous Poll
24%
Да, публичные
29%
Да, есть свои чеклисты
15%
Иногда
16%
Нет
17%
Что такое чеклисты ?
Privilege Escalation – еще один тип недостатка, который достаточно часто можно встретить в бизнес-логике приложений.
Повышение привилегий принято разделять на 2 части:
1. Вертикальное повышение привилегий – это когда мы с правами юзера, можем получить доступ к правам админа.
2. Горизонтальное повышение привилегий – это когда мы с правами пользователя, можем получить доступ к объектам другого пользователя. Но я такое поведение обычно называю Improper Access. Сейчас нам больше интересен первый пункт.
Почему такое вообще происходит? Причин несколько, по крайней мере те, которые знаю я:
- Всему виной Mass Assignment,
- Кривая реализация ролевой модели
С кривой реализацией ролевой модели на проектах сталкиваемся очень часто. Чаще всего это довольно простые и примитивные баги. Из всех таких простых багов можно выделить некоторые по крутому импакту, например, под сессией обычного пользователя можем создавать новых пользователей, в том числе админских или повышать себя до админа. Но встречаются и интересные кейсы, где для достижения цели нужно выполнить несколько шагов. Про некоторые подробнее расскажу позже.
А можно это как-то автоматизировать?
Да, можно, не полностью конечно, но время на поиск простых багов можно сократить в несколько раз. Мне для этого почти везде вполне хватает бурпового плагина Autorize
#logic #privilege #pentest
Повышение привилегий принято разделять на 2 части:
1. Вертикальное повышение привилегий – это когда мы с правами юзера, можем получить доступ к правам админа.
2. Горизонтальное повышение привилегий – это когда мы с правами пользователя, можем получить доступ к объектам другого пользователя. Но я такое поведение обычно называю Improper Access. Сейчас нам больше интересен первый пункт.
Почему такое вообще происходит? Причин несколько, по крайней мере те, которые знаю я:
- Всему виной Mass Assignment,
- Кривая реализация ролевой модели
С кривой реализацией ролевой модели на проектах сталкиваемся очень часто. Чаще всего это довольно простые и примитивные баги. Из всех таких простых багов можно выделить некоторые по крутому импакту, например, под сессией обычного пользователя можем создавать новых пользователей, в том числе админских или повышать себя до админа. Но встречаются и интересные кейсы, где для достижения цели нужно выполнить несколько шагов. Про некоторые подробнее расскажу позже.
А можно это как-то автоматизировать?
Да, можно, не полностью конечно, но время на поиск простых багов можно сократить в несколько раз. Мне для этого почти везде вполне хватает бурпового плагина Autorize
#logic #privilege #pentest
🔥10👍3
image_2022-07-29_20-04-23.png
296.7 KB
Autorize - плагин в бурпе, который помогает в полуавтоматическом режиме проверять такие недостатки, как IDOR, Improper Access, Privilege Escalation.
Плюсы плагина:
- Помогает избежать рутины
- Можно достаточно удобно настроить под себя
- Ну и самое главное, позволяет экономить время.
Принцип работы очень простой, в поле headers закидываем сессионные куки или любой другой хедер авторизации первого пользователя, а сами идем в браузер и тыкаем в функционал со второго пользователя. И плагин нам показывает, доступен ли нам этот функционал под сессией первого пользователя и вообще без сессионного токена.
По настройкам, рекомендую указывать Scope items only (если конечно вы настраиваете изначально проект), чтобы всякий хлам не летел в плагин. Также настроить регулярки для отсечения не нужных расширений.
Плюсы плагина:
- Помогает избежать рутины
- Можно достаточно удобно настроить под себя
- Ну и самое главное, позволяет экономить время.
Принцип работы очень простой, в поле headers закидываем сессионные куки или любой другой хедер авторизации первого пользователя, а сами идем в браузер и тыкаем в функционал со второго пользователя. И плагин нам показывает, доступен ли нам этот функционал под сессией первого пользователя и вообще без сессионного токена.
По настройкам, рекомендую указывать Scope items only (если конечно вы настраиваете изначально проект), чтобы всякий хлам не летел в плагин. Также настроить регулярки для отсечения не нужных расширений.
👍14🔥5👏2
Роадмап для тех, кто хочет попробовать себя в роли ТимЛида: https://tlroadmap.io/
Она конечно больше для разрабов, но полезна будет для всех в любом случае.
Также ветку TechLead я сейчас адаптирую под пентестеров, позже выложу эту версию тоже.
#teamlead #roadmap
Она конечно больше для разрабов, но полезна будет для всех в любом случае.
Также ветку TechLead я сейчас адаптирую под пентестеров, позже выложу эту версию тоже.
#teamlead #roadmap
tlroadmap.io
Teamlead Roadmap
👩🏼💻👨🏻💻Карта навыков и модель развития тимлидов
❤🔥10👍6👏2🔥1