服務(wù)人工
漏洞檢測(cè)項(xiàng)目所有
優(yōu)勢(shì)服務(wù)好
APP漏洞檢測(cè)支持
服務(wù)地區(qū)全國(guó)
許多客戶在網(wǎng)站,以及APP上線的同時(shí),都會(huì)提前的對(duì)網(wǎng)站進(jìn)行全面的滲透測(cè)試以及安全檢測(cè),提前檢測(cè)出存在的網(wǎng)站漏洞,以免后期網(wǎng)站發(fā)展過程中出現(xiàn)重大的經(jīng)濟(jì)損失,前段時(shí)間有客戶找到我們SINE安全公司做滲透測(cè)試服務(wù),在此我們將把對(duì)客戶的整個(gè)滲透測(cè)試過程以及安全測(cè)試,發(fā)現(xiàn)的漏洞都記錄下來(lái),分享給大家,也希望大家更深地去了解滲透測(cè)試。
假如你是hack,準(zhǔn)備攻擊一家企業(yè),那么首先要做的件事就是識(shí)別盡可能多的API。我首先按常規(guī)方式使用目標(biāo)應(yīng)用程序,在瀏覽器中打開Web應(yīng)用程序或者在手機(jī)端安裝移動(dòng)應(yīng)用程序,然后使用代理監(jiān)視通信。代理能夠捕獲瀏覽器或移動(dòng)應(yīng)用程序?qū)蠖薟eb服務(wù)器發(fā)出的所有請(qǐng)求,從而使攻擊者可以對(duì)所有可用的API端點(diǎn)進(jìn)行分類。例如,大多數(shù)API都將API/V1/login作為身份驗(yàn)證端點(diǎn)。
如果目標(biāo)也是移動(dòng)應(yīng)用程序,則將應(yīng)用程序包拆開,并查看應(yīng)用程序內(nèi)部可用的API調(diào)用??紤]到所有可能的活動(dòng),攻擊者可以搜索無(wú)確保護(hù)用戶數(shù)據(jù)的常見配置錯(cuò)誤或API。后,攻擊者尋找API文檔。一些組織為第三方發(fā)布API文檔,但為所有用戶使用相同的API端點(diǎn)。有了一個(gè)不錯(cuò)的端點(diǎn)清單,攻擊者就可以測(cè)試標(biāo)準(zhǔn)用戶行為和異常行為測(cè)試,可以通過兩種方法找到有趣的漏洞。

其實(shí)從開發(fā)的角度,如果要保證代碼至少在邏輯方面沒有明顯的漏洞,還是有些繁瑣的。舉個(gè)簡(jiǎn)單的例子,如網(wǎng)站的數(shù)據(jù)檢驗(yàn)功能,不允許前端提交不符合當(dāng)前要求規(guī)范的數(shù)據(jù)(比如年齡文本框部分不能提交字母)。那么為了實(shí)現(xiàn)這個(gè)功能,首先開發(fā)者肯定要在前端實(shí)現(xiàn)該功能,直接在前端阻止用戶提交不符規(guī)范的數(shù)據(jù),否則用戶體驗(yàn)會(huì)很差,且占用服務(wù)器端的資源。
但是沒有安全意識(shí)或覺得麻煩的開發(fā)者就會(huì)僅僅在前端用Js進(jìn)行校驗(yàn),后端沒有重復(fù)進(jìn)行校驗(yàn)。這樣就很容易給惡意用戶機(jī)會(huì):比如不通過前端頁(yè)面,直接向后端接口發(fā)送數(shù)據(jù):或者,前端代碼編寫不規(guī)范,用戶可以直接在瀏覽器控制臺(tái)中用自己寫的Js代碼覆蓋原有的Js代碼;或者,用戶還可以直接在瀏覽器中禁用Js;等等??傊?,前端的傳過來(lái)的數(shù)據(jù)可信度基本上可以認(rèn)為比較低,太容易被利用了。
而我的思路都是很簡(jiǎn)單的,就是關(guān)注比較重要的幾個(gè)節(jié)點(diǎn),看看有沒有可乘之機(jī)。如登錄、權(quán)限判定、數(shù)據(jù)加載等前后,對(duì)方是怎么做的,用了什么樣的技術(shù),有沒有留下很明顯的漏洞可以讓我利用。像這兩個(gè)網(wǎng)站,加載的Js文檔都沒有進(jìn)行混淆,注釋也都留著,還寫得很詳細(xì)。比較湊巧的是,這兩個(gè)網(wǎng)站都用到了比較多的前端的技術(shù),也都用到了sessionStorage。

下面開始我們的整個(gè)滲透測(cè)試過程,首先客戶授權(quán)我們進(jìn)行網(wǎng)站安全測(cè)試,我們才能放開手的去干,首先檢測(cè)的是網(wǎng)站是否存在SQL注入漏洞,我們SINE安全在檢測(cè)網(wǎng)站是否有sql注入的時(shí)候都會(huì)配合查看mysql數(shù)據(jù)庫(kù)的日志來(lái)查詢我們提交的SQL語(yǔ)句是否成功的執(zhí)行,那么很多人會(huì)問該如何開啟數(shù)據(jù)庫(kù)的日志,如何查看呢?首先連接linux服務(wù)器的SSH端口,利用root的賬號(hào)密碼進(jìn)服務(wù)器,打開mysql的配置文件mysqld.cnf編輯general_log_file=(log日志的),general_log=1,在服務(wù)器里輸入tail -f (log),來(lái)查看實(shí)時(shí)的數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行日志。當(dāng)我們SINE安全技術(shù)在測(cè)試SQL注入漏洞的時(shí)候,就會(huì)實(shí)時(shí)的看到是否有惡意的SQL語(yǔ)句執(zhí)行成功,如果有那么數(shù)據(jù)庫(kù)日志就會(huì)出現(xiàn)錯(cuò)誤提示,在滲透測(cè)試中是很方便的,也更利于查找漏洞。

命令執(zhí)行的漏洞。應(yīng)用程序的某些函數(shù)需要調(diào)用可以執(zhí)行系統(tǒng)命令的函數(shù)。如果這些功能或者功能的參數(shù)可以被用戶控制,那么惡意的命令就有可能通過命令連接器拼接成正常的功能,從而可以隨意執(zhí)行系統(tǒng)命令。這就是命令執(zhí)行漏洞,這是高風(fēng)險(xiǎn)漏洞之一。
SINE安全網(wǎng)站漏洞檢測(cè)時(shí)必須要人工去審計(jì)漏洞和查找漏洞找出問題所在并修復(fù)漏洞,對(duì)各項(xiàng)功能都進(jìn)行了全面的安全檢測(cè)。
http://coolerbeats.net