JSPanda

JSpanda — это сканер уязвимостей прототипного загрязнения на стороне клиента. У него две ключевые функции: сканирование уязвимостей по предоставленным URL и анализ исходного кода JavaScript-библиотек.
Однако JSpanda не может обнаруживать сложные уязвимости прототипного загрязнения.
Как работает JSPanda?
- Использует множество полезных нагрузок для уязвимости прототипного загрязнения.
- Собирает все ссылки в целях для сканирования и добавляет полезные нагрузки к URL, полученным JSpanda, переходит по каждому URL с помощью headless Chromedriver.
- Сканирует все слова в исходном коде потенциально уязвимой JavaScript-библиотеки и создаёт простой PoC на JS, находя скриптовый гаджет, помогая вам вручную анализировать код.
Требования
- Скачайте последнюю версию Google Chrome и Chromedriver
- Selenium
Использование
Сканирование: python3.7 jspanda.py
- Добавьте URL в файл url.txt, например: example.com
Базовый анализ исходного кода: python3.7 analyze.py
- Добавьте исходный код JavaScript-библиотеки в analyze.js
- Сгенерируйте PoC-код с помощью analyze.py
- Выполните PoC-код в консоли Chrome. Он загрязняет все слова, собранные из исходного кода, и отображает их на экране. Поэтому могут быть ложноположительные результаты. Эти выходные данные предоставляют дополнительную информацию исследователям, не автоматизируйте всё.
Демонстрация

Анализ исходного кода — скриншот

Вспомогательные материалы:
https://twitter.com/har1sec/status/1314469278322655233
https://github.com/BlackFan/client-side-prototype-pollution
https://github.com/ThePacketBender/notes/blob/01c0b834f6e3ee4d934b087b2d92c9e484dc2a50/web/prototype_pollution.txt
https://habr.com/ru/company/huawei/blog/547178/
https://infosecwriteups.com/javascript-prototype-pollution-practice-of-finding-and-exploitation-f97284333b2
https://github.com/securitum/research/tree/master/r2020_prototype-pollution
Изучение прототипного загрязнения: серия — Часть 2
dwisiswant0/ppfuzz
GitHub - raverrr/plution: Сканер прототипного загрязнения с использованием headless Chrome
Уязвимости отравления прототипов JavaScript в дикой природе
Полное руководство по уязвимостям прототипного загрязнения