Тихая разведка. Метод выявления потенциальных уязвимостей WEB

в 14:30, , рубрики: SQLi, xss, КодоБред, уязвимости и их эксплуатация

Примечание

Это руководство предназначено для начинающих, которые все еще имеют минимальные знания в области информационной безопасности. Я стараюсь поощрять молодых людей, у которых много времени и которые хотят заниматься чем-то продуктивным.

Введение

Как вы уже знаете, существует множество сайтов-посредников, которые работают с компаниями для повышения эффективности программы Bug Bounty, в том числе:

  • hackerone.com
  • bugcrowd.com
  • intigriti.com
  • yeswehack.com
  • openbugbounty.org
  • synack.com (privat)

Как это работает ?

  • Ищем уязвимости
  • Пишем сделанные шаги необходимые для эксплуатации уязвимости
  • Скидывает этот отчет тех. поддержке.
  • Получаем монетку.

Что нам нужно для этого?

VPS, желательно Debian (могут использоваться и другие) + хорошее интернет-соединение ( я беру у alexhost.com, VPS 1.5 GB RAM, 1 Core, 10GB SSD всего за 11 евро в год. )

  • sublist3r
  • httprobe
  • webscreenshot
  • header response
  • relative-url-extractor
  • 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.

image

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

image

Я предлагаю для лучших результатов добавить API в конфигурации скрипта. (Напр .: Virustotal)

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

Второй шаг:

Проверяем, какие домены действительны, для этого используем httprobe.

root@debian-s-1vcpu-2gb-ams3-01:~#   cat domains.txt | httprobe | tee -a alive.txt

После завершения этого процесса вы создадите файл с именем «alive.txt» с действительными поддоменами.

image

Третий шаг:

Мы делаем скриншоты для каждого действующего сайта, этот шаг помогает нам быстро определить потенциальные уязвимые субдомены, если у нас есть большой список действительных доменов.

root@debian-s-1vcpu-2gb-ams3-01:~# python  /root/xrec/webscreenshot/webscreenshot.py -r chromium -i alive.txt -o /root/xrec/webscreenshot/screens/

image

Результаты будут сохранены в папке / root / xrec / webscreenshot /screen / как * example.com.png.

После завершения этого процесса я рекомендую вам проверить каждый скриншот отдельно. Я часто нахожу забытые поддомены с уязвимыми 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

image

В конце этого процесса будут созданы 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.

image

На данный момент мы собрали достаточно информации, нам осталось только протестировать.

Например:

Если у вас есть конечные ссылки: “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. Нам сказали спасибо))

Не посмотришь—не увидишь, не расспросишь — не найдешь.

Автор: AlexHost

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js