渗透测试时,需要注意浏览器选项

时间:2022-05-06
本文章向大家介绍渗透测试时,需要注意浏览器选项,主要内容包括渗透测试时,需要注意浏览器选项、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

渗透测试时,需要注意浏览器选项

From ChaMd5安全团队核心成员 tyomcat

渗透测试人员寻找漏洞,总是包括跨站脚本(XSS)攻击。最近,我观察到一个不寻常的XSS相关案例,学到一些新的东西。

XSS相关的测试过程中,我们插入“<script>alert(1)</script>”payload作为一个GET请求的参数和执行这个命令在Internet Explorer 11。我们希望看到我们的“恶意”警报,但浏览器返回“网页无法找到”,使我们认为我们的命令失败。接下来我们跑在Firefox的命令,看到1个不同的响应,xss执行成功 “alert box 1”。

不同浏览器的响应相同的HTTP返回代码。 当我在Burp代理服务里研究了请求/响应信息,我看到了“HTTP / 1.1 400错误请求“和我们插入的XSS payload在响应信息里。这表明该命令应该在任何时候工作。

在burp的实际响应页面中。 显然相同的响应HTTP代码在浏览器里有差异。经过进一步的调查发现Internet Explorer的高级功能“Show friendly HTTP error messages”:

IE的网络选项

选中此功能(默认值)时,Internet Explorer将显示其自己友好的错误消息,而不是Web服务器的页面响应。 在我们的XSS攻击尝试中,Internet Explorer 忽略了Web服务器的错误请求响应(注入的XSS payload会在响应的信息中弹窗)而显示自己的消息。通过只看这个反应,在我们的测试中,我们可以错过了一个严重的问题。 我们不选中此选项,重新启动浏览器,并运行相同的恶意网址。这一次,我们看到成功执行的响应与警报框

在IE中禁用了“friendly error message”功能后,XSS成功执行。

还有其他一些特定的浏览器设置/依赖,在渗透测试中需要注意: 使用XSS过滤器(IE):启用此选项时,浏览器识别的响应潜在的攻击(反射脚本),并会自动阻止脚本代码运行。当出现这种情况时,我们会在通知栏中看到一条消息,该网页被修改以保护您的隐私和安全。禁用此选项在安全领域而渗透测试:

IE的XSS过滤器选项

开发商在浏览器中使用XSS过滤器时,也可以选择设置自定义的XSS保护响应头。 你下一次渗透测试,看一看这些浏览器选项。他们可以帮助你取得更大的成功。

##X-XSS-Protection

HTTP X-XSS-Protection 响应头是Internet Explorer、Chrome和Safari的一个特性,停止页面加载他们检测到的反射跨站脚本(XSS)攻击。当网站实施了强大的 Content-Security-Policy(禁用内联JavaScript的使用:“unsafe-inline”)后,虽然这些保护很大程度上是不必要的,但他们仍然可以为用户还不支持CSP的旧浏览器提供保护。

Header type Response header Forbidden header name no

###SyntaxEDIT

X-XSS-Protection: 0

X-XSS-Protection: 1

X-XSS-Protection: 1; mode=block

X-XSS-Protection: 1; report=<reporting-uri>

#####0

禁用XSS过滤.

#####1

使用XSS过滤(通常浏览器会默认).如果一个跨站点脚本攻击被检测出来,浏览器就会将网页(消除不安全的部分)

#####1;mode=block

使用XSS过滤。不是将页面”消毒“,而是浏览器会阻止页面渲染,如果检测到攻击。

######1; report=<reporting-URI> (Chromium only)

使用XSS过滤。如果一个跨站点脚本攻击被检测出来,浏览器会对页面”消毒“和报告错误。这是用CSP的URI指令功能发送报告。

####ExampleEDIT

Block pages from loading when they detect reflected XSS attacks:

X-XSS-Protection: 1;mode=block

####PHP

header("X-XSS-Protection: 1; mode=block");

####Apache (.htaccess)

<IfModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" </IfModule>

###SpecificationsEDIT

Not part of any specifications or drafts.

###Browser compatibilityEDIT