如何获得保留原始引号的元素?

时间:2020-07-31 13:08:21

标签: javascript xss quotes outerhtml html-injections

我在使用externalHTML时遇到问题。

该方法替换单引号。

我正在开发一个用于测试有效载荷注入的应用程序。

<!-- Injection Points: -->
<div id="iPoint1" class="{{payload}}"></div>
<!-- Exploit:
"><svg/onload=alert()>
-->

<div id="iPoint2" wtf='lol' class='{{payload}}'></div>
<!-- Exploit:
'><svg/onload=alert()>
-->

当我呼叫externalHTML时:

alert(document.querySelector("#iPoint1").outerHTML);

alert(document.querySelector("#iPoint2").outerHTML);

显示的输出具有双引号包围的属性。

文字必须为:

<div id="iPoint2" wtf='lol' class='{{payload}}'></div>

但是它是:

<div id="iPoint2" wtf="lol" class="{{payload}}"></div>

然后是有效载荷

'><svg/onload=alert()>

显然不起作用。

我知道我可以使用手动替换它们

code.replace("\"", "'");

但是我认为这不是一个好的解决方案,因为注入点可能非常复杂且格式不正确。

实际上,我正在将每个有效负载写入iframe中,以覆盖警报并在不影响全局范围的情况下获得执行通知,

0 个答案:

没有答案