
このスクリプトは、Ambionics Securityのブログ https://www.ambionics.io/blog/iconv-cve-2024-2961-p1 で詳述されている、iconvライブラリのファイル読み取り脆弱性を悪用するための概念実証(PoC)を示しています。
このスクリプトは、CVE-2024-2961 に記載されているように、iconv ライブラリが文字エンコーディング変換を誤って処理するシステムの脆弱性を悪用する方法を示しています。これにより、攻撃者は PHP フィルタチェーンと不適切なエンコーディング処理を利用して、サーバー上の任意のファイルを読み取ることができます。
このスクリプトは、細工されたペイロードのアップロード、生成されたファイルの取得、およびその内容の表示のプロセスを自動化します。これは、次の記事で詳述されている研究に基づいています:Iconv CVE-2024-2961:文字エンコーディング変換の悪用。
このスクリプトは次の手順を実行します:
ペイロードの作成
iconv のエンコーディング変換を利用して、サーバー上の任意のファイルを読み取る PHP フィルタチェーンペイロードを作成します。このペイロードは通常の制限を回避するように設計されており、/etc/passwd などの機密ファイルへのアクセスを可能にします。
ファイルのアップロード
画像アップロードを装って、ターゲットサーバーの admin-ajax.php エンドポイントに POST リクエストを送信します。ペイロードはリクエスト内に隠され、サーバーがそれを正当なファイルとして処理するようにします。
ファイルのダウンロード
ペイロードをアップロードした後、スクリプトは、ターゲットファイルの内容が含まれるようになったファイルをダウンロードします。最後に、その内容を抽出して表示します。
requests ライブラリ(pip install requests でインストール)iconv と PHP が動作する脆弱なサーバー。リポジトリのクローンまたはスクリプトのダウンロード:
git clone https://github.com/kyotozx/CVE-2024-2961-Remote-File-Read.git
cd CVE-2024-2961-Remote-File-Read
スクリプトの実行:
python3 lfi.py
プロンプトに従う:
/etc/passwd)。1)。スクリプトの動作:
Remote File Read Exploitation - CVE-2024-2961
Enter the path of the file you want to read (e.g., /etc/passwd): /etc/passwd
Enter a numeric ID for the upload (e.g., 1): 1
File uploaded successfully: http://blog.bigbang.htb/wp-content/uploads/2025/01/1-50.png
File content:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
このスクリプトは、教育および許可されたテスト目的のみを意図しています。明示的な許可なくシステムで使用しないでください。