Forwarded from The Bug Bounty Hunter
GitHub - brinhosa/apidetector: APIDetector: Efficiently scan for exposed Swagger endpoints across web domains and subdomains. Supports HTTP/HTTPS, multi-threading, and flexible input/output options. Ideal for API security testing.
https://github.com/brinhosa/apidetector
https://github.com/brinhosa/apidetector
GitHub
GitHub - brinhosa/apidetector: APIDetector: Efficiently scan for exposed Swagger endpoints across web domains and subdomains. Supports…
APIDetector: Efficiently scan for exposed Swagger endpoints across web domains and subdomains. Supports HTTP/HTTPS, multi-threading, and flexible input/output options. Ideal for API security testin...
Forwarded from Солдатов в Телеграм
Последнее время то там, то тут слышишь про "Фиолетовые команды", видимо, "Красными" и\или "Синими" уже никого не удивишь 😁 Вот попался неплохой BOK по превращению "фиолетового движения" из ad-hoc в системную работу:
https://github.com/scythe-io/purple-team-exercise-framework
https://github.com/scythe-io/purple-team-exercise-framework
GitHub
GitHub - scythe-io/purple-team-exercise-framework: Purple Team Exercise Framework
Purple Team Exercise Framework. Contribute to scythe-io/purple-team-exercise-framework development by creating an account on GitHub.
Forwarded from Записки админа
This media is not supported in your browser
VIEW IN TELEGRAM
🗜 Смотрите какой клёвый pastebin сервис, работающий по SSH и доступный как в tui, так и в веб-морде... https://snips.sh/
А ещё, всё это можно развернуть на собственном сервере, судя по всему:
https://github.com/robherley/snips.sh
#tui #pastebin #ssh
А ещё, всё это можно развернуть на собственном сервере, судя по всему:
https://github.com/robherley/snips.sh
#tui #pastebin #ssh
Forwarded from Cybred
Разработчики любят писать микросервисы для "перекладывания JSON". Стандарт устоявшийся и, как правило, не сулит проблем. Но так ли это на самом деле?
Возьмем небольшое приложение с двумя микросервисами:
— Cart — реализует бизнес-логику корзины
— Payment — используется для обработки платежей
Cart написан на Python с Flask и принимает ID товаров с их количеством. Попробуем отправить в него запрос с двумя одинаковыми ключами:
Сервис провалидирует JSON в соответствии со схемой
Дальше провалидированный JSON отправляется в микросервис Payment.
А микросервис Payment написан уже на Go и использует другой парсер buger/jsonparser. Он уже не валидирует JSON (ведь валидация была на предыдущем шаге), но использует приоритет первого ключа (
Мы смотрим в чек, который вернулся в ответе, и видим ошибку. Нам будет отправлено шесть товаров стоимостью 700 долларов, но с нас взяли только 300 долларов, из-за расчетов со вторым ключом.
Такие ошибки возникают из-за того, что существует много стандартов JSON:
1. json.org
2. IETF RFC 4627
3. ECMAScript 262
4. ECMA 404
5. IETF RFC 7158
6. IETF RFC 7159
7. JSON5
8. HJSON
И в каждом из них свои правила парсинга JSON: о том, как обрабатывать дублирующие ключи, что делать с большими числами с плавающей точкой, что считать валидным, а что нет. И на каждом из этих этапов могут возникнуть коллизии, позволяющие обходить средства защиты или вызывающие баги в бизнес логике.
Полезные ссылки:
— https://seriot.ch/json/parsing.html — большая таблица-сравнение: как разные парсеры обрабатывают разные значения.
— https://bishopfox.com/blog/json-interoperability-vulnerabilities — я рассказал только об одном баге, но их гораздо больше: здесь можно почитать обо всех остальных.
— https://github.com/a1phaboy/JsonDetect — расширение для Burp для определения того, какой парсер используется.
Возьмем небольшое приложение с двумя микросервисами:
— Cart — реализует бизнес-логику корзины
— Payment — используется для обработки платежей
Cart написан на Python с Flask и принимает ID товаров с их количеством. Попробуем отправить в него запрос с двумя одинаковыми ключами:
"cart": [
{
"id": 0,
"qty": 5
},
{
"id": 1,
"qty": -1,
"qty": 1
}
]
Сервис провалидирует JSON в соответствии со схемой
jsonschema.validate(instance=data, schema=schema). Убедится, что id: 0 <= x <= 10 and qty: >= 1. На этом этапе не будет ошибки (не смотря на то, что один из отправленных qty не подходит под условие), поскольку Flask использует стандартный JSON-парсер из Python, а тот сериализует данные, отдавая приоритет последнего ключа (qty = 1).Дальше провалидированный JSON отправляется в микросервис Payment.
А микросервис Payment написан уже на Go и использует другой парсер buger/jsonparser. Он уже не валидирует JSON (ведь валидация была на предыдущем шаге), но использует приоритет первого ключа (
qty = -1). Считает итоговую сумму total = total + productDB[id]["price"].(int64) * qty и генерирует чек.Мы смотрим в чек, который вернулся в ответе, и видим ошибку. Нам будет отправлено шесть товаров стоимостью 700 долларов, но с нас взяли только 300 долларов, из-за расчетов со вторым ключом.
Такие ошибки возникают из-за того, что существует много стандартов JSON:
1. json.org
2. IETF RFC 4627
3. ECMAScript 262
4. ECMA 404
5. IETF RFC 7158
6. IETF RFC 7159
7. JSON5
8. HJSON
И в каждом из них свои правила парсинга JSON: о том, как обрабатывать дублирующие ключи, что делать с большими числами с плавающей точкой, что считать валидным, а что нет. И на каждом из этих этапов могут возникнуть коллизии, позволяющие обходить средства защиты или вызывающие баги в бизнес логике.
Полезные ссылки:
— https://seriot.ch/json/parsing.html — большая таблица-сравнение: как разные парсеры обрабатывают разные значения.
— https://bishopfox.com/blog/json-interoperability-vulnerabilities — я рассказал только об одном баге, но их гораздо больше: здесь можно почитать обо всех остальных.
— https://github.com/a1phaboy/JsonDetect — расширение для Burp для определения того, какой парсер используется.
👍1
Forwarded from Cybred
https://github.com/Hackmanit/TInjA
TInjA (the Template INJection Analyzer) — CLI-утилита для проверки веб-приложений на наличие уязвимостей инъекции шаблонов.
Она поддерживает 44 наиболее актуальных шаблонизатора (по состоянию на 2023 год) для восьми различных языков программирования и поддерживает поиск как SSTI, так и CSTI.
TInjA (the Template INJection Analyzer) — CLI-утилита для проверки веб-приложений на наличие уязвимостей инъекции шаблонов.
Она поддерживает 44 наиболее актуальных шаблонизатора (по состоянию на 2023 год) для восьми различных языков программирования и поддерживает поиск как SSTI, так и CSTI.
GitHub
GitHub - Hackmanit/TInjA: TInjA is a CLI tool for testing web pages for template injection vulnerabilities and supports 44 of the…
TInjA is a CLI tool for testing web pages for template injection vulnerabilities and supports 44 of the most relevant template engines for eight different programming languages. - Hackmanit/TInjA
Forwarded from BeholderIsHere Media HUB (Beholder Is Here)
Очень интересный канал Дэрека Джемисона раскрывающий весь потенциал flipper zero
Forwarded from Пост Лукацкого
Смотрел я вчера старенький фильм "На грани" 🐻 с Энтони Хопкинсом и вспомнил ситуацию, в которую как-то попал и я, а именно отбился с товарищем от туристической группы и два дня мы были одни, без какой-либо помощи, без нормального снаряжения, а еще лил дождь. И вот это натолкнуло меня на мысль, которую можно применить в команде ИБ, особенно если вы ее руководитель, или вы ментор какого-либо специалиста по ИБ.
Нынешнее "поколение ЕГЭ" привыкает отвечать по готовым скриптам ☑️ и теряет способность искать ответы самостоятельно. Критическое мышление тоже куда-то улетучивается. Поэтому так важно воспитывать этот навык у своих "падаванов". И для этого можно дать несколько советов:
1️⃣ Регулярно "пропадайте". Когда ваш подчиненный понимает, что тот, в кого он верил, исчез, ему остается только верить в себя и начать хоть что-то делать, а не ждать, когда добрый CISO всех спасет и возьмет ответственность на себя.
2️⃣ Не надо обсуждать проблемы - обсуждайте способы их решения, которые предложил ваш подчиненный. Если у него нет решения, возвращаемся в начало этого пункта.
3️⃣ Совершенно неважно, насколько решение вашего подчиненного хорошо. Ваша задача - перестроить его мозги так, чтобы он был всегда способен искать и находить решения проблем. Да, ваш опыт часто позволяет вам найти решение лучше, но незашоренность может помочь найти нестандартное решение. Этот принцип особенно активно проявляется в штабных киберучениях, в которых я всегда с самого начала говорю, что нет неправильных решений.
4️⃣ Никогда не надо говорить, правильное решение или неправильное. ИБ - это не ЕГЭ, где все просто. ИБ - это жизнь и никаких заранее известных ответов часто просто нет. Фокусировать подчиненных надо на смысле решаемой задаче, а не конкретном решении. Сегодня оно такое, завтра совсем иное. ИБ вообще вариативная штука.
5️⃣ Пусть подчиненные сами оценивают свои решения. Со временем придет и опыт, и уверенность, и экспертиза. В ИБ часто надо самому брать ответственность за свои же решения и переложить ее на кого-то не удастся. Чем раньше подчиненные это поймут, тем лучше.
ЗЫ. Тоже самое работает и с детьми и со студентами 😊
ЗЗЫ. Да, совсем тупые тоже бывают и с ними эта великолепная пятерка не работает. Но тут уж вам не повезло☹️
Нынешнее "поколение ЕГЭ" привыкает отвечать по готовым скриптам ☑️ и теряет способность искать ответы самостоятельно. Критическое мышление тоже куда-то улетучивается. Поэтому так важно воспитывать этот навык у своих "падаванов". И для этого можно дать несколько советов:
ЗЫ. Тоже самое работает и с детьми и со студентами 😊
ЗЗЫ. Да, совсем тупые тоже бывают и с ними эта великолепная пятерка не работает. Но тут уж вам не повезло
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Blue (h/c)at Café (Женя Белкин '";DROP DATABASE db_name();--)
Продолжаем разговор про тестирование API. На этот раз не будет докера, мне было максимально лениво разбираться с Rust
Инструмент, которым я буду сам пользоваться называется CherryBomb.
- Написан на Rust
- Имеет варианты запуска (info, normal, intrusive(не работает) , passive, full
- Требуется файл OpenAPI v3 в формате json (можете ваши yml переводить в него тут)
📌
Тестирование проводил всё на том же VAmPI
cherrybomb --file openapi.json --profile full --ignore-tls-errors true -o report.json --format json
Жаль, что я не могу делать развёрнутые посты с несколькими скринами и подобным, но если кратко - умеет в читаемый вид (table), а также в формате json
📌
В скором времени напишу парсер в sarif или для defect dojo
У инструмента есть возможность запуска сканирования через конфигурационный файл
cherrybomb -c config.json
Пример для полного сканирования и авторизации через basic auth, с игнорированием ошибок tls и параметром логирования "normal":
{
"file" : "open-api.json",
"verbosity" : "normal,
"profile" : " "full",
"security": [{
"auth_type": "Basic",
"auth_value" : token_value,
"auth_scope" : scope_name
}],
"ignore_tls_errors" : true,
}#opensource #devsecops
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
О, тогда такой финт можно и с docker.socket провернуть!
Forwarded from Cybred
Интересный факт: Nginx умеет проксировать запросы не только на HTTP, но и на локальные Unix-сокеты.
Вот у нас есть конфигурация
Разработчики используют ее, чтобы проксировать запросы на Javascript-файлы в S3-бакет. Мы контролируем ту часть
НО! Мы хотим выжать из этого максимум и прокрутить что-то необычное, зная еще один интересный факт — на виртуалке, помимо Nginx, где-то рядом крутится еще и Redis.
А у него ещё и поднят свой сокет. Достаточно отправить в
А вот как раскрутить это дальше, обойти механизмы защиты и добиться эксфильтрации — читаем в последней статье уходящего года из полюбившегося цикла с мисконфигами Nginx.
После прочтения, советую следом разобрать райтап с Uni CTF, где обыгрывался кейс не только с дампом, но и с RCE в сложном эксплойте с PHP https://www.hackthebox.com/blog/uni-ctf-2022-spell-orsterra-writeup.
Вот у нас есть конфигурация
location ~ /static/(.*)/(.*.js) {
proxy_pass http://$1-example.s3.amazonaws.com/$2;
}Разработчики используют ее, чтобы проксировать запросы на Javascript-файлы в S3-бакет. Мы контролируем ту часть
URI, что идет после http://, поэтому можем использовать это, чтобы эксплуатировать SSRF или HTTP Splitting в чейне с другими уязвимостями, благодаря слабой регулярке.НО! Мы хотим выжать из этого максимум и прокрутить что-то необычное, зная еще один интересный факт — на виртуалке, помимо Nginx, где-то рядом крутится еще и Redis.
А у него ещё и поднят свой сокет. Достаточно отправить в
proxy_pass GET-запросом строку http://unix:/run/redis/redis.sock, и все, что идет после нее, попадет прямиком в Redis.А вот как раскрутить это дальше, обойти механизмы защиты и добиться эксфильтрации — читаем в последней статье уходящего года из полюбившегося цикла с мисконфигами Nginx.
После прочтения, советую следом разобрать райтап с Uni CTF, где обыгрывался кейс не только с дампом, но и с RCE в сложном эксплойте с PHP https://www.hackthebox.com/blog/uni-ctf-2022-spell-orsterra-writeup.
Telegraph
Приручаем Redis. Как сдампить базу данных через мисконфиг в Nginx
В прошлом году мы изучили разные мидлвары у прокси-серверов и балансировщиков нагрузки. Результаты оказались довольно интересными, - об одних находках мы уже знали, а с другими столкнулись впервые. Поэтому мы бы хотели поделиться тем, что нашли. Награды за…
👍1
Forwarded from linkmeup
Очередное покаяние уровня "Да как я вообще раньше жил без этого" - проект Atuin. Замещает собой стандартный хистори лог консоли, позволяя вытворять какие-то совершенно неприличные вещи, вроде синхронизации истории между разными машинами.
Смело брать, ставить, привыкать и в конце года делать atuin stats year.
https://github.com/atuinsh/atuin
Смело брать, ставить, привыкать и в конце года делать atuin stats year.
https://github.com/atuinsh/atuin
Forwarded from Real profit
SSH-Snake: is a self-propagating, self-replicating, file-less script that automates the post-exploitation task of SSH private key and host discovery
https://github.com/MegaManSec/SSH-Snake
https://github.com/MegaManSec/SSH-Snake
Forwarded from Offensive Xwitter
😈 [ Steve Campbell @lpha3ch0 ]
I felt like httpx was missing the ability to parse Nmap reports for http/s services and it made more sense to create a standalone utility. Nmapurls parses Nmap xml reports and outputs a list of URL's.
🔗 https://github.com/sdcampbell/nmapurls
🐥 [ tweet ]
I felt like httpx was missing the ability to parse Nmap reports for http/s services and it made more sense to create a standalone utility. Nmapurls parses Nmap xml reports and outputs a list of URL's.
🔗 https://github.com/sdcampbell/nmapurls
🐥 [ tweet ]