Интересно Тестирование JavaScript-файлов для Bug-bounty хантеров

wrangler65

Original poster
Ufo Member
Сообщения
18
Реакции
2
Посетить сайт
Вы, без сомнения, слышали или видели, как другие охотники за ошибками находят критические уязвимости благодаря изучению JavaScript файлов, не так ли? В этой статье рассказывается о важности тестирования и проверки JavaScript файлов для баг-хантеров. Мы расскажем вам, что именно нужно искать, и приведем примеры наиболее распространенных уязвимостей (и закономерностей, которые приводят к уязвимостям) в JavaScript файлах!

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

Важность JavaScript файлов в процессе bug bounty


Мы все знаем, насколько важны JavaScript файлы в процессе bug bounty, поскольку они могут привести к появлению множества (критических) уязвимостей. Некоторые баг-хантеры часто упускают из виду или даже не проводят тестирование и проверку javascript файлов. Чаще всего из-за того, что их трудно читать и их довольно сложно изучить и полностью понять.
Однако эти файлы часто содержат ссылки на конечные API, маршруты приложений и входные параметры. Иногда в них также могут присутствовать токены или другие жестко запрограммированные учетки.

По этой причине никогда не следует пренебрегать JavaScript файлами. Особенно если целевой объект выглядит либо устаревшим, либо является приложением с большим количеством JavaScript файлов.
В этой статье мы расскажем вам, на что обращать внимание в JavaScript файлах.

Интересные находки, спрятанные в JavaScript-файлах

Ссылки на API-эндпоинты и маршруты приложения


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

Наша основная цель как охотников за багами — найти как можно больше таких, поскольку это неотъемлемая часть нашего процесса обнаружения контента.
Еще одна мысль, которую стоит учесть, заключается в том, что некоторое ПО имеет API-эндпоинты или маршруты приложения, упомянутые в JavaScript-файлах, которые не являются частью основного приложения или не предназначены для конечного пользователя (подумай об административных панелях или инструментах отладки для разработчиков). Изучая целевое ПО, можно не заметить эти скрытые API-эндпоинты или URL, поэтому нам придется прибегнуть к дополнительным способам обнаружения.

По этой причине вам всегда следует пытаться найти такие типы труднодоступных API-эндпоинтов или маршрутов приложений в JS-файлах, поскольку они могут значительно увеличить наши шансы обнаружить непроверенные компоненты, которые могут привести к критическим уязвимостям.

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

- это отличный и простой инструмент с открытым исходным кодом, который поможет вам находить ссылки в файлах JavaScript!

Жестко заданные учетные данные

Случается, что разработчики случайно допускают ошибки и прописывают учетные данные в общедоступных ресурсах, таких как JavaScript файлы. Например, учетные данные AWS не должны быть жестко зашиты и присутствовать в статических файлах.

По этой причине рекомендуется искать учетные данные любого типа, которые жестко закодированы в файлах конфигурации (часто объявляются как глобальные объекты или переменные).
3ef33ec6-ad14-431f-b9b4-99ef68555577.png
3ef33ec6-ad14-431f-b9b4-99ef68555577.png

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


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

репозиторий, который содержит список популярных публичных API-ключей и учетных данных, а также инструкции по проверке обнаруженных данных.

Входные параметры

Входные параметры принимают произвольные пользовательские данные, что может привести к всевозможным уязвимостям, таким как CSRF, SQL-инъекции, XSS и многое другое. Очень важно, чтобы мы определили все возможные параметры, которые может принимать конкретная конечная точка.
Один из наиболее точных способов сделать это - использовать JavaScript файлы. В вызовах API функций вы часто найдете тело или параметры запроса:

6590cc70-d0fd-40db-b933-42c924b51235.png
6590cc70-d0fd-40db-b933-42c924b51235.png

Обратите внимание на эти параметры и попробуйте использовать их различными способами для взаимодействия с API endpoint. Попробуйте изменить тип содержимого тела вашего запроса. Помните, что некоторые параметры могут использоваться повторно.

DOM-based уязвимости

JavaScript файлы также могут помочь в поиске других DOM-based уязвимостей, таких как

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

. DOM-based уязвимости требуют поиска приемников и источников DOM. Источник DOM - это источник, из которого поступают ваши произвольные входные данные (например, location.hash или параметр запроса). Когда приложение уязвимо, оно передает ваши небезопасные входные данные непосредственно в приемник DOM, вызывающий функцию, которая поддерживает динамическое выполнение кода на стороне клиента (например, такие функции, как eval, location.href или innerHTML).

Мы можем специально искать эти ключевые слова, чтобы найти DOM-based уязвимости.

Уязвимости типа "prototype pollution" используют аналогичный подход, и нам потребуется искать функции или методы, которые небезопасным образом объединяют объекты с произвольными входными данными.

К счастью для нас, расширения для веб-браузеров, такие как DOM Invader и Untrusted Types, могут помочь нам автоматизировать процесс обнаружения. Таким образом, нам не придется тратить много времени на ручное изучение JS-файлов!
Заключение

