Forwarded from Пост Импакта
#api #params
> Ничего не могу найти на сайте, может ещё что-то посмотреть?
Иногда встречается сайт, на котором всего лишь несколько конечных точек. Казалось, все параметры были проверены на уязвимости, а в чек-листе отмечены любые возможные проверки на инъекции и логику.
Однако, бывают уязвимости, которые не видны с первого взгляда. Например (CAPEC-460) HTTP Parameter Pollution или (CWE-472) External Control of Assumed-Immutable Web Parameter. Данные ошибки возникают из-за неожиданного поведения в функциях обработки параметров.
Давайте рассмотрим первую атаку HTTP Parameter Pollution, она состоит из возможности добавления повторяющихся параметров с помощью специальных разделителей запроса.
Например, у нас открыт сайт по продаже арбузов в браузере
Это происходит, потому что Apache Tomcat 🐈 при анализе двух одинаковых параметров (
Но не все сервера используют приоритет порядка, так, например, ASP.NET/IIS конкатенирует значения. Поэтому в случаях, когда выполнению XSS мешает санитизация или WAF, можно составить следующий payload:
Помимо приоритетов, нужно также вспомнить о разделителях для параметров. Существует не только привычный & (амперсанд) и , (запятая) но и ряд других символов, тут нужно обратиться к стандартам и поискать реализации. Если открыть (rfc6570) URI Template можно найти Path-Style Parameter
Обычный URL будет следующим:
• CVE-2021-23336 — Python библиотека
• ParseThru — Go библиотека
{"client_id":4, "client_id":17, "action":"delete"}
> Ничего не могу найти на сайте, может ещё что-то посмотреть?
Иногда встречается сайт, на котором всего лишь несколько конечных точек. Казалось, все параметры были проверены на уязвимости, а в чек-листе отмечены любые возможные проверки на инъекции и логику.
Однако, бывают уязвимости, которые не видны с первого взгляда. Например (CAPEC-460) HTTP Parameter Pollution или (CWE-472) External Control of Assumed-Immutable Web Parameter. Данные ошибки возникают из-за неожиданного поведения в функциях обработки параметров.
Давайте рассмотрим первую атаку HTTP Parameter Pollution, она состоит из возможности добавления повторяющихся параметров с помощью специальных разделителей запроса.
Например, у нас открыт сайт по продаже арбузов в браузере
🌐 example.com/profile.jsp?client_id=1
Для кнопки "Открыть профиль" устанавливается динамически в ответе от сервера html:<a href="profile.jsp?client_id=1&action=view
А теперь изменим запрос добавив в него параметр и закодировав разделитель & как %26:🌐 example.com/profile.jsp?client_id=1%26action%3Ddelete
В результате для кнопки "Открыть профиль" задаётся html:<a href="profile.jsp?client_id=1&action=delete&action=view
При нажатии на кнопку — профиль пользователя будет удалён. Для того чтобы заставить жертву удалить свой аккаунт, нам нужно отправить ей ссылку и подождать.Это происходит, потому что Apache Tomcat 🐈 при анализе двух одинаковых параметров (
action) берёт значение первого:&action=delete&action=view
Вот так выглядит код на стороне сервера:String client_id = request.getParameter("client_id");
GetMethod get = new GetMethod("https://example.com/profile");
get.setQueryString("client_id=" + client_id + "&action=" + action);
href_link=get.URL;
Разработчик должен был учесть такое поведение и проверить возможность внедрения параметра action в client_id
Вообще, приоритет и процесс обработки параметров можно взять из этой таблицы ниже:Technology/HTTP backend | Parsing Result | Example |Так, для Server: Apache Tomcat будет взято значение из первого совпадения
---------------------------------------------------------------------
ASP.NET/IIS | All occurrences | par1=val1,val2 |
ASP/IIS | All occurrences | par1=val1,val2 |
PHP/Apache | Last occurrence | par1=val2 |
JSP Servlet/Apache Tomcat | First occurrence | par1=val1 |
JSP Servlet/Oracle Application | First occurrence | par1=val1 |
IBM HTTP Server | First occurrence | par1=val1 |
action=delete
А для Server: Apache значение уже будет action=view — последний параметрНо не все сервера используют приоритет порядка, так, например, ASP.NET/IIS конкатенирует значения. Поэтому в случаях, когда выполнению XSS мешает санитизация или WAF, можно составить следующий payload:
example.com/search?param=<audio/n="¶m="src/onerror=alert()>
В результате на странице html будет <audio n="," src/onerror=alert()> и XSS успешно сработает 💣Помимо приоритетов, нужно также вспомнить о разделителях для параметров. Существует не только привычный & (амперсанд) и , (запятая) но и ряд других символов, тут нужно обратиться к стандартам и поискать реализации. Если открыть (rfc6570) URI Template можно найти Path-Style Parameter
Обычный URL будет следующим:
example.com/users?role=admin&firstName=N
А теперь преобразуем его в вид Path-Style:example.com/users;role=admin;firstName=N
Использование в качестве разделителя ; (точки с запятой) не повсеместно. Это приводит к различиям обработки во фреймворках и как следствие к уязвимостям, в частности, на микросервисных архитектурах: • CVE-2021-23336 — Python библиотека
urllib.parse.parse_qsl не игнорирует точку с запятой.• ParseThru — Go библиотека
net/url не игнорирует точку с запятой и выводит предупреждение http: URL query contains semicolon...
Следует помнить, что уязвимость HTTP Parameter Pollution может возникать не только в URL, но и в любой части POST/GET запроса, а также в теле JSON.{"client_id":4, "client_id":17, "action":"delete"}
Forwarded from Волосатый бублик
#web #portswigger #burp #api
New topic on Web Security Academy — API testing
https://portswigger.net/web-security/api-testing
5 new labs are also here for you:
Exploiting an API endpoint using documentation
Exploiting server-side parameter pollution in a query string
Finding and exploiting an unused API endpoint
Exploiting a mass assignment vulnerability
Exploiting server-side parameter pollution in a REST URL
New topic on Web Security Academy — API testing
By guiding you step-by-step through the process of testing APIs, we will teach you to spot, understand, and then exploit them to their full potential.
Ready to get stuck in?https://portswigger.net/web-security/api-testing
5 new labs are also here for you:
Exploiting an API endpoint using documentation
Exploiting server-side parameter pollution in a query string
Finding and exploiting an unused API endpoint
Exploiting a mass assignment vulnerability
Exploiting server-side parameter pollution in a REST URL
👍15
Forwarded from #Arm1tage
API Labs
На моей нелюбимой платформе SwiggerPort, не выкатили новые лабки по АПИ (я кстати не делал эти лабки, нет). А это значит, что не выходит и новый пост на не моём паблике (я кстати не админ этого паблика, нет).
Суть этого раздела дать тебе понять, что фаззить, сука, надо. И надо это делать красиво. А чтобы и ты мог делать это красиво, можешь использовать вот этот лист с параметрами для фаззинга.
🤨1. Exploiting an API endpoint using documentation
🤨2. Exploiting server-side parameter pollution in a query string
Находим forgotPassword.js файл и выясняем, что есть параметр reset-token.
Теперь создаем POST /forgot-password запрос с %26 символом (означает, что он декодируется в & на серверной части) и фаззим (например через интрудер) параметр, там где $$:
В итоге с помощью фаззинга находим параметр field. Вспоминаем, что мы нашли в жс коде ранее параметр ресет-токен и составляем финальный вид:
Таким образом вы говорите серверу (из-за parameter pollution) выдать вам ресет токен пользователя администратор.
🤨3. Finding and exploiting an unused API endpoint
Меняем GET на PATCH:
🤨4. Exploiting a mass assignment vulnerability
Ищем параметры в ответе сервера:
GET /api/checkout
Теперь создаем POST /api/checkout реквест с найденным ранее параметром. Изменяем значение percentage на 100 (типа 100% скидка понял да):
#portswigger #api
На моей нелюбимой платформе SwiggerPort, не выкатили новые лабки по АПИ (я кстати не делал эти лабки, нет). А это значит, что не выходит и новый пост на не моём паблике (я кстати не админ этого паблика, нет).
Суть этого раздела дать тебе понять, что фаззить, сука, надо. И надо это делать красиво. А чтобы и ты мог делать это красиво, можешь использовать вот этот лист с параметрами для фаззинга.
🤨1. Exploiting an API endpoint using documentation
GET /api/
DELETE /api/user/carlos
🤨2. Exploiting server-side parameter pollution in a query string
Находим forgotPassword.js файл и выясняем, что есть параметр reset-token.
Теперь создаем POST /forgot-password запрос с %26 символом (означает, что он декодируется в & на серверной части) и фаззим (например через интрудер) параметр, там где $$:
csrf={ваш_csrf}&username=administrator%26$$В итоге с помощью фаззинга находим параметр field. Вспоминаем, что мы нашли в жс коде ранее параметр ресет-токен и составляем финальный вид:
csrf={ваш_csrf}&username=administrator%26field=reset_tokenТаким образом вы говорите серверу (из-за parameter pollution) выдать вам ресет токен пользователя администратор.
🤨3. Finding and exploiting an unused API endpoint
Меняем GET на PATCH:
PATCH /api/products/1/price
{
"price":0
}
🤨4. Exploiting a mass assignment vulnerability
Ищем параметры в ответе сервера:
GET /api/checkout
"chosen_discount":{"percentage":0}Теперь создаем POST /api/checkout реквест с найденным ранее параметром. Изменяем значение percentage на 100 (типа 100% скидка понял да):
{"chosen_products":[{"product_id":"1","quantity":1}],
"chosen_discount":{"percentage":100}}#portswigger #api
🔥14👍2
OWASP OFFAT
#owasp #API #fuzzing
OFFensive Api Tester - это инструмент для автоматического тестирования API на основе OpenAPI. Он предоставляет возможность автоматически фаззить входные данные и использовать пользовательские данные во время тестов, заданных через конфигурационный файл YAML.
Что тестирует инструмент:
➡️ Restricted HTTP Methods
➡️ SQLi
➡️ BOLA
➡️ Data Exposure
➡️ BOPLA / Mass Assignment
➡️ Broken Access Control
➡️ Basic Command Injection
➡️ Basic XSS/HTML Injection test
Установка:
Использование банальное:
Давно слежу за инструментом, он активно обновляется , но пока ещё в бете.
У инструмента лицензия MIT, так что компании могут свободно его использовать.
А ещё есть готовые докеры)
🧩 Github
🌚 @poxek
#owasp #API #fuzzing
OFFensive Api Tester - это инструмент для автоматического тестирования API на основе OpenAPI. Он предоставляет возможность автоматически фаззить входные данные и использовать пользовательские данные во время тестов, заданных через конфигурационный файл YAML.
Что тестирует инструмент:
Установка:
python -m pip install offat
Использование банальное:
offat -f swagger_file.json
Давно слежу за инструментом, он активно обновляется , но пока ещё в бете.
У инструмента лицензия MIT, так что компании могут свободно его использовать.
А ещё есть готовые докеры)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19 2
Как провести фаззинг REST API с помощью RESTler (все 3 части)
#red_team #appsec #devsecops #api #fuzzing
Предположу, что многие из вас сталкивались с задачей, когда нужно проверять безопасности API, и желательно автоматизированного. Все мы работаем в разных компаниях, где-то используются одни технологии, где-то другие. Но API есть API, тестировать его нужно. Поэтому в этом посте я советую вам прочитать все цикл статей от коллег из Swordfish Security, которые в подробностях написали, как же провести фаззинг-тестирование API c помощью инструмента RESTler, имея на руках только спецификацию API.
1️⃣ Первая часть
2️⃣ Вторая часть
3️⃣ Третья часть
В результате их исследования по API fuzzing они смело смогли сделать вывод, что RESTler – это первый автоматический инструмент для анализа состояния облачных сервисов через их REST API, позволяющий максимально точно настраивать процесс тестирования. Благодаря этому фаззер можно использовать для многих целей.
🌚 @poxek
#red_team #appsec #devsecops #api #fuzzing
Предположу, что многие из вас сталкивались с задачей, когда нужно проверять безопасности API, и желательно автоматизированного. Все мы работаем в разных компаниях, где-то используются одни технологии, где-то другие. Но API есть API, тестировать его нужно. Поэтому в этом посте я советую вам прочитать все цикл статей от коллег из Swordfish Security, которые в подробностях написали, как же провести фаззинг-тестирование API c помощью инструмента RESTler, имея на руках только спецификацию API.
В результате их исследования по API fuzzing они смело смогли сделать вывод, что RESTler – это первый автоматический инструмент для анализа состояния облачных сервисов через их REST API, позволяющий максимально точно настраивать процесс тестирования. Благодаря этому фаззер можно использовать для многих целей.
Please open Telegram to view this post
VIEW IN TELEGRAM
api-fuzzing-lists.zip
8.7 MB
API FUZZING LISTS
#api #fuzzing
Вне очереди пост, очень вкусный сборник фаззинг вордлистов для API
Описание данного списка от автора:
744,000+ endpoints
357,000+ object properties
211,000+ object names
127,000+ query parameters
74,000+ parameter values
35,000+ path parameters
8,300+ headers
5,300+ paths
880+ common ports
Взял ТУТ
🌚 @poxek | 📹 YouTube
#api #fuzzing
Вне очереди пост, очень вкусный сборник фаззинг вордлистов для API
Описание данного списка от автора:
744,000+ endpoints
357,000+ object properties
211,000+ object names
127,000+ query parameters
74,000+ parameter values
35,000+ path parameters
8,300+ headers
5,300+ paths
880+ common ports
Взял ТУТ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33
Валентин Мамонтов – Как построить API security, заставить DAST работать и причем тут WAF
#WAF #DAST #API #appsec
В третьем выпуске встретились с Валентином Мамонтовым – экспертом с более, чем 5-летним опытом в сфере ИБ и DevSecOps. Он поможет нам разобраться, почему динамическое сканирование может спасти ваш бизнес от хакеров. А также:
▪️ почему WAF не пустая трата денег компании
▪️ как правильно внедрять WAF
▪️ что может DAST и как правильно им пользоваться
▪️ почему одного DAST мало и нужно дополнительно выстраивать API Security ▪️ как грамотно построить API Security
▪️ какова динамика российского рынка в сфере динамического тестирования
▪️ об open source в России И все это с шутками и небольшими выходами за пределы темы.
0:33 Вступление
1:04 Что такое динамическое тестирование? Что такое DAST? Где применяется API Security?
2:40 Из чего состоит DAST инструмент: пауки, ajax spiders
3:33 Виды spiders (пауков)
5:26 Особенности работы DAST с API
6:37 С чем не справляется DAST
8:31 Как увеличить покрытие для DAST
10:18 Где внедрять DAST в CI/CD
14:00 Зачем нужно API Security помимо DAST
19:25 Что такое WAF
20:37 Как работает WAF: сигнатурные WAF и поведенческие WAF
21:24 Как внедрить WAF в компании
24:28 Аппаратные WAF для оптимизации расшифровки траффика
26:44 WAF в kubernetes
27:37 Хорошие отечественные WAF хорошие и какие у них преимущества и недостатки
29:19 Anti-DDos в связке WAF 30:24 Ошибки установки WAF
32:48 Отечественные DAST и почему отечественные DAST хуже иностранных
34:14 Недостатки отечественных DAST
38:40 Российский open-source в ИБ
42:51 Почему в РФ нет своего OWASP и CNCF
45:06 LLM и AI в DAST: когда нейронки заменят пентестера?
47:46 О практиках IAST и RASP
51:09 Тренды в ИБ: ML и как нейронки будут помогать ИБ в будущем
52:09 Тренды в ИБ: развитие облачной индустриии в РФ
53:11 Блиц
54:50 Заключение
🔗 Приятного просмотра!
🌚 @poxek | 🌚 @poxek_backup | 📺 YT | 📺 RT | 📺 VK | 🌚 Магазин мерча
#WAF #DAST #API #appsec
В третьем выпуске встретились с Валентином Мамонтовым – экспертом с более, чем 5-летним опытом в сфере ИБ и DevSecOps. Он поможет нам разобраться, почему динамическое сканирование может спасти ваш бизнес от хакеров. А также:
0:33 Вступление
1:04 Что такое динамическое тестирование? Что такое DAST? Где применяется API Security?
2:40 Из чего состоит DAST инструмент: пауки, ajax spiders
3:33 Виды spiders (пауков)
5:26 Особенности работы DAST с API
6:37 С чем не справляется DAST
8:31 Как увеличить покрытие для DAST
10:18 Где внедрять DAST в CI/CD
14:00 Зачем нужно API Security помимо DAST
19:25 Что такое WAF
20:37 Как работает WAF: сигнатурные WAF и поведенческие WAF
21:24 Как внедрить WAF в компании
24:28 Аппаратные WAF для оптимизации расшифровки траффика
26:44 WAF в kubernetes
27:37 Хорошие отечественные WAF хорошие и какие у них преимущества и недостатки
29:19 Anti-DDos в связке WAF 30:24 Ошибки установки WAF
32:48 Отечественные DAST и почему отечественные DAST хуже иностранных
34:14 Недостатки отечественных DAST
38:40 Российский open-source в ИБ
42:51 Почему в РФ нет своего OWASP и CNCF
45:06 LLM и AI в DAST: когда нейронки заменят пентестера?
47:46 О практиках IAST и RASP
51:09 Тренды в ИБ: ML и как нейронки будут помогать ИБ в будущем
52:09 Тренды в ИБ: развитие облачной индустриии в РФ
53:11 Блиц
54:50 Заключение
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
ВАЛЕНТИН МАМОНТОВ – КАК ПОСТРОИТЬ API SECURITY, ЗАСТАВИТЬ DAST РАБОТАТЬ И ПРИЧЕМ ТУТ WAF
Привет!
В третьем выпуске встретились с Валентином Мамонтовым – экспертом с более, чем 5-летним опытом в сфере ИБ и DevSecOps. Он поможет нам разобраться, почему динамическое сканирование может спасти ваш бизнес от хакеров. А также:
✔️ почему WAF не пустая…
В третьем выпуске встретились с Валентином Мамонтовым – экспертом с более, чем 5-летним опытом в сфере ИБ и DevSecOps. Он поможет нам разобраться, почему динамическое сканирование может спасти ваш бизнес от хакеров. А также:
✔️ почему WAF не пустая…
😁3🌚3❤🔥1👍1🔥1👾1
Reverse Engineer Android Apps for API Keys
#android #reverse #RE #mobile #pentest #API
Статья с pwn.guide посвящена основам реверс-инжиниринга и цифровой криминалистики (форензики) приложений под Android. В ней рассматриваются ключевые этапы анализа мобильных приложений, важные инструменты и практические советы для начинающих и опытных специалистов по информационной безопасности.
➡️ Основные моменты статьи:
➡️ Описывается структура Android-приложений (APK-файлов), их компоненты и способы упаковки.
➡️ Даётся обзор инструментов для реверса и форензики Android, включая такие популярные решения, как Apktool, Androguard, jadx, а также специализированные forensic-утилиты вроде androick и backhack.
➡️ Пошагово разбирается процесс декомпиляции APK-файла, извлечения ресурсов, анализа манифеста и кода, поиска уязвимостей и вредоносных функций.
➡️ Приводятся советы по анализу разрешений, трекеров и подозрительных библиотек, а также по выявлению признаков компрометации или вредоносной активности.
➡️ Рассматриваются методы динамического анализа, включая запуск приложения на эмуляторе, мониторинг сетевых запросов и взаимодействие с файловой системой.
Даются рекомендации по автоматизации анализа с помощью скриптов и интеграции различных инструментов.
➡️ Необходимый тулинг
Android Studio — For running and testing APKs.
ADB — For interacting with Android devices or emulators.
APKTool — For decompiling and recompiling APKs.
JADX — For decompiling APKs to Java source code.
HTTP Toolkit — For intercepting and analyzing HTTP/HTTPS traffic.
Кому будет полезна статья:
Материал рассчитан на специалистов по кибербезопасности, исследователей вредоносных программ, а также всех, кто интересуется анализом безопасности мобильных приложений Android.
🔗 Читать далее
🌚 @poxek | 🌚 Блог | 📺 YT | 📺 RT | 📺 VK | 🌚 Мерч
#android #reverse #RE #mobile #pentest #API
Статья с pwn.guide посвящена основам реверс-инжиниринга и цифровой криминалистики (форензики) приложений под Android. В ней рассматриваются ключевые этапы анализа мобильных приложений, важные инструменты и практические советы для начинающих и опытных специалистов по информационной безопасности.
Даются рекомендации по автоматизации анализа с помощью скриптов и интеграции различных инструментов.
Android Studio — For running and testing APKs.
ADB — For interacting with Android devices or emulators.
APKTool — For decompiling and recompiling APKs.
JADX — For decompiling APKs to Java source code.
HTTP Toolkit — For intercepting and analyzing HTTP/HTTPS traffic.
Кому будет полезна статья:
Материал рассчитан на специалистов по кибербезопасности, исследователей вредоносных программ, а также всех, кто интересуется анализом безопасности мобильных приложений Android.
Please open Telegram to view this post
VIEW IN TELEGRAM