JSPanda

JSPandaは、クライアントサイドのプロトタイプ汚染脆弱性スキャナーです。2つの主要な機能があります。指定されたURLの脆弱性をスキャンし、JavaScriptライブラリのソースコードを分析します。
ただし、JSPandaは高度なプロトタイプ汚染脆弱性を検出できません。
JSPandaの仕組み
- プロトタイプ汚染脆弱性に対して複数のペイロードを使用します。
- スキャン対象のすべてのリンクを収集し、JSPandaが取得したURLにペイロードを追加して、ヘッドレスChromedriverで各URLに移動します。
- 脆弱性の可能性があるJavaScriptライブラリのソースコード内のすべての単語をスキャンし、スクリプトガジェットを見つけて簡単なJS PoCを作成し、コードの手動分析を支援します。
必要条件
- Google ChromeとChromedriverの最新バージョンをダウンロード
- Selenium
使用方法
スキャン: python3.7 jspanda.py
- URLをurl.txtファイルに追加します。例: example.com
基本的なソースコード分析: python3.7 analyze.py
- JavaScriptライブラリのソースコードをanalyze.jsに追加します。
- analyze.pyを使用してPoCコードを生成します。
- ChromeのコンソールでPoCコードを実行します。ソースコードから収集したすべての単語を汚染し、画面に表示します。そのため、誤検出が発生する可能性があります。これらの出力は研究者に追加情報を提供しますが、すべてを自動化するわけではありません。
デモンストレーション

ソースコード分析 - スクリーンショット

参考資料:
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
Learn Prototype Pollution in Series - Part 2
dwisiswant0/ppfuzz
GitHub - raverrr/plution: Prototype pollution scanner using headless chrome
JavaScript Prototype Poisoning Vulnerabilities in the Wild
The Complete Guide to Prototype Pollution Vulnerabilities