標籤:

PHPMyWind存儲型xss漏洞說明及復現

PHPMyWind存儲型xss漏洞說明及復現

本實驗僅做安全漏洞研究,請勿對未授權網站進行惡意破壞

本次內容參考

ichunqiu.com/vm/60913/1

exploit-db.com/exploits

freebuf.com/sectool/159

影響版本:<=5.4

漏洞成因:該漏洞出現於客戶留言處,參數為content,存在文件為message.php,存在位置為29行與34行,後台腳本將用戶輸入的參數content中的<與>號使用htmlspecialchars函數進行字元實體轉換,才能正確的顯示預留字元。在進行轉義後賦值變數$content,後將變數直接存儲到資料庫中。此過程為留言的存儲過程。

圖1

圖2

圖3

在留言提交後,當管理員通過後台登入系統後,點擊留言的修改按鈕後進入留言的修改頁面,此頁面存在文件為message_update.php,在此文件中,並未對contact、content等用戶輸入的參數進行過濾直接輸出,此時便會觸發插入的js代碼,形成xss存儲型漏洞。此過程為js代碼的觸發過程。

圖4

漏洞復現

本地搭建環境對漏洞進行復現,使用5.4版本的PHPMyWind,詳細步驟如下:

瀏覽器打開192.168.70.1/PHPMyWind_頁面,此頁面為主頁面,點擊客戶留言,在留言內容處插入<img src=x onerror = alert(666);>,在所有內容填寫完成後,點擊提交按鈕。

提交成功後,打開192.168.70.1/PHPMyWind_頁面,此頁面為網站默認後台頁面,登錄後台,默認用戶以及口令都為admin,在留言後方點擊修改按鈕後觸發插入的js腳本。代碼成功執行,彈窗成功,說明此處存在xss漏洞。

圖5

在驗證留言處存在存儲型xss漏洞後,可利用xss漏洞獲取管理員登錄後台時的cookie,獲取cookie後就可登錄後台。獲取cookie可利用xss平台獲取也可通過nc監聽指定開放埠進行獲取。以xss平台為例,在留言處插入xss平台內提供的js代碼,當管理員點擊修改後,便可獲取cookie等可利用的信息。

圖6

獲取到cookie後,可通過瀏覽器修改cookie登入後台。火狐瀏覽器可通過firebug修改cookie值。

圖7

圖8

登入後台後,可修改上傳附件類型,可添加php文件上傳類型,添加成功後,便可上傳php一句話,上傳成功後通過菜刀便可成功連接。先添加php類型文件上傳許可權,注意添加時要留有空格|php |,因為上傳時伺服器會添加後綴,添加空格後可截斷後綴:

圖9

通過burpsuite抓包修改文件類型,將文件上傳類型修改為.php,注意添加空格,修改後便可成功上傳。

圖10

上傳成功後會提示上傳後的路徑為:

192.168.70.1/PHPMyWind_5.4/uploads/soft/20180227/1519725158.php

在菜刀中輸入此路徑並輸入密碼,便可連接伺服器:

圖11

修復方案

(1)將管理後台收入內網,隔離外部訪問

(2)修改源代碼,在程序讀取數據時,對參數添加轉義

(3)等待官方發布更新修復

(4)使用其他代替CMS


推薦閱讀:

幾維安全提醒勒索病毒又來襲 網路安全行業或迎機遇
網站入侵只是以愛國之名實施的網路暴力
一個黑客會經歷怎樣的人生?
復盤2017,中國網路安全的難題與破題
「安全開發教學」github泄露掃描系統開發

TAG:網路安全 |