新聞中心
前言: Ecshop是國(guó)內(nèi)的一款開源的電商框架,在國(guó)內(nèi)應(yīng)用較為廣泛,當(dāng)前新版本為4.0.0,最近對(duì)其代碼進(jìn)行了簡(jiǎn)單的分析,發(fā)現(xiàn)可以繞過其filter觸發(fā)XSS。

一、漏洞利用方式
發(fā)送GET請(qǐng)求包如下:
其中漏洞觸發(fā)代碼為:
- Referer:https://127.0.0.1" />
實(shí)現(xiàn)繞過過濾規(guī)則,觸發(fā)XSS漏洞的效果。
二、相關(guān)環(huán)境
版本:ECShop4.0.0
漏洞類型:反射型XSS
本地環(huán)境:php5.6.27+ Apache + Mysql
三、漏洞分析
該XSS漏洞路口點(diǎn)在user.php文件,查看user.php:328行
在用戶登入界面的處理代碼中,首先變量$action賦值為login進(jìn)入主體代碼,若變量$back_act為空并且請(qǐng)求包中存在REFERER字段,則將REFERER字段中的內(nèi)容賦值給變量$back_act,這是導(dǎo)致該漏洞的直接原因,對(duì)$back_act變量賦值過后傳入assign函數(shù)進(jìn)行處理,其中$smarty是模版類cls_template的實(shí)例化:/includes/init.php:170行
所以查看assign函數(shù)時(shí)跟進(jìn)到模版類cls_template中查看:/includes/ cls_template.php:70行
對(duì)傳入變量名和變量值進(jìn)行變量注冊(cè),我們可以傳入非數(shù)組數(shù)據(jù)對(duì)$back_act進(jìn)行變量注冊(cè),注冊(cè)完畢回到user.php代碼,繼續(xù)跟進(jìn)模版類中的display函數(shù):/includes/ cls_template.php:100行
調(diào)用fetch函數(shù)進(jìn)行user_passport.dwt文件的頁面顯示,也就是顯示用戶登入頁面,其中在user_passport.dwt文件中:
$back_act值被賦值給input標(biāo)簽中的value,所以我們控制了$back_act變量值便可以在html頁面中插入js代碼。
四、繞過全局Waf觸發(fā)XSS
Ecshop中定義了全局安全過濾規(guī)則,查看代碼:/includes/safety.php
這個(gè)過濾規(guī)則比較簡(jiǎn)單粗暴,利用’on[a-zA-Z]{3,15}’ 過濾了所有的on開頭js事件,所以用事件觸發(fā)是較為困難了,并且
其中javascript:alert(‘Cyc1e_test’)可以繞過xss過濾規(guī)則的匹配從而繞過服務(wù)端的安全過濾植入html頁面中,經(jīng)過html編碼解析會(huì)恢復(fù)成javascript:alert(‘Cyc1e_test’),從而觸發(fā)執(zhí)行,效果如圖:
通過點(diǎn)擊圖片可以直接觸發(fā)
漏洞繞過觸發(fā)的方式不僅有的。
五、總結(jié)
漏洞挖掘主要在于一定的技術(shù)基礎(chǔ),充分的經(jīng)驗(yàn)積累以及一些運(yùn)氣所在,挖掘的漏洞不在大小,每一漏洞都是一次成長(zhǎng),新手挖掘文章,希望大牛們批評(píng)指正。
標(biāo)題名稱:ECShop 4.0反射型XSS漏洞分析
瀏覽路徑:http://www.dlmjj.cn/article/cdshhoc.html


咨詢
建站咨詢
