如何在现代浏览器中临时禁用 XSS 保护以进行测试?

Posted

技术标签:

【中文标题】如何在现代浏览器中临时禁用 XSS 保护以进行测试?【英文标题】:How to temporarily disable XSS protection in modern browsers for testing? 【发布时间】:2012-10-07 06:41:33 【问题描述】:

是否可以暂时禁用现代浏览器中的 XSS 保护以进行测试?

我正在尝试向同事解释当将其发送到易受 XSS 攻击的 Web 表单时会发生什么:

<script>alert("Danger");</script>

但是,Chrome 和 Firefox 似乎都在阻止 XSS 弹出窗口。我可以禁用此保护,以便完全查看我的操作的结果吗?

【问题讨论】:

我认为任何浏览器都不会阻止该脚本,以防它真的作为服务器发送的 html 的一部分提供。 @Delta 如果它是从用户发送并由服务器返回的,浏览器通常会阻止它,而不是如果它只是从服务器发送的。例如MyPage.aspx?id=&lt;script&gt;alert('s');&lt;/alert&gt; 将作为请求发送,但如果代码的任何部分出现在响应中的脚本中,它可能会被浏览器阻止(即不执行)。 【参考方案1】:

您可以在提交表单时将用户重定向到另一个本地网页并打印受感染的数据。 Chrome 不会检测到这一点。

提示:您可以使用会话/cookie 在两个页面之间存储受感染的数据。

PHP 中的示例:

index.php

<?php    
    setcookie('infected', $_POST['infected']);

    if($_POST['infected'])
        header('location: show.php');
?>

<form action="index.php" method="POST" />
    <p>
        Username: <input type="text" name="infected" />
        <input type="submit" value="Add Comment" />
    </p>
</form>

显示.php

echo $_COOKIE['data'];

【讨论】:

【参考方案2】:

使用禁用参数是临时的吗?在有限的测试中,它似乎是永久性的。 XSS-Auditor 在 Chrome 窗口中保持禁用,在没有任何 xss-auditor 参数的情况下启动。要重新打开使用“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”--enable-xss-auditor

【讨论】:

【参考方案3】:

我知道这并不能解决问题,但现在可能只需要在网站上发布一条消息,直到 Google 修复它。类似“如果使用 Chrome,您可能会遇到......”。我发现即使我得到了内容确实进入数据库的错误屏幕。我只是回击回到网站。然后转到仪表板,它就在那里。很痛苦,但这是一种不需要设置网站的解决方法。

【讨论】:

【参考方案4】:

如果你只是不想禁用 XSS,你应该使用--disable-xss-auditor。一个完整的论点应该是这样的:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-xss-auditor

确保在运行命令之前杀死所有 chrome.exe 进程,否则它将不起作用。如果您愿意,您还可以传递更多参数,例如,我经常使用代理参数,因为我不想为我的整个系统启用代理。

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-xss-auditor --proxy-server=127.0.0.1:8080

【讨论】:

【参考方案5】:

为了方便不知道的人......

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --args --disable-web-security

使用上面的作为快捷方式的路径

【讨论】:

这仅在使用这些命令启动 chrome 之前关闭所有 chrome 实例时才有效。见***.com/questions/17679399/…【参考方案6】:

在 Chrome 中,您可以使用一个标志来启动浏览器。如果你用这个标志启动浏览器,你可以做你想做的事:

--disable-web-security 

【讨论】:

@Zachary K:这仅适用于 Chromium 吗?也许不再可能? productforums.google.com/forum/#!topic/chrome/r-QGNb0MACo 在 Chrome 65.0.3325.181 中:“您正在使用不受支持的命令行标志:--disable-web-security。”XSS 审核员不是 禁用。 --disable-xss-auditor 仍受支持且有效。

以上是关于如何在现代浏览器中临时禁用 XSS 保护以进行测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何关闭跨站点脚本 (XSS) 筛选器

我们能否挑出一条警告说“未启用 Web 浏览器 XSS 保护”并在 ZAP 代理中重新运行

如何保护 Angular 2 SPA 免受 XSS 攻击?

如何在Spring启动应用程序中进行REST调用而不在Spring安全性中禁用CSRF保护?

XSpear 一款基于RubyGems的XSS漏洞扫描工具

现代Web应用渗透测试第1部分,XSS和XSRF相结合