在對網(wǎng)站進(jìn)行滲透測試的時(shí)候,發(fā)現(xiàn)很多網(wǎng)站都在使用squid反向代理系統(tǒng),該系統(tǒng)存在可以執(zhí)行遠(yuǎn)程代碼的漏洞,很多客戶找我們SINE安全做滲透測試服務(wù)的同時(shí),我們會先對客戶的網(wǎng)站進(jìn)行信息搜集工作,包括域名,二級域名收集,網(wǎng)站使用的反向代理系統(tǒng),網(wǎng)站程序開發(fā)語言,是否使用開源的代碼,以及網(wǎng)站后臺路徑收集,都在前期滲透中需要做的。
前段時(shí)間某一個(gè)客戶網(wǎng)站使用的就是squid反向代理系統(tǒng),客戶APP,以及網(wǎng)站后臺都被攻擊者篡改,被惡意提現(xiàn),會員注單篡改,銀行卡號篡改,充值通道篡改,給客戶帶來了很大的經(jīng)濟(jì)損失,通過老客戶介紹找到我們SINE安全,我們對該情況進(jìn)行詳細(xì)的了解,針對實(shí)際情況,定制了詳細(xì)的滲透測試服務(wù)方案。關(guān)于squid系統(tǒng)漏洞的檢測,我們來詳細(xì)的介紹一下:
squid是開源的一套網(wǎng)站反向代理系統(tǒng),可以對網(wǎng)站進(jìn)行加速,緩存,有些網(wǎng)站訪問較慢,就會在國內(nèi)的服務(wù)器節(jié)點(diǎn)做反向代理,加速網(wǎng)站的快速訪問,將圖片,以及JS文件,css文件進(jìn)行緩存,還有一個(gè)好處通過squid可以隱藏網(wǎng)站的真實(shí)IP。squid支持很多種TCP協(xié)議,包括80端口的http協(xié)議,F(xiàn)TP的21端口協(xié)議,HTTPS433端口的協(xié)議,都可以進(jìn)行反向代理,簡單易用受到很多開發(fā)者的喜歡。
squid漏洞產(chǎn)生的原因在于緩沖區(qū)溢出導(dǎo)致可以執(zhí)行遠(yuǎn)程代碼,當(dāng)反向代理收到cachemgr的請求時(shí)候,會使用parseheaders這個(gè)函數(shù)接口,將請求來的參數(shù)進(jìn)行解析操作,并賦值于后端去,正常應(yīng)該對請求的參數(shù)進(jìn)行字?jǐn)?shù)限制,而該請求并沒有對字?jǐn)?shù)多少進(jìn)行限制,導(dǎo)致可以寫入代碼進(jìn)行數(shù)據(jù)溢出,當(dāng)長度超過squid的安全限制后,就會執(zhí)行惡意的代碼。漏洞的利用方式是,構(gòu)造惡意的代碼,使用FTP協(xié)議的方式進(jìn)行請求 request-uri,將代碼加密,提交到服務(wù)器中去,就可以達(dá)到滲透服務(wù)器的權(quán)限。代碼如下:
當(dāng)服務(wù)器執(zhí)行惡意代碼后,就會產(chǎn)生一個(gè)webshell到網(wǎng)站的根目錄下,從而對網(wǎng)站進(jìn)行控制,該webshell也叫網(wǎng)站木馬后門,相當(dāng)于網(wǎng)站的管理員權(quán)限,可以寫入文件,修改文件,修改數(shù)據(jù)庫等操作,通過對客戶網(wǎng)站的滲透測試發(fā)現(xiàn),導(dǎo)致被篡改的問題根源,是squid系統(tǒng)存在漏洞,隨即我們SINE安全對客戶的squid漏洞進(jìn)行了修復(fù),對代碼的長度進(jìn)行了限制,防止溢出,并對所有的請求包括get,post.cookies的請求都進(jìn)行了字符長度限制。
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!