Статья Часть 1; fuzzing для сбора скрытых endpoints и дальнейшей эксплуатации API

Admin

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

Часть 1; fuzzing для сбора скрытых endpoints и дальнейшей эксплуатации API​


Digital legacy это не просто наследие компании.
Это следы которые остаются и часто разрабами забываются.
Может они уже недоступны публично или вовсе деактивированы.

Мы понимаем где кроется опасность.
Далеко не только в банальном овертейке таких легаси доменов а в абузе логики или мисконфигурациях о которых я писал уже ранее.

Некоторые админы оставляют очень важные /api/, /v1/, /v2/, /auth/, /oauth/, /token, /login, /openid/, /swagger, /openapi, /api-docs, /redoc, /docs и тп.

Вот такие мы сегодня будем искать.
А вообще в цикле статей и эксплуатацию затронем.
Всему свое время.

Содержание
  • Исторические paths
  • Фаззинг эндпоинтов
  • Проверка статусов
  • Вывод к следующей части
Исторические paths
В прошлых статьях я затрагивал уже поиск исторических путей.
Таргет у нас тот же.
Начинаем.

Сначала мы получим данные с помощью gau-
Bash:
~/go/bin/gau таргет.ком > *.txt

1768855339049


Лучше всегда сохранять в файл т.к. Массивы будут большие и мы будем как обычно дедуплицировать списки из разных источников.

Теперь таким же образом запускаем waybackurls-
Bash:
~/go/bin/waybackurls таргет.ком > *.txt

1768855362605


Теперь их необходимо уникализировать потому что результаты могут быть разными.
Очевидно но все же сортируем-
Bash:
cat 1.txt 2.txt | sort -u > 3.txt

1768855381549


Получается вот такое количество уникальных строк-

1768855393445


Мы использовали gau и waybackurls чтобы быстро собрать полный список исторических URL.
Они связанны с целевым доменом.
И еще собрали эндпоинты, которые больше не связаны с действующим сайтом.
Это помогает выявить скрытые; забытые или доступные для гостей пути к API, которые могут быть недоступны для обнаружения при стандартнм сканировании.

Фаззинг эндпоинтов

Получив все эти 9332 строк нам надо в первую очередь выделить те, которые педставляют вес в данном кейсе.
В самом начале мы выделили какие нас интересуют.
Выделяем строки по ключевым словам-
Bash:
egrep -i '/api/|/v[0-9]+/|/auth/|/token|/login|/oauth|/openid|/swagger|/openapi|/api-docs|/docs|/redoc|/admin' timetr.txt \
| sort -u > trurlstarg.txt

1768855416631


Такой манипуляцией на выводе получится уже 297 строк

1768855428718


Эти 2 шага нужны для того чтобы отсеить ненужные нам ендпоинты из 9к+ строк.
Это позволит сфокусироваться на тех, которые могут привести к документации; самим api хукам; функционалу.

Теперь можно перейти к самому фаззингу чтобы попробовать найти скрытые пути.
Для начала нам нужно создать вордлист, чтобы fuff мог пройтись по домену и субдоменам-
Код:
cat <<EOF > apiwl.txt
swagger.json
swagger.yaml
openapi.json
openapi.yaml
v2/api-docs
api-docs
swagger-ui
docs
redoc
api
v1
v2
auth
login
token
openid
admin/api
internal-api
debug
EOF

1768855452641


Отличие от исторического поиска в том что fuff будет искать скрытые; нежелательные пути и фаззить нетипичные констркции путей.

Собрав спсиок ключевых слов мы переходим к активной эннумирации директорий по каждому домену и субдомену таргета-
Bash:
ffuf -u https://targ.com.tr/FUZZ -w apiwl.txt -mc 200,301,302 -t 40 -o trapipth.json

1768855472127


Если были собраны субдомены в список как у меня в прошлой статье то пускаем в работу весь список-
Bash:
while IFS= read -r sub; do
[ -z "$sub" ] && continue
echo "FFUF -> root on $sub"
/usr/bin/ffuf -u "https://$sub/FUZZ" -w /home/kali/apiwl.txt -mc 200,301,302 -t 20 \
-o "/home/kali/ffuf_out/${sub}_root.json" -of json

