chrome的xss過濾器叫xssAuditor,類似IE的xssFilter,但是他們有很大的內在區別
chrome xssAuditor工作原理
chrome的xss檢測名稱為 xssAuditor 整合到webkit當中,chrome這么做的原因是因為過濾器可以在腳本執行之前就可以攔截,而且任何使用webkit都可以使用這些規則
當加載網頁時,xssAuditor會在渲染的之前評估用戶的輸入數據:
1.檢查用戶輸入是否包含惡意內容,如果存在進行攔截
2.xssAuditor檢測用戶是否會反射到渲染的頁面中(html實體/html熟悉/javascript/css/url)
3.評估輸入上下文是否合法,非法進行過濾
chrome的檢測機理和ie還有很大的區別是,chrome是在此法解析階段進行的,講html解析不同的token(類似php vld opcode),xssAuditor會逐一掃描檢測token,
如果token中發現危險的屬性和URL進行比較,如果URL中也存在同樣的數據,xssAuditor則會認為這是一個反射XSS。
demo:
解析器解析<iframe src="x" onerror="alert(1)"></iframe>
1.依次檢查標簽iframe是否包含惡意屬性,src/onerror
2.如果src不是以javascript:開頭,則安全,放行
3.onerror中含有腳本,檢查URL是否包含
4.如果出現在URL中,認為存在安全問題,將過濾 <iframe src="x" onerror="void(0)"></iframe>
5.中止iframe標簽檢查
IE xssFilter工作原理
IE的xssFilter是在IE8 beta2開始的,IE的xss檢測比較粗暴,IE的xssFilter基於正則進行檢測的
具體規則存在位於C:\Windows\System32下的mshtml.dll文件中
我們可以使用如下命令進行查看:
findstr /C:"sc{r}" C:\WINDOWS\SYSTEM32\mshtml.dll|find "{"

每一行為一條規則,如果發現規則的時候將payload替換為#
本文總結基於《白帽子講瀏覽器安全》
