
CVE-2019-12102(Kentico CMSにおける未認証ファイルアップロードの脆弱性)の自動スキャナ。ドメインをチェックし、ハッシュパラメータで検証して、潜在的に脆弱なターゲットと確認済みの脆弱なターゲットを出力します。
CVE-2019-12102 スキャナーは、Kentico CMS バージョン 11 から 12 における認証なしファイルアップロード / ファイル露出脆弱性をスキャンする自動化ツールです。この脆弱性は、エンドポイント /cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx に対する不適切なアクセス制御によって引き起こされます。ツールはエンドポイントからの応答を検証してドメインが脆弱かどうかを確認し、結果を潜在的に脆弱なドメインと確認済み脆弱なドメインの別ファイルに保存します。
CVE-2019-12102 脆弱性により、攻撃者は以下のことが可能になります:
脆弱なエンドポイント(/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx)は、hash パラメータが適切に検証されない場合、認証なしでアクセス可能です。URL が /CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash= にリダイレクトされる場合、そのドメインは脆弱と見なされます。
requests, coloramaこのリポジトリをクローンします:
git clone https://github.com/Egi08/CVE-2019-12102-Scanner.git
cd CVE-2019-12102-Scanner
依存関係をインストールします:
pip install -r requirements.txt
(requirements.txt ファイルが存在しない場合は、以下の内容で作成します):
requests
colorama
入力ファイル(domains.txt)にドメインリストを1行に1ドメインずつ記述して用意します。例:
example.com
another-example.com
vulnerable-site.com
python cve_2019_12102_scanner.py -l <入力ファイル> -p <潜在的に脆弱用出力ファイル> -c <確認済み脆弱用出力ファイル>
-l, --list: ドメインリストが書かれたファイルのパス(必須)。-p, --potentially: 潜在的に脆弱なドメインの出力ファイル(オプション、デフォルト: potentially_vulnerable.txt)。-c, --confirmed: 確認済み脆弱なドメインの出力ファイル(オプション、デフォルト: confirmed_vulnerable.txt)。python cve_2019_12102_scanner.py -l domains.txt -p potentially_vulnerable.txt -c confirmed_vulnerable.txt
[*] Starting vulnerability scanner for CVE-2019-12102...
[*] Checking: http://example.com
[-] Not Vulnerable: http://example.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
[*] Checking: http://vulnerable-site.com
[+] Potentially Vulnerable: http://vulnerable-site.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
[+] Confirmed Vulnerable: http://vulnerable-site.com/CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf
[+] Results saved:
Potentially Vulnerable domains saved to potentially_vulnerable.txt
Confirmed Vulnerable domains saved to confirmed_vulnerable.txt
potentially_vulnerable.txt)http://vulnerable-site.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
confirmed_vulnerable.txt)http://vulnerable-site.com/CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf
倫理的なテスト:
タイムアウト:
requests.get 関数内のタイムアウト値を調整できます:
response = requests.get(full_url, timeout=20) # 20秒のタイムアウト
エラーハンドリング:
セーフセーブ:
ハッシュパラメータ:
test_hash は例のハッシュ(13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf)を使用しています。必要に応じて調整してください。貢献は歓迎します!貢献したい場合は、以下の手順に従ってください:
git checkout -b feature/あなたの機能名
git commit -m "変更内容をここに記述"
git push origin feature/あなたの機能名
このプロジェクトは MIT ライセンス の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
このドキュメントを使用すると、スクリプトを GitHub にアップロードし、他のユーザーにツールの使用方法を明確に伝えることができます。