
Server Side Request Forgery 脆弱性に対する概念実証エクスプロイト — Requests Basket v1.2.1 以前。
この Python スクリプトは、Request Basket の Server-Side Request Forgery (SSRF) 脆弱性 CVE-2023-27163 に対する Proof of Concept (PoC) です。
このスクリプトは CVE-2023-27163 のエクスプロイトを自動化します。以下のアクションを実行します:
127.0.0.1) に転送します。localhost 上で実行されているサービスへのアクセスを試みます。これにより、攻撃者は脆弱な Request Basket インスタンスをホストしているサーバーの内部ポートをスキャンできるようになります。
このスクリプトを自分の用途に合わせるには、以下の設定を変更する必要があるかもしれません:
IP_Vuln_Server: IPアドレスとポート r'10.129.229.26:55555' を、対象の脆弱な Request Basket サーバーに合わせて変更します。
IP_Vuln_Server = r'YOUR_TARGET_IP:PORT'
スキャンするポート範囲 (オプション): スクリプトは現在ポート75から81 (range(75,82)) をスキャンします。異なる、またはより広い内部ポート範囲をスキャンしたい場合は、main() 関数内でこの範囲を調整してください。
for i in range(START_PORT, END_PORT + 1): # e.g., range(1, 65536) for all ports
ConfBasketAndFetchResp(headers, i)
ConfBasketAndFetchResp 内の forward_url (高度/特定のユースケース): デフォルトでは http://127.0.0.1:{port}/ をターゲットにします。異なるパス上の他の内部サービスや、脆弱なサーバーから到達可能な他の内部IPアドレスが疑われる場合は、forward_url 文字列を変更できます。ただし、localhost をスキャンするための意図された SSRF では、通常 127.0.0.1 で正しいです。
json_config = {
"forward_url": f"http://TARGET_INTERNAL_IP:{port}/TARGET_PATH",
# ... other parameters
}
requests ライブラリがインストールされていることを確認してください (pip install requests)。この PoC は責任を持って、明示的なテスト許可があるシステムでのみ使用してください。