隨著互聯(lián)網(wǎng)的飛速發(fā)展,web應(yīng)用在軟件開(kāi)發(fā)中所扮演的角色變得越來(lái)越重要,同時(shí),web應(yīng)用遭受著格外多的安全攻擊,其原因在于,現(xiàn)在的網(wǎng)站以及在網(wǎng)站上運(yùn)行的應(yīng)用在某種意義上來(lái)說(shuō),它是所有公司或者組織的虛擬正門(mén),所以比較容易遭受到攻擊,存在安全隱患。
今天主要給大家分享下有關(guān)安全測(cè)試的一些知識(shí)點(diǎn)以及注意事項(xiàng)。
一、安全測(cè)試的驗(yàn)證點(diǎn)
一個(gè)系統(tǒng)的安全驗(yàn)證點(diǎn)包括上傳功能、注冊(cè)功能/登陸功能、驗(yàn)證碼功能、密碼、敏感信息泄露、越權(quán)測(cè)試、錯(cuò)誤信息、session等。
1、上傳功能
- 上傳中斷,程序是否有判斷上傳是否成功
- 上傳與服務(wù)器端語(yǔ)言(jsp/asp/php)一樣擴(kuò)展名的文件或exe等可執(zhí)行文件后,確認(rèn)在服務(wù)器端是否可直接運(yùn)行
2、注冊(cè)功能/登陸功能
- 請(qǐng)求是否安全傳輸
- 重復(fù)注冊(cè)/登陸
- 關(guān)鍵cookie是否httponly
- 會(huì)話固定:利用session的不變機(jī)制,獲取他人認(rèn)證和授權(quán),然后冒充
3 、驗(yàn)證碼功能
- 短信轟炸
- 驗(yàn)證碼一次性
4、 忘記密碼
- 通過(guò)手機(jī)號(hào)/郵箱找回
- 程序設(shè)計(jì)不合理,導(dǎo)致可以繞過(guò)短信驗(yàn)證碼,從而進(jìn)行修改(使用burpsuite抓包,修改響應(yīng)值true)
5 、敏感信息泄漏
- 數(shù)據(jù)庫(kù)/日志/提示
6 、越權(quán)測(cè)試
- 不登陸系統(tǒng),直接輸入下載文件的URL是否可以下載/直接輸入登錄后頁(yè)面的URL是否可以訪問(wèn)
- 手動(dòng)更改URL中的參數(shù)值能否訪問(wèn)沒(méi)有權(quán)限訪問(wèn)的頁(yè)面
- 不同用戶之間session共享,可以非法操做對(duì)方的數(shù)據(jù)
7 、錯(cuò)誤信息
- 錯(cuò)誤信息中釋放含有sql語(yǔ)句,錯(cuò)誤信息以及web服務(wù)器的絕對(duì)路徑
8、 Session
- 退出登陸后,點(diǎn)擊后退按鈕是否能訪問(wèn)之前的頁(yè)面
主要?dú)w結(jié)為以下幾點(diǎn):(后期可以優(yōu)化成一個(gè)安全測(cè)試的框架結(jié)構(gòu))
- 部署與基礎(chǔ)結(jié)構(gòu)
- 輸入驗(yàn)證
- 身份驗(yàn)證
- 授權(quán)
- 配置管理
- 敏感數(shù)據(jù)
- 會(huì)話管理
- 加密
- 參數(shù)操作
- 異常管理
- 審核和日志安全,
二、結(jié)合實(shí)際情況(現(xiàn)有系統(tǒng))發(fā)現(xiàn)的問(wèn)題
1、日志/提示
在系統(tǒng)的初期,一般比較容易發(fā)現(xiàn)的問(wèn)題就是在進(jìn)行一些錯(cuò)誤或者反向測(cè)試時(shí),在頁(yè)面的提示中會(huì)出現(xiàn)帶有明顯的數(shù)據(jù)庫(kù)的表或者字段的打印,或者會(huì)出現(xiàn)一些敏感詞,日志里面類似密碼,卡號(hào),身份證號(hào)沒(méi)有相應(yīng)的明密文轉(zhuǎn)換,而這些敏感詞/明密文不互轉(zhuǎn)的存在,就會(huì)導(dǎo)致攻擊者能夠獲取到,從而進(jìn)行簡(jiǎn)單粗暴的攻擊,輕易的攻擊服務(wù)器或者數(shù)據(jù)庫(kù),這就會(huì)危害到整個(gè)系統(tǒng)!
2、重復(fù)性
大部分的web網(wǎng)站都會(huì)有注冊(cè)功能,而類似我們負(fù)責(zé)支付這塊也都會(huì)有開(kāi)戶,就注冊(cè)跟開(kāi)戶,基本上需求上都會(huì)有唯一性的校驗(yàn),在前端就會(huì)進(jìn)行攔截,但如果使用jmter進(jìn)行參數(shù)以及參數(shù)值的新增,有可能新增成功,就會(huì)導(dǎo)致頁(yè)面系統(tǒng)里面會(huì)出現(xiàn)相同數(shù)據(jù),可能導(dǎo)致整個(gè)功能的出錯(cuò)。
3、次數(shù)限制
類似發(fā)單,登錄或者短信,如果沒(méi)有進(jìn)行相應(yīng)的限制,如短信,沒(méi)有進(jìn)行限制次數(shù),攻擊者就會(huì)通過(guò)短信轟炸,攻擊系統(tǒng),導(dǎo)致系統(tǒng)癱瘓,其他客戶就會(huì)使用不了該系統(tǒng)。
4、越權(quán)測(cè)試
(基本上大部分系統(tǒng)都沒(méi)有明確的寫(xiě)出越權(quán)方面的需求)一個(gè)web系統(tǒng),一般地址欄都會(huì)有參數(shù)的帶入,如:用戶號(hào),訂單號(hào)或者是其他的一些參數(shù),而在這個(gè)基礎(chǔ)上一個(gè)系統(tǒng)都會(huì)有很多用戶,或者很多等級(jí),如:A大于B大于C,那我使用C用戶進(jìn)行登錄,查看C用戶所屬的訂單,在地址欄中會(huì)有訂單號(hào)的參數(shù)帶入,如果系統(tǒng)沒(méi)有進(jìn)行相應(yīng)的限制,此時(shí)C用戶就可以修改訂單號(hào)從而可以看到B乃至A用戶的數(shù)據(jù),這就可能導(dǎo)致數(shù)據(jù)的泄露,再者,如果可以修改用戶的用戶號(hào),沒(méi)有做處理,這樣就可以對(duì)所有數(shù)據(jù)進(jìn)行操作,整個(gè)系統(tǒng)就亂了,影響很大。
5、SQL注入/XSS攻擊
主要是輸入框的校驗(yàn)/攔截以及是否轉(zhuǎn)義,如果沒(méi)有系統(tǒng)沒(méi)有對(duì)輸入的內(nèi)容進(jìn)行處理,那攻擊者就可以輸入一段SQL語(yǔ)句,或者一段代碼,在后臺(tái)進(jìn)入到相應(yīng)的功能,就會(huì)導(dǎo)致整個(gè)功能是錯(cuò)亂的,其他正常用戶所提交的數(shù)據(jù)也查看操作不了,或者提交的代碼是死循環(huán)(">),就會(huì)關(guān)閉不掉,所以這點(diǎn)是非常重要的。
基本上上述的五點(diǎn)都是在測(cè)試中,系統(tǒng)真實(shí)存在,發(fā)生的問(wèn)題,還有其他問(wèn)題就不一一例舉了,其中越權(quán)跟SQL注入以及XSS攻擊都是重中之重!
三、克服的小困難
上面所述的都是需要人工進(jìn)行手動(dòng)參與,且人力操作時(shí)不會(huì)那么飽滿全面,所以這是一個(gè)遇到的小問(wèn)題。現(xiàn)在有一個(gè)針對(duì)web系統(tǒng)進(jìn)行漏洞掃描的工具:AWVS,它通過(guò)網(wǎng)絡(luò)爬蟲(chóng)測(cè)試你的網(wǎng)站安全,檢測(cè)流行安全漏洞,針對(duì)漏洞主要分為四個(gè)等級(jí):高危、中危,低危以及優(yōu)化,它會(huì)進(jìn)行內(nèi)外鏈接的安全性,文件是否存在以及傳輸是否安全,也包含SQL注入跟XSS攻擊,輸入地址,用戶名密碼后,進(jìn)行掃描完成后會(huì)展示相應(yīng)的數(shù)據(jù):漏洞的數(shù)量,漏洞的描述,建議性的修復(fù);掃描網(wǎng)站的時(shí)長(zhǎng),文件數(shù)據(jù)量,環(huán)境信息等,較為全面!
四、安全測(cè)試的思路跟框架
主要根據(jù)以下六點(diǎn)來(lái)實(shí)現(xiàn)一個(gè)較為完整的安全測(cè)試的思路,框架就是根據(jù)半手工、半自動(dòng)來(lái)實(shí)現(xiàn)整個(gè)系統(tǒng)的驗(yàn)證。
- 部署與基礎(chǔ)結(jié)構(gòu)
- 輸入驗(yàn)證
- /身份驗(yàn)證(權(quán)限驗(yàn)證)
- 敏感數(shù)據(jù)
- 參數(shù)操作
- 審核和日志安全;
五、目前存在的問(wèn)題/需要優(yōu)化的
現(xiàn)在的安全測(cè)試大多是半手工、半自動(dòng)化,但都不是專業(yè)級(jí),所以還在摸索階段,只能盡可能地去發(fā)現(xiàn)系統(tǒng)中存在的漏洞,且測(cè)試?yán)碚摵茈y適用于安全領(lǐng)域;
安全測(cè)試基礎(chǔ)理論薄弱,當(dāng)前測(cè)試方法缺少理論指導(dǎo),也缺乏更多的技術(shù)產(chǎn)品工具 ;
安全測(cè)試需要對(duì)系統(tǒng)所采用的技術(shù)以及系統(tǒng)的架構(gòu)等進(jìn)行分析,這方面也是較為薄弱的環(huán)節(jié)!