從業(yè)滲透測(cè)試服務(wù)已經(jīng)有十幾年了,在對(duì)客戶網(wǎng)站進(jìn)行漏洞檢測(cè),安全滲透時(shí),尤其網(wǎng)站用戶登錄功能上發(fā)現(xiàn)的漏洞很多,想總結(jié)一下在滲透測(cè)試過程中,網(wǎng)站登錄功能上都存在哪些網(wǎng)站安全隱患,下面就有請(qǐng)我們SINE安全的工程師老陳來給大家總結(jié)一下,讓大家都有更好的了解網(wǎng)站,在對(duì)自己網(wǎng)站進(jìn)行開發(fā)的過程中,尤其用戶登錄功能上做好網(wǎng)站安全防護(hù),防止網(wǎng)站被攻擊。
網(wǎng)站登錄有安全驗(yàn)證與效驗(yàn),從分支上又可以分出其他代碼功能,包括用戶注冊(cè),忘記密碼,用戶登錄框,修改密碼,驗(yàn)證碼(圖片以及短信驗(yàn)證碼,郵箱驗(yàn)證碼等功能),用戶登錄信息安全提示,密碼錯(cuò)誤還是輸入的賬號(hào)不對(duì),以及賬號(hào)頻繁登錄的鎖定安全機(jī)制功能,大大小小的功能組成了網(wǎng)站的登錄功能。那么我們SINE安全在對(duì)客戶網(wǎng)站進(jìn)行滲透測(cè)試服務(wù)的時(shí)候,在網(wǎng)站登錄功能里到底發(fā)現(xiàn)那些致命的漏洞?下面我們來詳細(xì)的舉例說明:
第一我們從較簡(jiǎn)單的一個(gè)用戶登錄框上來說,很多客戶網(wǎng)站并沒有對(duì)用戶前端輸入的參數(shù)值進(jìn)行安全過濾,導(dǎo)致賬戶名字與密碼里可以插入惡意的參數(shù)值,導(dǎo)致SQL注入漏洞的發(fā)生,再一個(gè)就是使用萬能的密碼進(jìn)行登錄,可以繞過數(shù)據(jù)庫,直接登錄網(wǎng)站。SINE安全是如何幫用戶修復(fù)這個(gè)SQL注入漏洞呢?針對(duì)SQL注入的修復(fù)辦法是:對(duì)用戶登錄的賬號(hào)密碼字段的參數(shù)值進(jìn)行預(yù)編譯,不允許特殊字符的輸入與傳輸,在代碼里寫入get,post,cookies提交方式的安全攔截,發(fā)現(xiàn)惡意的字符包括<,>,\,/,,,",select,update,@,等等進(jìn)行攔截,并返回錯(cuò)誤提示,對(duì)特定的sql語句在代碼里進(jìn)行預(yù)編譯,禁止多余的參數(shù)插入到賬號(hào)與密碼字段中。
用戶ID與密碼被暴力破解,很多客戶網(wǎng)站并沒有對(duì)網(wǎng)站的登錄進(jìn)行安全判斷,導(dǎo)致攻擊者可以隨意的對(duì)其進(jìn)行任意的賬號(hào)密碼嘗試登錄,有些甚至有密碼字典,可以不斷去猜解用戶的ID與密碼,導(dǎo)致網(wǎng)站用戶被惡意登錄,資料惡意篡改等情況發(fā)生。對(duì)這種滲透中發(fā)現(xiàn)的漏洞我們SINE安全的修復(fù)辦法是:增加驗(yàn)證碼功能(圖片驗(yàn)證碼,或者是短信驗(yàn)證碼),每次登錄都必須輸入對(duì)的驗(yàn)證碼,如果驗(yàn)證碼不對(duì)那就不允許登錄,也可以將驗(yàn)證碼做時(shí)間的限制,30秒才能重新獲取。 再一個(gè)對(duì)用戶ID輸入錯(cuò)誤的提示,可以混淆攻擊者的視線,提示是密碼錯(cuò)誤。在用戶登錄次數(shù)達(dá)到6次以上直接鎖定該賬戶的登錄。
XSS跨站攻擊漏洞也會(huì)在用戶登錄框中發(fā)生,比較常見的就是用戶名的參數(shù)值中,有些客戶網(wǎng)站沒有對(duì)XSS惡意代碼進(jìn)行安全效驗(yàn),導(dǎo)致可以輸入錯(cuò)誤的賬號(hào)進(jìn)行登錄,當(dāng)錯(cuò)誤登錄的時(shí)候,后臺(tái)有可能會(huì)有錯(cuò)誤的用戶登錄記錄,包括post數(shù)據(jù)包里網(wǎng)站來源都會(huì)插入XSS攻擊代碼,導(dǎo)致管理員在查看用戶登錄錯(cuò)誤日志的時(shí)候觸發(fā)XSS漏洞。XSS跨站漏洞可以獲取用戶的cookies值,以及網(wǎng)站后臺(tái)的地址,并可以將瀏覽器打開后臺(tái)進(jìn)行截圖等功能,如何修復(fù)XSS跨站漏洞?對(duì)get,post,cookies的提交方式進(jìn)行安全過濾,攔截掉<,>,,img,"",等字符。
任意用戶注冊(cè)漏洞也會(huì)在網(wǎng)站登錄功能上發(fā)生,可以用來猜測(cè)網(wǎng)站是否有注冊(cè)過該用戶名,進(jìn)行批量的暴力枚舉。對(duì)注冊(cè)使用的驗(yàn)證碼進(jìn)行繞過,使用正確的短信驗(yàn)證碼提交注冊(cè)即可繞過注冊(cè),手機(jī)以及郵箱的驗(yàn)證碼過于太短,導(dǎo)致暴力破解,針對(duì)于這樣的網(wǎng)站漏洞我們SINE安全的修復(fù)建議是對(duì)驗(yàn)證碼和注冊(cè)信息進(jìn)行同步請(qǐng)求,對(duì)驗(yàn)證碼進(jìn)行驗(yàn)證是否正確,然后再來確定注冊(cè)的信息是否與驗(yàn)證碼是一體的。
還有很多網(wǎng)站功能在滲透測(cè)試過程中出現(xiàn)的漏洞,這里總結(jié)的是上部分,下一部分我們將會(huì)在下一篇文章中跟大家揭曉,也希望這些的滲透測(cè)試分享能讓大家對(duì)網(wǎng)站的安全有所了解,只有真正的了解了自己的網(wǎng)站,才能把安全做好,知彼知己百戰(zhàn)不殆。在網(wǎng)站上線以及發(fā)生安全問題后,一定要做滲透測(cè)試服務(wù),提前檢測(cè)網(wǎng)站存在的漏洞,以及模擬攻擊者的手法去查找漏洞根源,防患于未然,國內(nèi)做的比較專業(yè)網(wǎng)站滲透測(cè)試公司推薦Sinesafe,綠盟,啟明星辰等等專業(yè)的安全公司都是比較不錯(cuò)的。
產(chǎn)品推薦