XSS的檢測與防範


    按照利用方式的不同,可以把XSS漏洞大致分爲三類,如表11-3-1所示。
表11-3-1 XSS漏洞分類
類型
對應的Web應用
利用方式及危害
本地的XSS
.htm 文件
.chm 文件(幫助文檔)
.mht 文件
.dlls and .exe等PE文件的內部資源中也可能存在XSS
***用戶桌面
無存儲的XSS
搜索引擎,錯誤信息提示等將在頁面中顯示用戶輸入的Web應用
竊取cookie,更改返回頁面的內容,如XSS Reflection
有存儲的XSS
BBS、論壇、博客等存儲用戶數據並提供顯示的Web應用
XSS Worm***、Stored XSS***
    在上述這些Web應用場景中,應當特別注意XSS漏洞。最常用於檢測XSS的POC代碼就是用於彈出警告消息的那句JavaScript:
javascript:alert('XSS');
    作爲安全測試人員,除了嘗試這種基本形式的POC之外,爲了測試過濾系統的完備性,以下形式的測試用例往往可以給您一些啓發,如表11-3-2所示。
表11-3-2 XSS測試用例
XSS測試用例
javascript:alert('XSS');
JaVaScRiPt:alert('XSS')
javascript:alert("XSS")
alert('XSS')
6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29
javascript:alert('XSS')
jav	ascript:alert('XSS')
<SCRIPT>a=/XSS/
alert(a.source)</SCRIPT>
<SCRIPT>alert("XSS");</SCRIPT>
AAA<SCRIPT>alert("XSS“)</SCRIPT>AAA
<ScRipt> alert("XSS");</SCRIPT>
    另外,一些非常敏感的HTML標籤的過濾也要非常小心。這些TAG包括<applet>、<body>、<embed>、<frame>、<script>、<frameset>、<html>、<iframe>、<img>、<style>、<layer>、<ilayer>、<meta>、<object> 。
    在將文本返回給客戶端瀏覽器時,對敏感字符進行編碼替換是一個防禦XSS***的簡單而有效的辦法,例如,對以下字符的編碼替換,如表11-3-3所示。
表11-3-3 字符的編碼替換
敏感字符
十進制編碼
十六進制編碼
HTML字符集
Unicode編碼
"
&#34
&#x22
&quot
\u0022
'
&#39
&#x27
&apos
\u0027
&
&#38
&#x26
&amp
\u0026
&#60
&#x3C
&lt
\u003c
&#62
&#x3E
&gt
\u003e
 
本文節選自電子工業出版社2008年4月出版的《0day安全:軟件漏洞分析技術》一書。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章