Никогда не следует пренебрегать JavaScript файлами, они содержат ценную информацию, которая может помочь вам найти следующую критическую уязвимость! Всегда старайтесь проверять все встроенные JS-файлы у вашей цели, включая те, которые динамически импортируются после загрузки страницы. JavaScript файлы также могут помочь нам расширить пространство для атаки (изучив URL-адреса, на которые ссылаются, конечные точки API и параметры).

Вы только что узнали кое-что новое о JavaScript файлах и их важности в баг-хантинге. А теперь самое время проверить свои навыки!


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

 
Название темы
Автор Заголовок Раздел Ответы Дата
D [Service]MASSIVE DDOS/ Мгновенное тестирование вашего ресурса. Ищу работу. Предлагаю свои услуги. 8
E Закрыто Курс «Тестирование Веб-Приложений на проникновение» Корзина 0
Admin Взламываем сайты / Тестирование на проникновение с нуля Уязвимости и взлом 5
A Тестирование приложений Powershell вместе с Perl6 и Sparrow6 Другие ЯП 0
K [Udemy.com] [Все части] Взламываем сайты / Тестирование на проникновение с нуля Русская озвучка Другое 0
G Тестирование на проникновение приложения Android – Часть 12 Полезные статьи 0
G Тестирование на проникновение приложения Android – Часть 11 – Контрольный список Android Полезные статьи 0
K Корпоративные Лаборатории - Тестирование На Проникновение (эксперт) https://cloud.mail.ru/public/LeTY/nqyf9hawb Другое 0
K PentestIT-Тестирование на проникновение с использованием Metasploit Framework https://cloud.mail.ru/public/HQgW/7oreizmBV Другое 0
K [GeekBrains.ru] Курс Тестирование ПО Другое 1
K Тестирование на проникновение с нуля Другое 0
K Тестирование на проникновение с помощью Kali Linux 2.0 Другое 0
K Тестирование На Проникновение С Помощью Kali Linux 2.0 Другое 0
G Тестирование на проникновение приложения Андроид – часть 10 Полезные статьи 0
G Тестирование на проникновение приложения Андроид – часть 9 Полезные статьи 0
G Тестирование на проникновение приложения Андроид – часть 8 Полезные статьи 0
G Тестирование на проникновение приложения Андроид – часть 7 Полезные статьи 0
G Тестирование на проникновение приложения Андроид – часть 6 Полезные статьи 0
G Тестирование на проникновение приложения для Android - часть 5 Полезные статьи 0
G Web Breaker - Динамическое тестирование Web - приложений Kali Linux 0
G Тестирование на проникновение приложений для Android - часть 4 Полезные статьи 0
G Тестирование на проникновение приложений для Android - часть 3 Полезные статьи 0
G Тестирование на проникновение для Android приложений - часть 2 Полезные статьи 0
G Тестирование на проникновение приложений для Android - часть 1 Полезные статьи 0
G Тестирование мобильной безопасности для защиты ваших приложений от кибер-угроз Полезные статьи 0
G Взламываем сайты Тестирование на проникновение с нуля - Часть 2 из 7 Уязвимости и взлом 1
K Тестирование на проникновение с помощью Kali Linux 2.0 + Бонус Софт для работы с текстом/Другой софт 2
Admin MetaModule - тестирование единого пароля Уязвимости и взлом 0
swimmingPerl На проверке Услуги web разработчика. 2 года опыта. PHP, JavaScript. Все популярные фреймворки Ищу работу. Предлагаю свои услуги. 1
H Web-shell без JavaScript с файл-менеджером на борту Корзина 0
Denik Разработчик JavaScript (3 модуля) Другое 0
H HTML and Javascript Teacher - Code examples in HTML and Javascript. Другие ЯП 0
W Как найти ошибку в JavaScript Полезные статьи 2
A Использование JavaScript, для взлома сети Уязвимости и взлом 0
T Полный курс по JavaScript - с нуля до результата Другие ЯП 0
K Современный JavaScript Полный курс - Построим 10 проектов - Udemy (2017) Другое 0
K JavaScript. Уровень 3г. HTML5 API [Борисов И.О.] Другое 0
N Профессиональные JavaScript курсы от ItBursa Другие ЯП 2
N [Lynda] JavaScript & AJAX [RUS] Другие ЯП 0
R Изучение JavaScript с нуля Другие ЯП 4
F Файлообменник. Заработок на продаже файлов Ищу работу. Предлагаю свои услуги. 0
B Ищу криптора APK файлов Вирусология 0
A Alice in The Land of Malware | Loader (Загрузчик файлов) Корзина 0
HostingSupport VERIFCRYPTBOT | автоматический крипт .NET/Native файлов | API для тим | FUD 0-3/26 Ищу работу. Предлагаю свои услуги. 5
J Крипт-сервис для ваших EXE/DLL файлов Ищу работу. Предлагаю свои услуги. 3
P как извлечь из файлов .bin файлы с помощью UltraISO ? Вопросы и интересы 1
U Продажа .NET FUD крипта файлов OR полную версию криптора. Продажа софта 0
S Satoshi-box.com Продажа ваших файлов, цифрового контента за биткойны анонимно Способы заработка 0
A Проверка файлов на вирусы Продажа софта 11
K 50-300 р./сутки. Пассивный заработок на раздаче файлов. Способы заработка 1

Название темы