Похек
16.4K subscribers
2.09K photos
110 videos
243 files
3.06K links
All materials published on the channel are for educational and informational purposes only.

Мнение автора ≠ мнение компании, где работает автор

Чат: @poxek_chat

Реклама: @szybnev или
https://telega.in/c/poxek

РКН: https://clck.ru/3FsVhp
Download Telegram
Forwarded from Пост Импакта
#api #params

> Ничего не могу найти на сайте, может ещё что-то посмотреть?

Иногда встречается сайт, на котором всего лишь несколько конечных точек. Казалось, все параметры были проверены на уязвимости, а в чек-листе отмечены любые возможные проверки на инъекции и логику.

Однако, бывают уязвимости, которые не видны с первого взгляда. Например (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         |
---------------------------------------------------------------------
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 |

Так, для Server: Apache Tomcat будет взято значение из первого совпадения action=delete
А для Server: Apache значение уже будет action=view — последний параметр

Но не все сервера используют приоритет порядка, так, например, ASP.NET/IIS конкатенирует значения. Поэтому в случаях, когда выполнению XSS мешает санитизация или WAF, можно составить следующий payload:

example.com/search?param=<audio/n="&param="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

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
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

Установка:
python -m pip install offat


Использование банальное:
offat -f swagger_file.json


Давно слежу за инструментом, он активно обновляется , но пока ещё в бете.
У инструмента лицензия MIT, так что компании могут свободно его использовать.
А ещё есть готовые докеры)

🧩 Github

🌚 @poxek
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥192
Как провести фаззинг 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
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥2
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
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 | 🌚 Магазин мерча
Please open Telegram to view this post
VIEW IN TELEGRAM
😁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 | 🌚 Мерч
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍2🌚1👾1