https://blog.hrncirik.net/cve-2023-46214-analysis
Exploit https://github.com/nathan31337/Splunk-RCE-poc
CVE-2023-46214 is a Remote Code Execution (RCE) vulnerability found in Splunk Enterprise. The description of the vulnerability essentially states that Splunk Enterprise versions below 9.0.7 and 9.1.2 are not safely sanitizing user supplied extensible stylesheet language transformations (XSLT).
Exploit https://github.com/nathan31337/Splunk-RCE-poc
https://eaton-works.com/2023/06/06/honda-ecommerce-hack/
Типичный код любого автомобильного бренда
На этот раз статья о Honda, у которой даже есть своя Bug Bounty программа:
Дозвонились из своей деревни, надиктовали репорт и отправили скриншоты по MMS?
В конце вам будет ожидать достойный ответ
Поэтому не стоит удивляться, когда вы в очередной раз узнаете из новостей, что снова взломали и слили каких-то автомобилистов https://www.reuters.com/business/autos-transportation/toyota-suspends-all-domestic-factory-operations-after-suspected-cyber-attack-2022-02-28/
Типичный код любого автомобильного бренда
resetPassword(e, t) {
return this.__post("api/user/resetpassword", {
username: e,
NewPassword: t
})
}На этот раз статья о Honda, у которой даже есть своя Bug Bounty программа:
If a researcher believes that they have discovered a vulnerability with our systems, they are invited to contact our customer service office to document their observations at 1-800-999-1009.
Дозвонились из своей деревни, надиктовали репорт и отправили скриншоты по MMS?
I compromised Honda’s power equipment / marine / lawn & garden dealer eCommerce platform by exploiting a password reset API that let me easily reset the password of any account.
Full admin-level access achieved with access to: 21,393 customer orders across all dealers from August 2016 to March 2023 – this includes customer name, address, phone number, and items ordered.
В конце вам будет ожидать достойный ответ
I asked about the possibility of a vehicle or cash reward given the severity of the issue, but Honda does not currently have a bug bounty or mechanism to provide a reward. As a result, no reward was given for this report.
Поэтому не стоит удивляться, когда вы в очередной раз узнаете из новостей, что снова взломали и слили каких-то автомобилистов https://www.reuters.com/business/autos-transportation/toyota-suspends-all-domestic-factory-operations-after-suspected-cyber-attack-2022-02-28/
Eaton-Works
Compromising Honda’s power equipment / marine / lawn & garden dealer eCommerce platform through a vulnerable password reset API
A vulnerable password reset API made it possible to take over any account and gain admin-level access to the platform. In addition, broken/missing access controls made it possible to access all data on the platform.
Chromium Money Tree Browser
Сколько Google платит за нахождение уязвимостей в браузере. Статистика с разбиением по файлам — вознаграждение делится между теми, где были внесены изменения. Например, если исправление ошибки стоимостью
Вот немного из того, что было найдено в расширениях:
— [
— [
— [
— [
— [
Данные приведены по состоянию на начало ноября 2023 года
It's very very hacked together, don't expect good UX or accurate data
Сколько Google платит за нахождение уязвимостей в браузере. Статистика с разбиением по файлам — вознаграждение делится между теми, где были внесены изменения. Например, если исправление ошибки стоимостью
$1000 изменило 5 файлов, то каждый получит $200.Вот немного из того, что было найдено в расширениях:
— [
$15 000] heap-buffer-overflow in MoveWebContentsAtImpl (extension)— [
$7 000] Security: chrome.downloads.download could be abused to steal user's environment variables like secrets, tokens or keys on windows— [
$5 000] Security: Extensions with debugger permission can list URLs and send commands to incognito tabs and other profile tabs— [
$5 000] Security: Extension permission escalation— [
$5 000] Reading local files through an extension that only has the "downloads" permissionДанные приведены по состоянию на начало ноября 2023 года
Advent of Cyber 2023
Традиционно получаем премиум, как и в прошлые годы. Или что-нибудь лучше (за первые места Steam Deck и периферия).
Традиционно получаем премиум, как и в прошлые годы. Или что-нибудь лучше (за первые места Steam Deck и периферия).
https://github.com/Xacone/BestEdrOfTheMarket
The Best EDR Of The Market (BEOTM) — наивный EDR (Endpoint Detection and Response) с открытым исходным кодом, созданный как испытательный стенд для понимания и обхода методов обнаружения, используемых во многих реальных EDR.
Работает в пользовательском пространстве и использует методы, которые основаны на динамическом анализе состояния целевого процесса (памяти, вызовов API и т. д.),
Используемые техники:
— Multi-Levels API Hooking
— SSN Hooking/Crushing
— IAT Hooking
— Shellcode Injection Detection
— Reflective Module Loading Detection
— Call Stack Monitoring
Находятся в разработке:
— Heap Monitoring
— ROP Mitigation
— AMSI Patching Mitigation
— ETW Patching Mitigation
Статьи из блога автора, рассказывающая о работе BEOTM более подробно — https://xacone.github.io/BestEdrOfTheMarket.html
The Best EDR Of The Market (BEOTM) — наивный EDR (Endpoint Detection and Response) с открытым исходным кодом, созданный как испытательный стенд для понимания и обхода методов обнаружения, используемых во многих реальных EDR.
Работает в пользовательском пространстве и использует методы, которые основаны на динамическом анализе состояния целевого процесса (памяти, вызовов API и т. д.),
Используемые техники:
— Multi-Levels API Hooking
— SSN Hooking/Crushing
— IAT Hooking
— Shellcode Injection Detection
— Reflective Module Loading Detection
— Call Stack Monitoring
Находятся в разработке:
— Heap Monitoring
— ROP Mitigation
— AMSI Patching Mitigation
— ETW Patching Mitigation
Статьи из блога автора, рассказывающая о работе BEOTM более подробно — https://xacone.github.io/BestEdrOfTheMarket.html
GitHub
GitHub - Xacone/BestEdrOfTheMarket: EDR Lab for Experimentation Purposes
EDR Lab for Experimentation Purposes. Contribute to Xacone/BestEdrOfTheMarket development by creating an account on GitHub.
https://labs.nettitude.com/blog/creating-an-opsec-safe-loader-for-red-team-operations/
Гайд по написанию собственного лоадера, который можно протестировать на стенде из предыдущего поста. Предполагает обход EDR с техникой, названной Tartarus' Gate (пришедшей на смену Halo’s Gate) с косвенными системными вызовами.
Готовый код в репозитории https://github.com/nettitude/Tartarus-TpAllocInject
Гайд по написанию собственного лоадера, который можно протестировать на стенде из предыдущего поста. Предполагает обход EDR с техникой, названной Tartarus' Gate (пришедшей на смену Halo’s Gate) с косвенными системными вызовами.
Готовый код в репозитории https://github.com/nettitude/Tartarus-TpAllocInject
LRQA
Creating an OPSEC safe loader for Red Team Operations
As Red Teamers, we need an OPSEC safe method to execute shellcode via a range of initial access vectors. Things are getting more and more difficult with Endpoint Detection and Response (EDR) products improving, making it more challenging to get an implant.
https://www.youtube.com/watch?v=gjvu-l6vKFE
Обход аутентификации Windows Hello (с помощью отпечатков пальцев) на трех ноутбуках с лучшими (как утверждают исследователи) датчиками: Dell Inspiron 15, Lenovo ThinkPad T14 и Microsoft Surface Pro X/8.
Что забавно — худшим оказался Microsoft Surface, поскольку он не использует SDCP (Secure Device Connection Protocol), который разработала сама же компания Microsoft для валидации датчиков и шифрования данных.
Обход аутентификации Windows Hello (с помощью отпечатков пальцев) на трех ноутбуках с лучшими (как утверждают исследователи) датчиками: Dell Inspiron 15, Lenovo ThinkPad T14 и Microsoft Surface Pro X/8.
Что забавно — худшим оказался Microsoft Surface, поскольку он не использует SDCP (Secure Device Connection Protocol), который разработала сама же компания Microsoft для валидации датчиков и шифрования данных.
YouTube
BlueHat Oct 23. S02: A Touch of Pwn: Attacking Windows Hello Fingerprint Authentication
In this talk, Jesse D'Aguanno & Timo Teräs from Blackwing Intelligence discuss collaborating with Microsoft Offensive Research & Security Engineering (MORSE) to assess the security of leading fingerprint sensors used in Windows biometric authentication. The…
Где искать логи и как их читать
Работая с логами, приходится обращаться ко множеству файлов от разных разработчиков. Все они отличаются собственным форматом, который меняется от файла к файлу. Большинство содержат очень много информации, и их бывает трудно разобрать без каких-либо справочных материалов.
Вот небольшая подборка шпаргалок, которые помогут вам разобраться в некоторых типах журналов, с которыми можно столкнуться в ходе расследования.
— What2Log — платформа, на которой собраны все файлы с аудитными логами в Linux и Windows
— RULER project — у антивирусов тоже есть свои логи: репозиторий, в котором собрана информация о каждой антивирусе - какие данные собирает и куда их пишет
— Malware Archaeology — коллекция шпаргалок по ведению журналов для различных типов журналов Windows.
— Linux Logs Explained — список всех файлов и путей различных журналов, создаваемых Linux
— Windows Security Log Encyclopedia — объяснение всех идентификаторов событий в Windows
— Windows Security Identifiers — идентификаторы безопасности и их связь с учетками и группами в Windows
— What are Azure Active Directory reports? — понимание журналов аудита Azure AD
— Sign-in log schema in Azure Monitor — описание формата журналов входа в Azure
— Detailed properties in the audit log, Microsoft 365 Compliance — подробный разбор логов O365
Работая с логами, приходится обращаться ко множеству файлов от разных разработчиков. Все они отличаются собственным форматом, который меняется от файла к файлу. Большинство содержат очень много информации, и их бывает трудно разобрать без каких-либо справочных материалов.
Вот небольшая подборка шпаргалок, которые помогут вам разобраться в некоторых типах журналов, с которыми можно столкнуться в ходе расследования.
— What2Log — платформа, на которой собраны все файлы с аудитными логами в Linux и Windows
— RULER project — у антивирусов тоже есть свои логи: репозиторий, в котором собрана информация о каждой антивирусе - какие данные собирает и куда их пишет
— Malware Archaeology — коллекция шпаргалок по ведению журналов для различных типов журналов Windows.
— Linux Logs Explained — список всех файлов и путей различных журналов, создаваемых Linux
— Windows Security Log Encyclopedia — объяснение всех идентификаторов событий в Windows
— Windows Security Identifiers — идентификаторы безопасности и их связь с учетками и группами в Windows
— What are Azure Active Directory reports? — понимание журналов аудита Azure AD
— Sign-in log schema in Azure Monitor — описание формата журналов входа в Azure
— Detailed properties in the audit log, Microsoft 365 Compliance — подробный разбор логов O365
https://vulncheck.com/blog/cve-2023-44604-activemq-in-memory
В ноябре Huntress Labs, Rapid7, и ArticWolf выпустили отчет, в котором рассказали об активной эксплуатации CVE-2023-46604 в ActiveMQ. Как выяснилось, рансомварщики из HelloKitty и TellYouThePass использовали сырой PoC, вызывающий
Очевидно, долго оставаться незамеченным с таким эксплойтом невозможно, поэтому буквально через пару дней после начала компании, они и привлекли к себе внимание.
Атаки не должны быть шумными, поэтому Jacob Baines предлагает апгрейд обычного эксплойта для CVE-2023-46604, который позволит выполнить код в памяти процесса (без вызова других программ) и избежать обнаружения EDR.
В ноябре Huntress Labs, Rapid7, и ArticWolf выпустили отчет, в котором рассказали об активной эксплуатации CVE-2023-46604 в ActiveMQ. Как выяснилось, рансомварщики из HelloKitty и TellYouThePass использовали сырой PoC, вызывающий
cmd.exe с curl.exe или msiexec.exe.Очевидно, долго оставаться незамеченным с таким эксплойтом невозможно, поэтому буквально через пару дней после начала компании, они и привлекли к себе внимание.
Атаки не должны быть шумными, поэтому Jacob Baines предлагает апгрейд обычного эксплойта для CVE-2023-46604, который позволит выполнить код в памяти процесса (без вызова других программ) и избежать обнаружения EDR.
https://github.com/MegaManSec/SSH-Snake
SSH-Snake — это bash-скрипт для автоматического обхода сети с использованием ssh-ключей, обнаруженных на скомпрометированных системах, и создания полной карты всех взломанных хостов.
Принцип работы:
1. Найти на текущей машине все приватные ssh-ключи
2. Просканировать сеть и найти живые хосты, к которым можно подключиться
3. Попытаться подключиться к хостам с ключами, найденными в первом пункте
4. После подключения к новому устройству, повторить все шаги, начиная с первого.
Возможности:
— переходит от одной системы к другой только с помощью bash и stdin, не создавая никаких файлов
— как только попал на новую систему, автоматически пытается повыситься до рута, используя sudo
— ищет закрытые ключи в часто используемых файлах и папках, обход гибко настраивается
— запоминает, какие машины уже были просканированы, чтобы не подключаться к ним снова
— генерирует на выходе готовый граф, и отдельно сохраняет все найденные приватные ключи
SSH-Snake — это bash-скрипт для автоматического обхода сети с использованием ssh-ключей, обнаруженных на скомпрометированных системах, и создания полной карты всех взломанных хостов.
Принцип работы:
1. Найти на текущей машине все приватные ssh-ключи
2. Просканировать сеть и найти живые хосты, к которым можно подключиться
3. Попытаться подключиться к хостам с ключами, найденными в первом пункте
4. После подключения к новому устройству, повторить все шаги, начиная с первого.
Возможности:
— переходит от одной системы к другой только с помощью bash и stdin, не создавая никаких файлов
— как только попал на новую систему, автоматически пытается повыситься до рута, используя sudo
— ищет закрытые ключи в часто используемых файлах и папках, обход гибко настраивается
— запоминает, какие машины уже были просканированы, чтобы не подключаться к ним снова
— генерирует на выходе готовый граф, и отдельно сохраняет все найденные приватные ключи
GitHub
GitHub - MegaManSec/SSH-Snake: SSH-Snake is a self-propagating, self-replicating, file-less script that automates the post-exploitation…
SSH-Snake is a self-propagating, self-replicating, file-less script that automates the post-exploitation task of SSH private key and host discovery. - MegaManSec/SSH-Snake
https://github.com/DERE-ad2001/Frida-Labs
Репозиторий с задачами для изучения Frida на примере Android приложений. Они не похожи на хардкорные таски из Capture The Flag (CTF), но помогут вам начать знакомство с Frida и ее API. Если вы новичок или middle, это идеальное хранилище для обучения. Задачи организованы таким образом, чтобы охватить все — от основ до промежуточного уровня.
Навигация:
Challenge 0x1 : Frida setup, Hooking a method
Challenge 0x2 : Calling a static method
Challenge 0x3 : Changing the value of a variable
Challenge 0x4 : Creating a class instance
Challenge 0x5 : Invoking methods on an existing instance
Challenge 0x6 : Invoking a method with an object argument
Challenge 0x7 : Hooking the constructor
Challenge 0x8 : Introduction to native hooking
Challenge 0x9 : Changing the return value of a native function
Challenge 0xA : Calling a native function
Challenge 0xB : Patching instructions using X86Writer and ARM64Writer
Репозиторий с задачами для изучения Frida на примере Android приложений. Они не похожи на хардкорные таски из Capture The Flag (CTF), но помогут вам начать знакомство с Frida и ее API. Если вы новичок или middle, это идеальное хранилище для обучения. Задачи организованы таким образом, чтобы охватить все — от основ до промежуточного уровня.
Навигация:
Challenge 0x1 : Frida setup, Hooking a method
Challenge 0x2 : Calling a static method
Challenge 0x3 : Changing the value of a variable
Challenge 0x4 : Creating a class instance
Challenge 0x5 : Invoking methods on an existing instance
Challenge 0x6 : Invoking a method with an object argument
Challenge 0x7 : Hooking the constructor
Challenge 0x8 : Introduction to native hooking
Challenge 0x9 : Changing the return value of a native function
Challenge 0xA : Calling a native function
Challenge 0xB : Patching instructions using X86Writer and ARM64Writer
GitHub
GitHub - DERE-ad2001/Frida-Labs: The repo contains a series of challenges for learning Frida for Android Exploitation.
The repo contains a series of challenges for learning Frida for Android Exploitation. - DERE-ad2001/Frida-Labs
https://github.com/PhonePe/mantis
Mantis — это фреймворк для автоматизации рабочего процесса разведки и обнаружения уязвимостей.
На вход он принимает домен верхнего уровня, после чего переходит к сбору поддоменов, директорий и виртуальных хостов, который он завершает комплексным сканированием секретов, неправильных конфигураций и классических багов.
По сути, это оркестратор, который вместо вас запускает dirb, nmap, nuclei и другие утилиты с нужными ключами. В этом посте я рассказывал об ещё одном таком решении, reconFTW.
Небольшой отзыв с опытом его использования — 4300$ Bounty from Opensource automate recon tools, why not?
Mantis — это фреймворк для автоматизации рабочего процесса разведки и обнаружения уязвимостей.
На вход он принимает домен верхнего уровня, после чего переходит к сбору поддоменов, директорий и виртуальных хостов, который он завершает комплексным сканированием секретов, неправильных конфигураций и классических багов.
По сути, это оркестратор, который вместо вас запускает dirb, nmap, nuclei и другие утилиты с нужными ключами. В этом посте я рассказывал об ещё одном таком решении, reconFTW.
Небольшой отзыв с опытом его использования — 4300$ Bounty from Opensource automate recon tools, why not?
GitHub
GitHub - PhonePe/mantis: Mantis is a security framework that automates the workflow of discovery, reconnaissance, and vulnerability…
Mantis is a security framework that automates the workflow of discovery, reconnaissance, and vulnerability scanning. - PhonePe/mantis
https://patchapalooza.com/
PatchaPalooza — вебсайт, транслирующий подробный анализ ежемесячных обновлений безопасности Microsoft.
Он забирает информацию из API MSRC CVRF, сохраняет и анализирует данных об обновлениях, и составляет наглядную сводку с исправленными уязвимостями, которую можно сортировать по риску и актуальности.
Существует версия в виде скрипта https://github.com/xaitax/PatchaPalooza
PatchaPalooza — вебсайт, транслирующий подробный анализ ежемесячных обновлений безопасности Microsoft.
Он забирает информацию из API MSRC CVRF, сохраняет и анализирует данных об обновлениях, и составляет наглядную сводку с исправленными уязвимостями, которую можно сортировать по риску и актуальности.
Существует версия в виде скрипта https://github.com/xaitax/PatchaPalooza
Gadgets Chain In Laravel
Gadgets Chain In Wordpress
Два новых гаджета для десериализации в phpggc. Laravel/RCE19 и WordPress/RCE2.
Gadgets Chain In Wordpress
Два новых гаджета для десериализации в phpggc. Laravel/RCE19 и WordPress/RCE2.
GitHub
GitHub - ambionics/phpggc: PHPGGC is a library of PHP unserialize() payloads along with a tool to generate them, from command line…
PHPGGC is a library of PHP unserialize() payloads along with a tool to generate them, from command line or programmatically. - GitHub - ambionics/phpggc: PHPGGC is a library of PHP unserialize() p...
https://github.com/oppsec/juumla
Juumla — это python-инструмент, созданный для определения версии Joomla, сканирования уязвимостей и чувствительных файлов.
Например, под
Juumla — это python-инструмент, созданный для определения версии Joomla, сканирования уязвимостей и чувствительных файлов.
Например, под
Joomla! < 4.2.8 существует недавняя CVE-2023-23752, которая дисклоузит пользователей, учетку от базы данных, и другие секреты.GitHub
GitHub - 000pp/juumla: 🦁 Python project to identify and scan for vulnerabilities related to the Joomla CMS project. It scans for…
🦁 Python project to identify and scan for vulnerabilities related to the Joomla CMS project. It scans for common misconfigurations and public vulnerabilities. - 000pp/juumla
Метод закрепления через Git из The Art of Linux persistence.
Git — это распределенная система контроля версий, которая отслеживает изменения в файлах, и обычно используется для координации работы программистов, которые совместно пишут исходный код.
Но есть в Git две концепции, которые интересные не только среднестатистическому программисту, но и хакеру: хуки и конфигурационные файлы. Хуки существуют разные:
Представляют собой исполняемые файлы на одном из скриптовых языков и могут содержать в себе любые команды, которые будут вызваны при выполнении одного из условий:
—
—
—
—
—
Нам необходимо создать любой из этих файлов, например,
Git — это распределенная система контроля версий, которая отслеживает изменения в файлах, и обычно используется для координации работы программистов, которые совместно пишут исходный код.
Но есть в Git две концепции, которые интересные не только среднестатистическому программисту, но и хакеру: хуки и конфигурационные файлы. Хуки существуют разные:
pre-commit/post-commit/pre-merge/post-merge/ и живут они в директории проекта, в .git/hooks/.Представляют собой исполняемые файлы на одном из скриптовых языков и могут содержать в себе любые команды, которые будут вызваны при выполнении одного из условий:
—
pre-commit исполняется при каждом выполнении команды git commit, перед тем как Git запросит ввод комментария к коммиту или создаст объект коммита.—
prepare-commit-msg вызывается после pre-commit, чтобы составить комментарий к коммиту в текстовом редакторе—
commit-msg очень похож на prepare-commit-msg, но вызывается после того, как пользователь введет сообщение коммита—
post-commit вызывается сразу после commit-msg—
post-checkout очень похож на post-commit, но вызывается каждый раз при успешном переключении с помощью git checkoutНам необходимо создать любой из этих файлов, например,
pre-commit, написать в нем полезную нагрузку, — это будет реверс-шелл с https://www.revshells.com/. А дальше дождаться, когда программист начнет работать на виртуалке с бэкдором, и получить сессию.https://ntlm.pw/
База данных предварительно вычисленных NTLM-хэшей "ntlm to password" на 8 миллиардов записей.
Искать лучше через API, стоимость поиска зависит от способа:
— через форму на главной: 10 поинтов/хэш
— через API: 5 поинтов/хэш
— через балковое (для частых запросов) API: 4 поинта/хэш
Квота на использование пополняется на 5000 поинтов каждые 15 минут.
Пример использования:
База данных предварительно вычисленных NTLM-хэшей "ntlm to password" на 8 миллиардов записей.
Искать лучше через API, стоимость поиска зависит от способа:
— через форму на главной: 10 поинтов/хэш
— через API: 5 поинтов/хэш
— через балковое (для частых запросов) API: 4 поинта/хэш
Квота на использование пополняется на 5000 поинтов каждые 15 минут.
Пример использования:
Invoke-WebRequest https://ntlm.pw/[32-character hash] | Select-Object -Expand ContentNTLM.PW
NTLM to plaintext password lookup
Instantly look up NTLM hashes and resolve them to plaintext passwords using our database with 8B+ entries.
https://github.com/efchatz/pandora
Pandora — Red Team-инструмент для извлечения учетных данных из менеджеров паролей.
Поддерживает 14 программ с 18 различными реализациями (например, можно дампить учетные данные как из десктопного приложения, так и из браузерного расширения одного и того же продукта), включая 1Password, LastPass, Bitwarden и другие.
Pandora — Red Team-инструмент для извлечения учетных данных из менеджеров паролей.
Поддерживает 14 программ с 18 различными реализациями (например, можно дампить учетные данные как из десктопного приложения, так и из браузерного расширения одного и того же продукта), включая 1Password, LastPass, Bitwarden и другие.
Разработчики любят писать микросервисы для "перекладывания 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 для определения того, какой парсер используется.
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
https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8
Таблица, отдельные скриншоты которой гуляют по разным чатам. Рекомендуемые коробки для подготовки к сдаче экзаменов от OffSec: PEN-200 (OSCP), PEN-300 (OSEP) и WEB-300 (OSWE).
И актуальная (последнее видео вышло 11 дней назад) серия видео с развертыванием и решением похожей локальной лаборатории: OSCP Practice Lab: Active Directory Attack Path #1, #2, #3.
Таблица, отдельные скриншоты которой гуляют по разным чатам. Рекомендуемые коробки для подготовки к сдаче экзаменов от OffSec: PEN-200 (OSCP), PEN-300 (OSEP) и WEB-300 (OSWE).
И актуальная (последнее видео вышло 11 дней назад) серия видео с развертыванием и решением похожей локальной лаборатории: OSCP Practice Lab: Active Directory Attack Path #1, #2, #3.
Google Docs
NetSecFocus Trophy Room