测试过程中常见的安全测试漏洞(可手动测试)
一、Web安全漏洞:
1、跨站腳本攻擊XSS:Cross Site Scripting,為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS
惡意攻擊者往Web頁(yè)面里插入惡意script代碼,當(dāng)用戶瀏覽該頁(yè)面時(shí),嵌入其中Web里面的Script代碼會(huì)被執(zhí)行,從而達(dá)到惡意攻擊用戶的目的。在不同場(chǎng)景下,XSS有相應(yīng)不同的表現(xiàn)形式,主要分為反射型、存儲(chǔ)型、DOM型的跨站腳本攻擊,所造成的映像主要是竊取用戶的登錄憑證(Cookies)、掛馬攻擊、頁(yè)面訪問挾持等
手工測(cè)試:
1.1、反射型XSS測(cè)試:(相當(dāng)于get請(qǐng)求頁(yè)面:url里面輸入)對(duì)提交頁(yè)面的各個(gè)參數(shù)依次進(jìn)行SQL注入測(cè)試,判定是否存在注入
比如正常訪問的地址是 http://www.ccc.com/xss.jsp?id=1&name=2,依次對(duì)2個(gè)參數(shù)進(jìn)行XSS測(cè)試
1.1.1、提交 http://www.ccc.com/xss.jsp?id=1”><script>alert(/xxx/)</script><!--&name=2,根據(jù)返回頁(yè)面是否彈出包含xxx字符串的窗口判斷是否存在反射型XSS
1.1.2、提交 http://www.ccc.com/xss.jsp?id=1&name=
‘><script>alert(/xxx/)</script><!—
“ onerror=alert(/xxx/) t=”
“ onmousemove=alert(/xxx/) t=”
‘><img src=# onerror=alert(1)>
‘><iframe src=http://www.baidu.com><’
同樣的判斷返回頁(yè)面是否彈出包含xxx字符串的窗口判斷是否存在反射型XSS
1.2、存儲(chǔ)型XSS測(cè)試:(頁(yè)面輸入框進(jìn)行操作)在頁(yè)面表單提交測(cè)試中,依次對(duì)提交參數(shù)進(jìn)行XSS測(cè)試
提交參數(shù)語句
‘><script>alert(/xxx/)</script><!—
“ onerror=alert(/xxx/) t=”
“ onmousemove=alert(/xxx/) t=”
‘><img src=# onerror=alert(1)>
</textarea><script>alert(123)</script><!--
‘><iframe src=http://www.baidu.com><’
根據(jù)返回頁(yè)面是否彈出包含xxx字符串的窗口判斷是否存在存儲(chǔ)型XSS
1.3、 修復(fù)建議
對(duì)用戶所有輸入的數(shù)據(jù)進(jìn)行過濾,在輸入頁(yè)面就進(jìn)行攔截處理,就盡量不要進(jìn)入到數(shù)據(jù)庫(kù)層面進(jìn)行交互了。例如:"<" ">"、"script"的關(guān)鍵字等
對(duì)系統(tǒng)輸出的內(nèi)容進(jìn)行編碼處理。例如:HTML Entity。
2、任意文件上傳
任意文件上傳漏洞主要是由于程序員在開發(fā)文件上傳功能時(shí),沒有考慮對(duì)文件格式后綴的合法性進(jìn)行校驗(yàn),或只考慮在應(yīng)用前端(Web瀏覽器端)通過javascript進(jìn)行后綴校驗(yàn),攻擊者可上傳一個(gè)包含惡意代碼的動(dòng)態(tài)腳本(如jsp、asp、php、aspx文件后綴)到服務(wù)器上,攻擊者訪問該腳本時(shí)服務(wù)器將對(duì)包含惡意代碼的動(dòng)態(tài)腳本解析,最終執(zhí)行相應(yīng)的惡意代碼。該漏洞最終將可能直接影響應(yīng)用系統(tǒng)的服務(wù)器安全,攻擊者可通過所上傳的腳本完全控制服務(wù)器。
手工測(cè)試:對(duì)文件上傳頁(yè)面進(jìn)行測(cè)試
2.1、直接上傳(上傳格式進(jìn)行客戶端校驗(yàn)):在上傳過程中,直接選擇動(dòng)態(tài)腳本后綴的文件,如asp、php、jsp、aspx等文件格式,觀察是否上傳成功
2.2、繞過JS上傳(上傳格式進(jìn)行服務(wù)器端校驗(yàn)):可以用charles或burpsuite工具進(jìn)行測(cè)試,詳細(xì)使用方法可百度或看我抓包工具的博客
當(dāng)上傳頁(yè)面在前端采用javascript進(jìn)行文件后綴限制時(shí),可通過HTTP抓包工具進(jìn)行改包上傳,將文件后綴修改為動(dòng)態(tài)腳本后綴并上傳提交,如果響應(yīng)中顯示上傳成功,并且數(shù)據(jù)庫(kù)里也多了一條材料數(shù)據(jù),則需要修改
2.3、截?cái)嗪缶Y上傳:上傳處理將識(shí)別到%00,并對(duì)后綴.png截?cái)鄤h除,如果最終顯示微信.aspx文件上傳成功,并且數(shù)據(jù)庫(kù)里新增了數(shù)據(jù),則需要修改
部分上傳功能在對(duì)后綴名進(jìn)行驗(yàn)證時(shí)存在缺陷,導(dǎo)致在文件寫入過程中產(chǎn)生錯(cuò)誤,導(dǎo)致可通過十六進(jìn)制截?cái)喾?00)對(duì)后綴進(jìn)行截?cái)?/p>
比如上傳一個(gè)文件360.asp%00.jpg,上傳處理時(shí)檢測(cè)到%00并對(duì).jpg字符串進(jìn)行截?cái)鄤h除,最終導(dǎo)致360.asp動(dòng)態(tài)腳本成功上傳到了服務(wù)器
2.4、不允許繞過Content-Type檢查上傳:只識(shí)別了文件類型,并沒有看文件格式,導(dǎo)致可通過改包的方式上傳動(dòng)態(tài)腳本到服務(wù)器上
比如Content-Type的參數(shù)值為image/jpg,程序會(huì)認(rèn)為本次提交的為圖片格式類型,并沒有對(duì)文件格式進(jìn)行后綴驗(yàn)證,最終成功繞過Content-Type檢查,將aspx動(dòng)態(tài)腳本到服務(wù)器上
2.5、 修復(fù)建議
禁止上傳任意文件。對(duì)上傳的文件后綴進(jìn)行限制
3、 任意文件下載或讀取
由于應(yīng)用系統(tǒng)在提供文件下載或讀取功能時(shí),在文件路徑參數(shù)中直接指定文件路徑的同時(shí),并沒有對(duì)文件路徑的合法性進(jìn)行校驗(yàn),導(dǎo)致攻擊者可以通過目錄跳轉(zhuǎn)(..或../)的方式下載或讀取到原始知道路徑之外的文件,攻擊者可以通過該漏洞下載或讀取系統(tǒng)上的任意文件,比如數(shù)據(jù)庫(kù)文件,應(yīng)用系統(tǒng)源代碼,密碼配置等敏感信息,造成系統(tǒng)的敏感信息泄露。
手工測(cè)試:
對(duì)存在文件下載或文件讀取功能的頁(yè)面進(jìn)行測(cè)試,查看所提交的參數(shù)中是否包含文件名或文件目錄,嘗試提交參數(shù)值查看是否可下載或讀取其他目錄的文件內(nèi)容;
比如:原始下載功能路徑為http://www.ccc.com/donwload.jsp?filename=test123456789.pdf
其中文件路徑參數(shù)為filename,通過../對(duì)路徑進(jìn)行跳轉(zhuǎn)嘗試下載其他目錄下的文件,修改filename參數(shù)為../../WEB-INF/web.xml嘗試下載JSP網(wǎng)站的配置文件(測(cè)試過程中需適當(dāng)增加../跳轉(zhuǎn)字符串);如提交
http://www.ccc.com/donwload.jsp?filename=../../WEB-INF/web.xml
查看是否成功下載web.xml文件。
另一種情況如下:
http://www.ccc.com/donwload.jsp?filepath=uploadfile&filename=test123.pdf
該功能通過filepath以及filename指定下載目錄以及下載文件名,可修改filepath參數(shù)值進(jìn)行路徑跳轉(zhuǎn),同時(shí)修改filename值指定文件名;如提交
http://www.ccc.com/donwload.jsp?filepath=../../WEB-INF&filename=web.xml
查看是否成功下載web.xml文件。
4、信息泄露
信息泄露主要是由于開發(fā)人員或運(yùn)維管理人員的疏忽所導(dǎo)致。如未及時(shí)刪除調(diào)試頁(yè)面、未關(guān)閉程序調(diào)試功能、未屏蔽程序錯(cuò)誤信息、備份文件未刪除、數(shù)據(jù)庫(kù)備份文件未刪除、未屏蔽敏感數(shù)據(jù)信息等多個(gè)方面所導(dǎo)致的不同嚴(yán)重程度的信息泄露。攻擊者可通過所掌握的信息進(jìn)一步分析攻擊目標(biāo),從而有效發(fā)起下一步的有效攻擊。
手工/工具測(cè)試:
通過目錄掃描工具掃描查看是否存在敏感路徑;
通過文件掃描工具掃描查看是否存在敏感文件;
通過HTTP抓包工具觀察請(qǐng)求響應(yīng)中是否包含敏感的信息返回;
通過手工提交畸形的參數(shù)名或參數(shù)值嘗試引起程序跑出異常,如提交單引號(hào),超長(zhǎng)字符串,異常編碼字符串等方式;
修復(fù)建議
禁止使用服務(wù)器的絕對(duì)路徑進(jìn)行文件類的操作。
二、業(yè)務(wù)邏輯安全漏洞
5、未授權(quán)訪問(直接在未登錄情況下操作登錄成功之后的頁(yè)面)
應(yīng)用系統(tǒng)對(duì)業(yè)務(wù)功能頁(yè)面并未進(jìn)行有效的身份校驗(yàn),在未登錄且獲知業(yè)務(wù)功能頁(yè)面的訪問地址前提下,可直接操作該頁(yè)面下的功能,將可能對(duì)應(yīng)用系統(tǒng)的惡意破壞
手工測(cè)試:
成功登錄后記錄各個(gè)功能頁(yè)面的URL,重啟瀏覽器并直接訪問所記錄的各個(gè)URL,查看是否可訪問成功;
最后在項(xiàng)目實(shí)例中發(fā)現(xiàn):后臺(tái)URL添加單引號(hào)直接顯示了后臺(tái)的部分功能,應(yīng)修改
6、登錄時(shí)驗(yàn)證碼缺陷
常見于應(yīng)用系統(tǒng)在登錄處理流程過程中,當(dāng)用戶登錄失敗后并未對(duì)當(dāng)前驗(yàn)證碼進(jìn)行注銷并重新刷新驗(yàn)證碼,攻擊者可至始至終提交初始的驗(yàn)證碼發(fā)起攻擊窮舉攻擊;同時(shí)部分應(yīng)用系統(tǒng)驗(yàn)證碼只在客戶端瀏覽器驗(yàn)證,并未經(jīng)過服務(wù)器遠(yuǎn)程驗(yàn)證,將可能存在繞過驗(yàn)證碼缺陷,另一方面,在生成或獲取驗(yàn)證碼的過程中存在缺陷,攻擊者將可能成功預(yù)測(cè)驗(yàn)證碼內(nèi)容或直接解析驗(yàn)證碼內(nèi)容,從而使驗(yàn)證碼失去原有意義,最終導(dǎo)致一系列的窮舉或遍歷數(shù)據(jù)攻擊。
手工測(cè)試:
賬號(hào)密碼如果后臺(tái)設(shè)置了密文,抓包工具獲取到的是否密文展示
對(duì)存在驗(yàn)證碼的功能頁(yè)面進(jìn)行刷新,觀察驗(yàn)證碼生成是否具有足夠的隨機(jī)性;
對(duì)存在驗(yàn)證碼的功能頁(yè)面進(jìn)行刷新并通過HTTP抓包工具抓取當(dāng)前請(qǐng)求包,查看驗(yàn)證碼的獲取過程,分析獲取過程中是否存在缺陷可導(dǎo)致驗(yàn)證碼被解析破解;
對(duì)存在驗(yàn)證碼的功能頁(yè)面進(jìn)行數(shù)據(jù)提交,并通過HTTP抓包工具抓取當(dāng)前請(qǐng)求包,最后重新對(duì)該請(qǐng)求數(shù)據(jù)包進(jìn)行重放,查看是否請(qǐng)求失敗或提示驗(yàn)證碼錯(cuò)誤,如請(qǐng)求成功,即驗(yàn)證碼并未進(jìn)行有效的刷新;
7、任意手機(jī)號(hào)注冊(cè):
常見于應(yīng)用系統(tǒng)在登錄處理流程過程中,當(dāng)用戶登錄失敗后并未對(duì)當(dāng)前驗(yàn)證碼進(jìn)行注銷并重新刷新驗(yàn)證碼,攻擊者可至始至終提交初始的驗(yàn)證碼發(fā)起攻擊窮舉攻擊;同時(shí)部分應(yīng)用系統(tǒng)驗(yàn)證碼只在客戶端瀏覽器驗(yàn)證,并未經(jīng)過服務(wù)器遠(yuǎn)程驗(yàn)證,將可能存在繞過驗(yàn)證碼缺陷,另一方面,在生成或獲取驗(yàn)證碼的過程中存在缺陷,攻擊者將可能成功預(yù)測(cè)驗(yàn)證碼內(nèi)容或直接解析驗(yàn)證碼內(nèi)容,從而使驗(yàn)證碼失去原有意義,最終導(dǎo)致一系列的窮舉或遍歷數(shù)據(jù)攻擊。
8、密碼爆破
總結(jié)
以上是生活随笔為你收集整理的测试过程中常见的安全测试漏洞(可手动测试)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: innerHTML的使用
- 下一篇: 肠胃炎能不能吃羊肉