echo "FFUF -> /api on $sub"
/usr/bin/ffuf -u "https://$sub/api/FUZZ" -w /home/kali/apiwl.txt -mc 200,301,302 -t 20 \
-o "/home/kali/ffuf_out/${sub}_api.json" -of json

sleep 0.2
done < /home/kali/targsub.txt

1768855493026


Вот они наши находки-
1768855505928


Все что проходит фаазинг сохраняется в указанную нами директорию в формате .json-
1768855518156


По окончанию нам нужно уложить все relevant url из .json aайлов в один .txt-
Bash:
mkdir -p /home/kali/candidates
for f in /home/kali/ffuf_out/*.json; do
[ -s "$f" ] || continue
/usr/bin/jq -r '.results[]?.url' "$f" 2>/dev/null >> /home/kali/candidates/ffuf_hits_raw.txt || true
done

1768855540422


Проверка статусов
Создав список URL его необходимо еще раз просеить, но на предмет интересующих активных энпоинтов и отбросить редайректы.
Запускам проверку через httpx-
Bash:
~/go/bin/httpx -l /home/kali/candidates/ffuf_hits.txt -mc 200,301,302,403 -t 25

1768855558094


После получения списка активных путей выделяем приоритетные по ключевым словам-
Bash:
grep -iE 'auth|login|token|swagger|openapi|redoc|docs|internal' /home/kali/candidates/ffuf_hits.txt
1768855579606


Сортируем для удобства по разным категориям-
Bash:
grep -i 'auth\|login\|token' /home/kali/candidates/ffuf_hits.txt > authtr.txt
grep -i 'swagger\|docs\|openapi' /home/kali/candidates/ffuf_hits.txt > apitr.txt
grep -i 'internal\|debug' /home/kali/candidates/ffuf_hits.txt > inttr.txt

Мои категории получились такими
Аuth - все авторизационные пути;
Api - очевидно из названия категории;
Internal -все эндпоинты для внутреннего пользования;

Проверяем все 3 файла на активность хостов-
Bash:
cat authtr.txt | ~/go/bin/httpx -mc 200,301,302,403 -title -content-length -tech-detect -t 25
cat apitr.txt | ~/go/bin/httpx -mc 200,301,302,403 -title -content-length -tech-detect -t 25
cat inttr.txt | ~/go/bin/httpx -mc 200,301,302,403 -title -content-length -tech-detect -t 25
1768855610702

1768855616735

1768855623587

Получилось что за эти несколько шагов были собраны интересные для реверса URL.
Это олотая жила по причине того, что мы можем изучить спецификации; запросы и пулы хуков; протестировать апи и реверсить флоу; провести маппинг запросов и построить схему взаимодействий
Вывод к следующей части
На выходе мы получили
  • Исторические и живые URL;
  • Отфильтрованные кандидаты по API признакам;
  • Дополнительные; скрытые или иначе расположенные пути;
Это дает готовую базу для быстрой аналитики открытых спецификации через swagger или openapi.

В свою очередь они позволяют далее автоматически найти
  • Маршрутизацию и параметры;
  • Публичные auth или login токены;
Пробуем получить доки
Bash:
curl -k https://hub.param.com.tr/api/v2/api-docs -o openapiv2.json
1768855643444

В практическом смысле это открывает возможности для полного API маппинга.
Это приведет к выявлению незаточенных под авторизацию точек, и быстрой подготовки сценариев тестирования для генерации запросов или фаззинга по параметрам.
Вот этим и займемся в следующих частях этого цикла.
 
Похожие темы
Admin Статья К обфускации общих сборок .NET (часть 1) Вирусология 0
Admin Статья 2 часть. Находим API; Swagger; OpenAPI endpoints и точки эксплуатации.[PART: 2] Уязвимости и взлом 0
Admin Статья 2 часть. Находим API; Swagger; OpenAPI endpoints и точки эксплуатации.[PART: 1] Уязвимости и взлом 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

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