某一客戶的網(wǎng)站,以及APP系統(tǒng)數(shù)據(jù)被篡改,金額被提現(xiàn),導(dǎo)致?lián)p失慘重,漏洞無(wú)從下手,經(jīng)過(guò)朋友介紹找到我們SINE安全公司,我們隨即對(duì)客戶的網(wǎng)站服務(wù)器情況進(jìn)行大體了解.建議客戶做滲透測(cè)試服務(wù).模擬攻擊者的手法對(duì)網(wǎng)站存在的數(shù)據(jù)篡改漏洞進(jìn)行檢測(cè)與挖掘,就此滲透測(cè)試服務(wù)的過(guò)程進(jìn)行記錄與分享.
首先客戶網(wǎng)站和APP的開(kāi)發(fā)語(yǔ)言都是使用的PHP架構(gòu)開(kāi)發(fā),后端使用的thinkphp開(kāi)源系統(tǒng),對(duì)會(huì)員進(jìn)行管理以及資料的統(tǒng)計(jì),包括充值,提現(xiàn),下單功能.服務(wù)器使用是linux系統(tǒng).共有3個(gè)接口,分別是WEB前端,接口,后臺(tái),都采用的是action的方法來(lái)調(diào)用,并初始化數(shù)據(jù).我們看下代碼
不同入口傳入過(guò)來(lái)的值,并進(jìn)一步的操作都不一樣,我們SINE安全技術(shù)在get,post,cookies的請(qǐng)求方式中,發(fā)現(xiàn)一個(gè)規(guī)律,在查看代碼中發(fā)現(xiàn)都是使用的get()的方式來(lái)對(duì)傳入過(guò)來(lái)的值進(jìn)行安全效驗(yàn)與攔截.對(duì)一些特殊符號(hào)包括<> 都進(jìn)行了安全轉(zhuǎn)義,不會(huì)直接輸入到后端中去.基本上的一些漏洞,XSS,SQL注入漏洞是不會(huì)很容易的找到.我們繼續(xù)對(duì)代碼進(jìn)行分析與滲透測(cè)試,對(duì)漏洞多次的測(cè)試,終于找到一處存在SQL注入漏洞的代碼,存在于網(wǎng)站的會(huì)員頭像上傳功能.
我們抓取上傳的數(shù)據(jù)包,并進(jìn)行修改,將惡意的SQL注入代碼寫(xiě)入到數(shù)據(jù)包中,將頭像的圖片內(nèi)容進(jìn)行修改提交過(guò)去,發(fā)現(xiàn)服務(wù)器返回錯(cuò)誤,原因是對(duì)圖片的內(nèi)容進(jìn)行了解析操作,并將上傳的路徑地址寫(xiě)入到了數(shù)據(jù)庫(kù),而這個(gè)寫(xiě)入數(shù)據(jù)庫(kù)的圖片路徑地址,并沒(méi)有做詳細(xì)的變量安全過(guò)濾,導(dǎo)致SQL注入的發(fā)生,由此可見(jiàn),攻擊者可以查詢數(shù)據(jù)庫(kù)里的管理員賬號(hào)密碼,并登陸到系統(tǒng)后臺(tái)進(jìn)行提權(quán).平臺(tái)的后臺(tái)目錄地址很容易遭到破解,后臺(tái)名字寫(xiě)的竟然是houtai2019,很容易讓攻擊者猜解到,使用SQL注入漏洞獲取到的管理員賬號(hào)密碼.登陸后臺(tái),上傳webshell,查到數(shù)據(jù)庫(kù)的賬戶密碼,進(jìn)行連接,修改數(shù)據(jù)庫(kù).
在對(duì)后臺(tái)的滲透測(cè)試發(fā)現(xiàn),后臺(tái)也存在同樣的任意文件上傳漏洞,upload值并沒(méi)有對(duì)文件的格式,做安全效驗(yàn)與過(guò)濾,導(dǎo)致可以構(gòu)造惡意的圖片代碼,將save格式改為php,提交POST數(shù)據(jù)包過(guò)去,直接在網(wǎng)站的目錄下生成.php文件.對(duì)此我們SINE安全將滲透測(cè)試過(guò)程中發(fā)現(xiàn)的漏洞都進(jìn)行了修復(fù).
可能有些人會(huì)問(wèn)了,那該如何修復(fù)滲透測(cè)試中發(fā)現(xiàn)的網(wǎng)站漏洞?
首先對(duì)SQL注入漏洞,我們SINE安全建議大家對(duì)圖片的路徑地址寫(xiě)入到數(shù)據(jù)庫(kù)這里,進(jìn)行安全過(guò)濾,對(duì)于一些特殊字符,SQL注入攻擊代碼像select,等數(shù)據(jù)庫(kù)查詢的字符進(jìn)行限制,有程序員的話,可以對(duì)路徑進(jìn)行預(yù)編譯,動(dòng)態(tài)生成文件名,對(duì)ID等值只允許輸入數(shù)字等的安全部署,如果對(duì)程序代碼不是太懂的話,也可以找專業(yè)的網(wǎng)站安全公司來(lái)解決,國(guó)內(nèi)像SINESAFE,啟明星辰,綠盟都是比較專業(yè)的,剩下的就是任意文件上傳功能的漏洞修復(fù),修復(fù)辦法是對(duì)上傳的文件名,以及文件格式做白名單限制,只允許上傳jpg.png,gif,等圖片文件,對(duì)上傳的目錄做安全設(shè)置,不允許PHP等腳本文件的執(zhí)行,至此客戶網(wǎng)站數(shù)據(jù)被篡改的原因找到,經(jīng)過(guò)滲透測(cè)試才發(fā)現(xiàn)漏洞的根源,不模擬攻擊者的手段.是永遠(yuǎn)不會(huì)找到問(wèn)題的原因的.也希望借此分享,能幫助到更多遇到網(wǎng)站被攻擊情況的客戶.
產(chǎn)品推薦