Поиск уязвимостей Web используя подручные средства для самых маленьких. Продолжение
Это руководство предназначено для начинающих, которые все еще имеют минимальные знания в области информационной безопасности. Этой статьёй мы продолжаем цикл повествований о поиске Web уязвимостей.
Сегодня нам потребуется:
- sublist3r. Однин из инструментов на python, придназначенный для обнаружения поддоменов, существующих на сайте
- httprobe. Тулза для проверки работоспособности http и https серверов
- webscreenshot или aquatone. Утилиты для сохранения скриншотов с сайтов или открытых портов
- header response
- relative-url-extractor. Утилита для потрошения “сжатых” файлов web-приложений на наличие URL с которыми идёт соединения во время отработки скрипта
- jsfiles extractor
Установка настроек:
Я написал небольшой скрипт, чтобы облегчить процесс установки инструментов.
root@debian-s-1vcpu-2gb-ams3-01:~# git clone https://github.com/airwawekz/xrec.git
root@debian-s-1vcpu-2gb-ams3-01:~# cd xrec
root@debian-s-1vcpu-2gb-ams3-01:~# chmod +x xrec-install.sh
root@debian-s-1vcpu-2gb-ams3-01:~# ./xrec-install.sh
Процесс идентификации
Сегодня мы попробуем поискать уязвимости во всех поддоменах, включая основной домен. Обычно основной домен является наиболее защищеным, чем субдомены, что означает, что мы должны сосредоточиться на субдоменах.
Например: *.example.com
Первый шаг:
Мы идентифицируем все субдомены, которые принадлежат example.com. Для этого мы используем Sublist3r.
root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/Sublist3r/
root@debian-s-1vcpu-2gb-ams3-01:~# python sublist3r.py -d example.com -o domains.txt
Я предлагаю для лучших результатов добавить API в конфигурации скрипта. (Например: Virustotal)
Ждём завершения сканирования, в результате которого будет создан файл «domains.txt», в котором будут сохранены результаты процесса сканирования.
Второй шаг:
Проверяем, какие домены действительно работают, для этого используем httprobe.
root@debian-s-1vcpu-2gb-ams3-01:~# cat domains.txt | httprobe | tee -a alive.txt
После завершения этого процесса вы создадите файл с именем «alive.txt» с действительными поддоменами.
Третий шаг:
Мы делаем скриншоты для каждого действующего сайта, этот шаг помогает нам быстро определить потенциальные уязвимые субдомены, если у нас есть большой список действительных доменов.
root@debian-s-1vcpu-2gb-ams3-01:~# python /root/xrec/webscreenshot/webscreenshot.py -r chromium -i alive.txt -o /root/xrec/webscreenshot/screens/
Результаты будут сохранены в папке /root/xrec/webscreenshot/screen/ как * example.com.png.
Кстати, для этой цели можно использовать и утилитку aquatone из Kali Linux. Aquatone умеет сканировать открытые порты,
обнаруженные сканером nmap и делать скриншот того, что на них расположено.
Какой метод использовать каждому решать самому.
После завершения этого процесса я рекомендую вам проверить каждый скриншот отдельно. Напрмер, я часто нахажу забытые поддомены с уязвимыми старыми версиями cms.
Четвертый шаг:
Проверяем header response, этот шаг является очень важным, есть много уязвимостей, которые могут быть использованы через header.
Например: Yahoo Remote Code Execution
root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | sudo chmod +x response.sh
root@debian-s-1vcpu-2gb-ams3-01:~/xrec# ./response.sh /root/xrec/Sublist3r/alive.txt
В конце этого процесса будут созданы 2 папки «headers» и «responsebody», в которые будут сохранены результаты проверки.
Пятый шаг:
Последний шаг, это извлечение endpoint из файлов JS. Для этого используем jsfiles extractor.
root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | chmod +x jsfiles.sh
root@debian-s-1vcpu-2gb-ams3-01:~# ./jsfiles.sh
После завершения этого процесса создаеться папка с именем «scripts», где все файлы будут иметь вид www.example.com.
На данный момент мы собрали достаточно информации, нам осталось только протестировать.
Например:
Если у вас есть конечные ссылки: “details.php?id=3” или “details/id/3” первым действием является тестирование на наличие уязвимостей, таких как XSS/SQLi.
Другой пример, если у нас есть конечные ссылки: =redirectUrl=/example/photo мы можем попробовать open redirect.
Если у вас есть конечные точки формы: /pingcheck.php?s=google.com, можете сделать тесты для RCE или SSRF, если у вас есть что-то подобное /viewpage.php?s=google.com.
Что можно добавить еще?
– Больше источников / API для сканирования поддоменов (например, Censys, Shodan и т. Д.)
– Сканирование портов с помощью nmap
– Направление bruteforce
– автоматизация всех процессов
Маленкая история как нашёл уязвимость XSS в Snapchat
Используя процесс сканирования поддоменов, я обнаружил, что этот поддомен snappublisher.snapchat.com имеет интересную функцию загрузки изображений после нескольких неудачных попыток пройти фильтр, я заметил что можно загрузить файлы формата SVG (Scalable Vector Graphics) а дальше все было просто:
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
<script type="text/javascript">
alert(document.domain);
</script>
</svg>
Я сохранил код как img.svg и загрузил изображение, затем открыв изображение в новой вкладке ->Handler был активным.
К сожелению, эта уязвимость может быть использована только для фишинг-атак. Мы сообщили об этой уязвимости команде Snapchat через Hackerone.
Кстати, сказали спасибо.
Не посмотришь—не увидишь, не расспросишь — не найдешь.
Статья написана в ознакомительных целях но каждый выбирет как это использовать…