
CVE-2026-0740 を標的としたエクスプロイトスクリプトで、Ninja Forms のファイルアップロードエンドポイントを狙って PHP シェルをアップロードし、URL のリストをスキャンしてアップロードの成功をログに記録します。
WordPressサイトのNinja Formsプラグインを対象としたファイルアップロードエンドポイントを利用する実験的/ツール用スクリプトです。list.txt内のターゲットに順番にリクエストを送信し、成功したアップロードをshell.txtファイルに書き込みます。
urllib3と一緒にインストールされます)pip install requests urllib3
| ファイル | 説明 |
|---|
ninja.py | メインスクリプト。 |
list.txt | ターゲットURL。各行に1つのURL(http/https、任意のポート)。空行は無視されます。 |
shell.txt | (出力)成功したアップロードのシェルURLが追記モード(a)で保存されます。 |
スクリプト冒頭の定数は、対象のプラグイン/フォーム構造に合わせて調整する必要があります:
FORM_ID — フォームIDFIELD_ID — フィールドIDSHELL_NAME — サーバー上で使用されるファイル名SHELL_CONTENT — アップロードされるPHPコンテンツSSL検証は無効化されています(verify=False)。信頼できるテスト環境でのみ使用してください。
プロジェクトフォルダにlist.txtがあることを確認し、次を実行します:
python ninja.py
進捗状況とエラーメッセージは標準出力に書き込まれます。処理がユーザーによって中断された場合、KeyboardInterruptでクリーンに終了します。
list.txtが存在しない場合、スクリプトはエラーを出して終了します。admin-ajax.php経由でnonceを取得します(nf_fu_get_new_nonce)。nf_fu_upload)。shell.txtファイルに追記されます。