Статья 2 часть. Находим API; Swagger; OpenAPI endpoints и точки эксплуатации.[PART: 2]

Admin

Администратор

2 часть. Находим API; Swagger; OpenAPI endpoints и точки эксплуатации.[PART: 2]​

Bash:
curl -k -sS -o /tmp/swag_full.html https://hub.param.com.tr/swagger-ui head -n 200 /tmp/swag_full.html > swagg,html
Вытягиваем возможные url сразу с дедупликацией-
1768856113227

Bash:
grep -oE 'https?://[^"'"'"']+\.js' swagg.html | sort -u
Дополнительно прогоняем с указанием конкретных параметров-
1768856173794


Bash:
for j in $(grep -oE 'https?://[^"'"'"' >]+\.js' swagg.html | sort -u); do

curl -k -sS "$j" \

| egrep -i 'openapi|swagger|/api/|token|auth' \

| sed -n '1,120p'

done
Этот скрипт экспортирует все найденные .js паттерны .html странцы в поисках спецификаций или конфигурационных файлов.

Все это можно сохранить в отдельный файл > jslist.txt и получить файлы или аргументы-
1768856194784

Bash:
cat jslist.txt | xargs -n1 -P8 -I% bash -c '

  echo "=== % ===";

  curl -k -sS --max-time 10 --range 0-8191 "%" 2>/dev/null | sed -n "1,160p" | egrep -i --color=auto "openapi|swagger|/api/|token|auth" || echo "(no hits in first 8KB)";

'
DevTools и анализ strings в .har
DevTools стоит использовать в процессе реверса флоу.
Логирование шагов в итоге даст еще ключи для поиска или вовсе полезные;критические данные.

Открывем https://hub.param.com.tr/ и нажимаем f12-
1768856216377

Вкладка Network - Preserve log - Fetch / XHR - обновляем страницу.

Поскольку страница защищена логином то рассмотрим гоствеой неавторизированный лог подробнее сохранив .har файл-
1768856233163

По запросам мы уже увидели AJAX.
Кроме этого каждый запрос к серверу по типу https://hub.param.com.tr/lib/ajax/service.php?sesskey=<...>&info=core_site_get_site_info
1768856252405

возвращает интересный JSON blob d виде m.cfg-
1768856262381

Дополниельно еще получаем там же указания на значения sesskey&apibase ответов.
Поскольку он такой не один это интересные параметры для разведки.
Добавив в список параметров снова проинспектируем .html-
1768856272853

Bash:
sed -n '1,400p' swagg.html | egrep -i 'apibase|M.cfg|sesskey|r.php|openapi|swagger|api-docs|/r.php/api' -n

Получаем верные направления и указания на расположение apibase - https://hub.param.com.tr/r.php/api и заголовки для поиска именно в apibase-
1768856295849

Bash:
APIBASE="https://hub.param.com.tr/r.php/api"

for p in openapi.json openapi.yaml swagger.json swagger.yaml swagger-ui api-docs \

v1/openapi.json v2/openapi.json v1/swagger.json v2/swagger.json \

docs redoc token auth login openid; do

u="$APIBASE/$p"

res=$(curl -k -s -o /dev/null -w "%{http_code} %{content_type}" --max-time 8 "$u")

printf "%-70s %s\n" "$u" "$res"

done

В итоге получили список директорий, но довольно скудный и без ответов 200.
Поэтому проапгрейдим пайплайн для более широкого поиска и выгрузке при нахождении подходязих страниц .json;.yaml-
1768856314896


Bash:
mkdir -p /home/kali/specs

while read -r u; do

out=$(curl -k -sS -w "%{http_code} %{content_type}" -o /tmp/last.body --max-time 10 "$u" 2>/dev/null)

code=$(echo "$out" | awk '{print $1}')

ctype=$(echo "$out" | cut -d' ' -f2-)

printf "%-80s %s %s\n" "$u" "$code" "$ctype"

case "$ctype" in

