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