写点什么

软件测试 | web 测试 - 伪造浏览器头信息

  • 2023-08-26
    北京
  • 本文字数:1809 字

    阅读完需:约 6 分钟

更多学习资料戳!!!

问题

处于安全目的,你的应用可能依赖于浏览器头信息。常见的这样使用的头信息包括 Content-Length,Content-Type,Referer 和 User-Aget.本秘诀将测试你的应用是否能够正确地处理恶意头信息。

解决方案

要提供伪造的头信息,请浏览到刚好位于使用头信息的页面之前的页面。对分析软件包而言,每个页面都可能搜集头数据!对重定向页面而言,浏览到刚好位于重定向页面之前的页面才有意义;否则你就会被重定向。

打开 TamperData,并通过“Start Tamper”按钮开启 Tamper 模式。向服务器发起请求。通常我们是通过单击链接来提交请求,不过在有些情况下你可能需要手动编辑并手动提交 URL。

在 TamperData 左侧的 TamperData 提示窗口中,单击 Tamper 按钮。你会看到列出的 RequestHeades,而头信息的取值则显示在右侧的文本框中。

在这里,你可以编辑任何已有的头信息,比如 User-Agent.另外,你还可以添加尚未设定的头信息。例如,如果 Referer 头信息没有被自动设定,而且因为我们怀疑 Referer 头信息会被分析软件包获得,所以我们可以将它作为新的头信息添加进去,以此作为一项测试。图 5-7 显示; 一个 TamperData 窗口,其中 Referer 头信息被高亮显示。这是一种很好的篡改 Referer 的方法。要添加尚未存在的头信息,只需在头信息中右击并选择它以完成添加。

添加新的头信息之后,我们可以将其取值设定为任意字符串。通过将 Referer 头信息设定为<script>alert("xss");<script>如果充分利用,可以将它发展为跨站式脚本。

即使在提交了这个恶意 Referer 头信息之后,从服务器返回的页面上没有明显。但是,现在服务器的日志中有一行包含该字符串的文本。根据服务器日志显示方式的不同,特别是在通过定制软件来执行分析的情况喜爱,这段字符串可能会直接输出到管理员的网页浏览器。如果你安装了这样的日志监控或分析软件,请加载它并分析最近的几条 Referer。无论如何,也要确保这段 JavaScript 注入不会被执行并显示一个小提示框。另外,你可以验证其特殊字符在存储到日志或从日志中获取时被转义处理。这样能确保其他恶意输入都得到正确的处理。

讨论

因为基于头心信息的工具并不总是这样的明显,所以首先要确定你的应用中出于功能或分析的目的要用到头信息的地方。虽然头信息通常只限于服务器和浏览器之间的后台通信,但攻击者仍然能够操纵他们来提交恶意输入。基于头信息的攻击可能特别地迂回,因为它们可能会设置为利用管理员检查和日志分析页面。头信息的常见用途包括:

引用页跟踪

头信息可以选择指定 Referer,以表明连接到当前页面的前一页面。Web 站点管理员使用它们来了解哪些外部站点链接到你的 Web 应用

点进(click-through)分析

服务器日志将 Referer 头信息制成表格,以报告用户在进入应用之后,如何在其内部导航。

受众分析

有时会分析 User-Agent 头信息,以确定用户使用哪种浏览器,操作系统,扩展甚至是硬件类型。

如果你的应用使用上述功能中的任何一种,请留意将被使用或分析的那个头信息。如果你的应用跟踪 Referer 头信息,就将它作为要调查的头信息加以注意。如果你通过浏览器跟踪你的受众,那么你应该更加关注 User-Agent 头信息。就报告而言,要确定接收、存储和分析头信息的位置。

大多数网站包含一种分析 Web 流量的方法。虽然有许多这种用途的软件包,比如 Google Analytics 或 Omniture Web Analytics,但包含定制的 Web 流量报告的应用却不罕见。这写报告往往包含有关链接到你的应用的页面以及哪些用户代理(浏览器和其他客户端)发出页面请求的详细信息。在任何情况下,如果这些数据在进行时未经验证而且在现实给管理员之前未经净化,那么就存在潜在的漏洞。考虑到 Web 应用设计中很少会考虑到头信息,而管理员页面很可能是定制的,因此这种“头信息到管理页面”的问题很有可能存在于许多 Web 应用中。

在有些情况下,Web 服务器可能会完全拒绝任何带有看似恶意的头信息的请求。对这些筛选程序做实验;有可能可以绕过它们。例如,如果筛选程序只允许有效的 User-Agent 取值,而有效 User-Agent 的定义是高度可变的。例 5-4 所示的 User-Agenr 并不对应真实的浏览器。事实上,它包含了恶意攻击字符串。不过,它确实符合有效 User-Agent 并不对应真实的浏览器。事实上,它包含了恶意攻击字符串。不过,它确实符合有效 User-Agent 标识符的许多结构约定。

例 5-4:虚构的包含恶意攻击字符串的 User-Agent

Mozilla/5.0 (Macintosh; U;PPC Mac OS X Mach-0;en-US;rv:1.8.1.6;<script>alert('hello');</script>) Gecko/20070725 Firefox/2.0.0.6
复制代码


用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | web测试-伪造浏览器头信息_测试_测吧(北京)科技有限公司_InfoQ写作社区