整理了一些軟件測試方面的資料、面試資料(接口自動化、web自動化、app自動化、性能安全、測試開發(fā)等),有需要的小伙伴可以文末加入我的學(xué)習(xí)交流qun,無套路自行領(lǐng)取~?
1.xss漏洞檢測方法1:手動檢測
手工檢測重點要考慮數(shù)據(jù)輸入的地方,且需要清楚輸入的數(shù)據(jù)輸出到什么地方。
在檢測的開始,可以輸入一些敏感字符,比如“<、>、()”等,提交后查看網(wǎng)頁源代碼的變化以發(fā)現(xiàn)輸入被輸出到什么地方,且可以發(fā)現(xiàn)相關(guān)敏感字符是否被過濾。
手工檢測結(jié)果相對準(zhǔn)確,但效率較低。
2.xss漏洞檢測方法2:工具檢測
常用工具有AVWS(Acunetix?Web?Vulnerability?Scanner)、BurpSuite等。還有一些專門針對XSS漏洞的檢測工具,如:XSSer、XSSF(跨站腳本攻擊框架)、BeEF(The?Browser?Exploitation?Framework)等。
推薦兩款自動檢測工具:
beef-xss是一個web框架攻擊平臺,parrot和kali等滲透測試系統(tǒng),都集成beef,而且beef有很多好使的payload。
比如XSS這個漏洞,beef可以通過一段編制好的javascript控制目標(biāo)主機(jī)的瀏覽器,通過瀏覽器拿到各種信息并且掃描內(nèi)網(wǎng)信息,非常強(qiáng)大。
XSStrike是目前比較流行的一款xss檢查工具,它只針對反射型和DOM型,對參數(shù)進(jìn)行模糊測試之后構(gòu)建合適的payload,使用payload對參數(shù)進(jìn)行窮舉匹配,內(nèi)置爬蟲功能,檢測并嘗試?yán)@過WAF,同時支持GET及POST方式,大多數(shù)payload都是由作者精心構(gòu)造,誤報率極低。
3.xss漏洞防御方法
使用黑名單進(jìn)行
●對HTML標(biāo)簽或特殊字符進(jìn)行過濾
●使用內(nèi)容安全的CSP
●使用設(shè)計上就會自動編碼的框架,如:OWASP?ESAPI、React?JS、JSOUP等,對于JAVA而言,可以使用ESAPI.encoder().encodeForHTML()對字符串進(jìn)行HTML編碼。
●對于反射型和存儲型XSS,可以在數(shù)據(jù)返回給客戶端瀏覽器時,將敏感字符進(jìn)行轉(zhuǎn)義,如:將單引號進(jìn)行編碼替換(十進(jìn)制編碼'、十六進(jìn)制編碼'、HTML編碼&apos、Unicode編碼\u0027等)。
●對于DOM型XSS,可以使用上下文敏感數(shù)據(jù)編碼。如:在PHP中的htmlspecialchars()、htmlentities()函?數(shù)可以將一些預(yù)定義的字符轉(zhuǎn)換為HTML實體,如:小于轉(zhuǎn)化為<、大于轉(zhuǎn)化為>、雙引號轉(zhuǎn)化為"、單引號轉(zhuǎn)化為&apos、與轉(zhuǎn)化?為&等。
●啟用瀏覽器的HttpOnly特性可以組織客戶端腳本訪問cookie。如:在PHP中可以通過下面的代碼設(shè)置cookie并啟用HttpOnly。
4.XSS防御的總體思路
XSS防御的總體思路是:對用戶的輸入(和URL參數(shù))進(jìn)行過濾,對輸出進(jìn)行html編碼。也就是對用戶提交的所有內(nèi)容進(jìn)行過濾,對url中的參數(shù)進(jìn)行過濾,過濾掉會導(dǎo)致腳本執(zhí)行的相關(guān)內(nèi)容;然后對動態(tài)輸出到頁面的內(nèi)容進(jìn)行html編碼,使腳本無法在瀏覽器中執(zhí)行。
對輸入的內(nèi)容進(jìn)行過濾,可以分為黑名單過濾和白名單過濾。黑名單過濾雖然可以攔截大部分的XSS攻擊,但是還是存在被繞過的風(fēng)險。白名單過濾雖然可以基本杜絕XSS攻擊,但是真實環(huán)境中一般是不能進(jìn)行如此嚴(yán)格的白名單過濾的。
對輸出進(jìn)行html編碼,就是通過函數(shù),將用戶的輸入的數(shù)據(jù)進(jìn)行html編碼,使其不能作為腳本運行。
如下,是使用php中的htmlspecialchars函數(shù)對用戶輸入的name參數(shù)進(jìn)行html編碼,將其轉(zhuǎn)換為html實體
#使用htmlspecialchars函數(shù)對用戶輸入的name參數(shù)進(jìn)行html編碼,將其轉(zhuǎn)換為html實體
$name?=?htmlspecialchars(?$_GET[?'name'?]?);
所有的過濾、檢測、限制等策略,建議在Web?Server那一端去完成,而不是使用客戶端的JavaScript或者VBScript去做簡單的檢查。因為真正的攻擊者可以繞過你精心設(shè)計制作的客戶端進(jìn)行過濾、檢測或限制手段。
最后感謝每一個認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于從事【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。希望對大家有所幫助……如果你不想再體驗一次自學(xué)時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加入下方我們的測試交流群大家一起討論交流學(xué)習(xí)文章來源:http://www.zghlxwxcb.cn/news/detail-505914.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-505914.html
到了這里,關(guān)于安全測試之xss漏洞的檢測與防御的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!