Привет, меня зовут z0id. Я занимаюсь исследованием безопасности в компании hacker-one и bug -auce.

Я поговорил со своим другом ziot, и он дал мне несколько хороших советов по поиску уязвимостей, просто взглянув на код java-скрипта на стороне клиента.

Итак, я собираюсь показать вам, как все находят все большие уязвимости, такие как LFI / LFR, Dom XSS, на всем протяжении чтения кода.

Перечисление субдоменов

Во-первых, вам нужно найти как можно больше поддоменов, использовать несколько инструментов, а затем, как только вы их найдете, запустить это.

cat *.txt | sort -u | httprobe -c 80 | tee -a hosts

Это обеспечит открытие порта 80 - 443 и добавит http: // https: // к каждому хосту, имеющему эти порты.

Как мне искать конечные точки?

На самом деле это проще, чем кажется. следующие шаблоны для поиска конечных точек: '/,"/

Вам следует искать и тестировать:

  • конечные точки
  • XMLHttpRequests
  • Звонки Ajax
  • Раковины
  • Источники

Я знаю 3 основных способа просмотра кода JavaScript, один из них:

используйте инструменты разработчика и таким образом просматривайте код на стороне клиента.

Другой способ - использовать такие инструменты, как:

  • JsParser
  • Linkfinder

для просмотра JavaScript и автоматического поиска конечных точек и запросов XHR, но

это личное предпочтение,

Мне нравится использовать отрыжку, потому что она мне кажется более эффективной.

Чтобы упростить поиск JavaScript для тестирования, вам необходимо заполнить все URL-адреса в целевом разделе в burp с помощью инструмента под названием burp feed.



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

python bfeed-threaded.py hosts 100

Поиск уязвимостей в Javascript

После того, как вы заполнили список целей, вам нужно экспортировать весь JavaScript в файл.

для этого выберите все URL-адреса и ссылки:

щелкните правой кнопкой мыши - ›Инструменты взаимодействия -› Поиск сценариев - ›Включить динамическое обновление

Сценарии экспорта - ›Включить URL-адреса в экспорт -› Сохранить в файл с именем code.js

Откройте code.js в блокноте ++

Попробуйте такие шаблоны, как: '/,"/

И вы пытаетесь найти вызовы Ajax и XMlHttpRequest.

javascript находится на стороне клиента, поэтому этот код выполняется в вашем браузере, а не на сервере.

вы можете найти запросы на стороне сервера, сделанные через javascript, которые могут быть уязвимы для lfi

есть также серверный javascript (nodejs), но вы не будете просматривать его в своем браузере в 99% случаев

просмотр серверного js-кода сам по себе был бы уязвимым

посмотри на запросы xhr

XMLHttpRequest (XHR) is an API in the form of an object whose methods transfer data between a web browser and a web server. The object is provided by the browser's JavaScript environment.

Вот несколько примеров того, что вам нужно будет найти:

$.get(‘/api/profile/filename=’ + image);

Https://www.owasp.org/index.php/Testing_for_AJAX_Vulnerabilities_(OWASP-AJ-001)

var pgRequest = new XMLHttpRequest();
  pgRequest.open('GET', '/pg_pixel?r=' + file, true);
  pgRequest.send();

Https://api.jquery.com/jQuery.getJSON/ https://api.jquery.com/jquery.ajax/ https://api.jquery.com/jQuery.post/



Надеюсь, вы нашли этот пост полезным.

Ключ к успеху - настойчивость, приверженность и любовь к взлому. Не волнуйтесь, если вы ничего не найдете в течение долгого времени, потому что, пока вам нравится то, что вы делаете, это главное.

Удачной охоты за ошибками !!