當(dāng)前位置:首頁(yè) >  科技 >  移動(dòng)互聯(lián) >  正文

APP中滲透測(cè)試安全檢測(cè)方案詳情

 2019-10-17 13:36  來(lái)源: A5用戶投稿   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

許多客戶在網(wǎng)站,以及APP上線的同時(shí),都會(huì)提前的對(duì)網(wǎng)站進(jìn)行全面的滲透測(cè)試以及安全檢測(cè),提前檢測(cè)出存在的網(wǎng)站漏洞,以免后期網(wǎng)站發(fā)展過(guò)程中出現(xiàn)重大的經(jīng)濟(jì)損失,前段時(shí)間有客戶找到我們SINE安全公司做滲透測(cè)試服務(wù),在此我們將把對(duì)客戶的整個(gè)滲透測(cè)試過(guò)程以及安全測(cè)試,發(fā)現(xiàn)的漏洞都記錄下來(lái),分享給大家,也希望大家更深的去了解滲透測(cè)試。

在對(duì)客戶的網(wǎng)站進(jìn)行服務(wù)的同時(shí),我們首先要了解分析數(shù)據(jù)包以及網(wǎng)站的各項(xiàng)功能,有助于我們?cè)跐B透測(cè)試中發(fā)現(xiàn)漏洞,修復(fù)漏洞,綜合客戶網(wǎng)站的架構(gòu),規(guī)模,以及數(shù)據(jù)庫(kù)類(lèi)型,使用的服務(wù)器系統(tǒng),是windows還是linux,前期都要收集信息,做到知彼知己百戰(zhàn)不殆。只有真正的了解了網(wǎng)站,才能一層一層的找出漏洞所在。網(wǎng)站使用的是php語(yǔ)言開(kāi)發(fā),采用是mysql數(shù)據(jù)庫(kù),客戶服務(wù)器用的是linux centos系統(tǒng),用phpstudy一鍵環(huán)境搭建,PHP的版本是5.5,mysql數(shù)據(jù)庫(kù)版本是5.6.客戶網(wǎng)站是一個(gè)平臺(tái),采用會(huì)員登錄,功能基本都是一些交互性的,會(huì)員資料修改,銀行卡添加,充值與提現(xiàn),在線反饋等等。

下面開(kāi)始我們的整個(gè)滲透測(cè)試過(guò)程,首先客戶授權(quán)我們進(jìn)行網(wǎng)站安全測(cè)試,我們才能放開(kāi)手的去干,首先檢測(cè)的是網(wǎng)站是否存在SQL注入漏洞,我們SINE安全在檢測(cè)網(wǎng)站是否有sql注入的時(shí)候都會(huì)配合查看mysql數(shù)據(jù)庫(kù)的日志來(lái)查詢我們提交的SQL語(yǔ)句是否成功的執(zhí)行,那么很多人會(huì)問(wèn)該如何開(kāi)啟數(shù)據(jù)庫(kù)的日志,如何查看呢?首先連接linux服務(wù)器的SSH端口,利用root的賬號(hào)密碼進(jìn)服務(wù)器,打開(kāi)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è)試中是很方便的,也更利于查找漏洞。

這里不詳細(xì)的分析代碼了,我們?cè)跍y(cè)試中發(fā)現(xiàn)平臺(tái)的后臺(tái)管理頁(yè)面存在SQL注入漏洞,當(dāng)管理員登錄后臺(tái)的時(shí)候我們看到guanlilogin.php里POST到guanlicheck.php來(lái)對(duì)管理員的賬號(hào)密碼進(jìn)行驗(yàn)證,在驗(yàn)證的過(guò)程中g(shù)uanlicheck.php并沒(méi)有對(duì)傳入過(guò)來(lái)的參數(shù)進(jìn)行安全效驗(yàn),導(dǎo)致SQL注入漏洞的產(chǎn)生,具體代碼如下

代碼里的getenv參數(shù)是獲取前端用戶的https頭信息,通過(guò)數(shù)據(jù)比對(duì),如果頭信息大那么久返回0值然后再將IP賦值進(jìn)去,通俗來(lái)講就是沒(méi)有任何的安全效驗(yàn)與攔截,直接將變量的IP帶入到mysql據(jù)庫(kù)。所以造成了SQL注入漏洞的產(chǎn)生。那么滲透測(cè)試中發(fā)現(xiàn)SQL注入漏洞就是高危漏洞,帶來(lái)的危害較大,可以篡改數(shù)據(jù),修改數(shù)據(jù)庫(kù),可以將管理員的密碼重置,或者是獲取所有的用戶賬號(hào)密碼等信息。發(fā)生用戶信息泄露,利用數(shù)據(jù)庫(kù)的權(quán)限修改管理員密碼登錄后臺(tái)進(jìn)行下一步的提權(quán)操作,上傳webshell,控制網(wǎng)站代碼。

接下來(lái)還得檢測(cè)網(wǎng)站的各項(xiàng)功能以及APP功能是否存在邏輯漏洞,越權(quán)漏洞,水平垂直等等,我們SINE安全技術(shù)詳細(xì)的對(duì)每一個(gè)功能都測(cè)試很多遍,一次,兩次,多次的反復(fù)進(jìn)行,在用戶重置密碼功能這里發(fā)現(xiàn)有漏洞,正常功能代碼設(shè)計(jì)是這樣的流程,首先會(huì)判斷用戶的賬號(hào)是否存在,以及下一步用戶的手機(jī)號(hào)碼是否與數(shù)據(jù)庫(kù)里的手機(jī)號(hào)一致,這里簡(jiǎn)單的做了一下安全效驗(yàn),但是在獲取手機(jī)號(hào)驗(yàn)證碼的時(shí)候并沒(méi)有做安全效驗(yàn),導(dǎo)致可以修改post數(shù)據(jù)包,將手機(jī)號(hào)碼修改為任意手機(jī)號(hào)來(lái)獲取驗(yàn)證碼,利用驗(yàn)證碼來(lái)修改重置密碼。

如何修復(fù)滲透測(cè)試中的SQL注入漏洞呢?

在對(duì)前端輸入過(guò)來(lái)的值進(jìn)行安全判斷,確認(rèn)變量值是否存在,如果存在將不會(huì)覆蓋,杜絕變量覆蓋導(dǎo)致?lián)饺霅阂鈽?gòu)造的sql注入語(yǔ)句代碼在GET請(qǐng)求,以及POST請(qǐng)求里,過(guò)濾非法字符的輸入。 '分號(hào)過(guò)濾 --過(guò)濾 %20特殊字符過(guò)濾,單引號(hào)過(guò)濾,%百分號(hào), and過(guò)濾,tab鍵值等的的安全過(guò)濾。如果對(duì)代碼不是太懂的話,也可以找專業(yè)網(wǎng)站安全公司來(lái)處理,國(guó)內(nèi)SINESAFE,啟明星辰,綠盟都是比較專業(yè)的。邏輯漏洞的修復(fù)辦法,對(duì)密碼找回功能頁(yè)面進(jìn)行安全效驗(yàn),檢查所屬賬號(hào)的身份是否是當(dāng)前的手機(jī)號(hào),如果不是不能發(fā)送驗(yàn)證碼,其實(shí)就是代碼功能的邏輯設(shè)計(jì)出了問(wèn)題,邏輯理順清楚了,就很容易的修復(fù)漏洞,也希望我們SINE安全分享的這次滲透測(cè)試過(guò)程能讓更多的人了解滲透測(cè)試,安全防患于未然。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

熱門(mén)排行

信息推薦