application/json*|application/*+json*|application/yaml*|text/yaml*|text/x-yaml*)

safe_name="/home/kali/specs/$(echo "$u" | sed -E 's#https?://##; s#[:/]+#_#g')"

mv /tmp/last.body "$safe_name"

echo "  => SAVED: $safe_name"

jq -r '.paths? | keys[]' "$safe_name" 2>/dev/null | sed -n '1,20p' || head -c 200 "$safe_name"

 ;;

*)

 rm -f /tmp/last.body
;;
 esac
done < /home/kali/candidates2/ffuftargs2.txt

Анализ данных для эксплуатации
Итого еще в .har файле мы получили 11 bodie ответов.
Проанализировав их на application/json MIME мы можем найти довольно интересные пункты.
Самые внимательные заметили Moodle который указывает на обработку запросов AJAX-
1768856337085


Внутри них мы видим что сервер отдает нам json ответы которые содержат ендпоинты service.php; service-nologin.php; sesskey=... прямо в url.

До них доходят запросы и они записываются в браузер сессии.
Потенциально это значит что используя curl вполне можно дотянуться до спецификаций используя подставные значения в url без браузера или др. UI.
Сегодня мы лишь ищем api и потому не будет шалить и хулиганить подтверждая историю с подставными значенниями в url.
Ведь мы пришли к результату что сам AJAX RPC подбросил нам важных api&spec ендпоинтов таких как
/r.php/api;
/openapi.json;
/swagger.json;
/lib/ajax/service.php;
/edwiserreports/request_handler.php;
И др-

1768856348090


В качестве дальнейшего развития можно анализировать каждый ендпоинт и это мы рассмотрим в заключительной части цикла.
Скачивая .html версии и проходя этапы парсинга дополнительных ендпоинтов; файлов; конфигов; спецификаций; функций; хедеров и тд.
Таким образом от маленького маппинга в таком виде будет построена полноценная карта взаимодействий api
 
Последнее редактирование:
Похожие темы
Admin Статья 2 часть. Находим API; Swagger; OpenAPI endpoints и точки эксплуатации.[PART: 1] Уязвимости и взлом 0
Admin Статья К обфускации общих сборок .NET (часть 1) Вирусология 0
Admin Статья Часть 1; fuzzing для сбора скрытых endpoints и дальнейшей эксплуатации API Уязвимости и взлом 0
Admin Статья Как простой баг повреждения памяти ядра Linux приводит к полной компрометации системы(Часть 2) Уязвимости и взлом 0
Admin Статья Как простой баг повреждения памяти ядра Linux приводит к полной компрометации системы(Часть 1) Уязвимости и взлом 0
Admin Статья Софт для разработки эксплойтов 2 часть Вирусология 0
Admin Статья Софт для разработки эксплойтов 1 часть Вирусология 0
Support81 ФБР вернуло крипту SafeMoon. Но большая часть улетела… другому хакеру Новости в сети 0
Support81 Cetus Protocol обокрали на $223 млн, и теперь они умоляют хакера отдать хотя бы часть — за амнистию и чай Новости в сети 0
A Пишем свой RAT на Python > {Часть 1} Уязвимости и взлом 3
Admin Интересно Создание своего Shadowsocks + v2ray + tor [Часть 2] Анонимность и приватность 5
Admin Интересно Создание своего Shadowsocks и обфускация трафика [Часть 1] Анонимность и приватность 2
CMDfromBAT ВИРУСОЛОГИЯ ЧАСТЬ 4 - КАК ПАЛЯТ ВИРУСОПИСАТЕЛЕЙ Вирусология 5
CMDfromBAT ВИРУСОЛОГИЯ ЧАСТЬ 3 - БОТНЕТ Вирусология 4
CMDfromBAT ВИРУСОЛОГИЯ ЧАСТЬ 2 - 15 СПОСОБОВ РАСПРОСТРАНЕНИЯ ВИРУСА Вирусология 11
CMDfromBAT ВИРУСОЛОГИЯ ЧАСТЬ 1 - ПОЛНЫЙ FAQ ПО ТРОЯНАМ Вирусология 4
S1leNt ИСТОЧНИКИ добычи информации (Часть #1) Фишинг, мошенничество, СИ 0
Anorali Свой мини кейлоггер на python. Часть 3 Вирусология 2
Anorali Свой мини кейлоггер на python. Часть 2 Вирусология 0
L Интересно Хакер вернул большую часть украденных с Lendf.me криптоактивов Новости в сети 0
L Интересно Основная часть пользователей eToro инвестирует в XRP Новости в сети 0
2 Всё об уязвимостях GSM сетей или как вас прослушивают. Часть 1 Уязвимости и взлом 6
S очередная часть кешклоуд Раздачи и сливы 0
S очередная часть кешклоуд,снял с нее 295$ Раздачи и сливы 3
S кешклоуд очередная часть! Раздачи и сливы 4
S очередная часть кешклоуд Раздачи и сливы 1
S вторая часть кешклоуд Раздачи и сливы 3
B iOS Разработчик. Продвинутый курс v 2.0 Часть 1-2 (2020) Полезные статьи 0
A [Anspiker] 1800 курсов по заработку и не только за Январь. Часть 2. (2020) Способы заработка 0
A Аккаунты nordvpn бесплатно, большая часть этого не используется! Раздачи и сливы 3
A 1100 курсов по заработку и не только за Январь. Часть 1. (2020 Способы заработка 0
B Создатель игровой вселенной: геймдизайнер - Часть 1 и 2 Полезные статьи 0
A [anspiker] 1800 курсов по заработку и не только за декабрь. Часть 1. (2019) Способы заработка 2
A CTF. WEB. Задания с Root-Me, часть 19 Полезные статьи 0
A CTF. WEB. Задание с Root-Me часть 17. Полезные статьи 0
A CTF. WEB. Задания с Root-Me часть 16. Полезные статьи 0
M LPE. Практическая часть. Часть 4. Считывание файла через замену Is на nano и трансформацию PATH Полезные статьи 0
A LPE. Практика. Примеры и задания Часть 2. Полезные статьи 0
A LPE. Практическая часть. Чтение файла через изменение ls на nano и модификацию PATH. Полезные статьи 0
K Metasploit для юнцов [Часть 1] Уязвимости и взлом 1
G Python для хакера - Часть 4. Свой мини фреймворк. Программирование 1
G Python для хакера - Часть 3. Сбор информации об IP и пробиваем номер сотового. Программирование 1
G Python для хакера - Часть 2. Программирование 1
G Python для хакера - Часть 1. Начало. Программирование 5
T Знакомство с Frida - фреймворк позволяющий ломать Android приложения [ЧАСТЬ 1] Готовый софт 3
T Пошаговое создание своего Bootkit'a [ЧАСТЬ 2] Программирование 0
T Пошаговое создание своего Bootkit'a [ЧАСТЬ 1] Программирование 4
V Путёвка в Dark Web , часть 2 Полезные статьи 0
T OTUS - Реляционные СУБД для разработчиков и администраторов. Часть 1 Полезные статьи 0
T OTUS - Data Scientist. Часть 1 + 2 из 5 Полезные статьи 0

Название темы