在这种情况下是否有可能绕过 Chrome xss 审核员?
信息安全
xss
铬合金
2021-08-20 00:22:13
1个回答
在这里,您可以简单地使用 payload javascript:alert(1)
,因为审核员不会将 href 属性中的 javascript URL 识别为 XSS。单击链接将执行代码。
但是,通过以您尝试的方式注入额外的事件处理程序属性来执行 JS 会困难得多,因为您的代码示例直接反映输入而无需额外处理。这正是 XSS 审计员所针对的攻击场景之一。它试图识别反射部分以防止它们执行。正如@NickMckenna 所说,在这种情况下没有一般的方法可以绕过审计员。
您可以做的是注入其他具有副作用的属性。例如,您仍然可以使用该style
属性并应用任意 CSS(例如' style='background:red;
)。结合 AngularJS 等其他技术,注入不同的属性仍然会导致 XSS。
请注意,XSS 审计员是脆弱的。由于它不了解代码在服务器端的处理方式,因此在更复杂的程序中进行简单的替换就足以混淆它,例如:
<?php
if (isset($_POST['data'])) {
// Filter bad words
$data = str_replace('BADWORD', '', $_POST['data']);
echo "<a href='".htmlentities($data)."'>Click Here</a><br/>";
}
?>
在这种情况下,类似的序列' onBADWORDmouseover='alert(1)
会绕过审计员。
(另请注意,您尝试注入的属性对标签onerror
无效。)<a>