按照利用方式的不同,可以把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攻击 |
作为安全测试人员,除了尝试这种基本形式的POC之外,为了测试过滤系统的完备性,以下形式的测试用例往往可以给您一些启发,如表11-3-2所示。
表11-3-2 XSS测试用例
XSS测试用例 |
javascript:alert('XSS'); |
JaVaScRiPt:alert('XSS') |
javascript:alert("XSS") |
alert('XSS') |
6Cert('XSS') |
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> |
表11-3-3 字符的编码替换
敏感字符 |
十进制编码 |
十六进制编码 |
HTML字符集 |
Unicode编码 |
" |
" |
" |
" |
\u0022 |
' |
' |
' |
&apos |
\u0027 |
& |
& |
& |
& |
\u0026 |
< |
< |
< |
< |
\u003c |
> |
> |
> |
> |
\u003e |