使用Fiddler的X5S插件查找XSS漏洞

OWASP top 10的安全威胁中的CrossSite Scripting(跨站脚本攻击),容许攻击者经过浏览器往网站注入恶意脚本。这种漏洞常常出如今web应用中须要用户输入的地方,若是网站有XSS漏 洞,攻击者就能够经过这种漏洞向浏览网站的用户发送恶意脚本,同时也能够利用该漏洞偷取sessionid,用来劫持用户账户的会话。web

因此网站开发者必须针对这种攻击进行适当的测试,必须过滤网站的每一个输入及输出。为了使漏洞检测更容易,也可使用各类扫描器,有不少自动或手动工 具能够帮咱们查找这些漏洞。X5S就是一款用来测试XSS漏洞的工具,它是Fiddler的一个插件,是一个WebDebugging Proxy。浏览器

X5S是专门帮助渗透测试人员查找网站的XSS漏洞的。这里须要先说明的是,该工具不是自动化工具,只是列出哪里可能存在XSS漏洞,因此要使用该 工具,读者须要了解XSS,知道什么样的编码可能致使产生XSS漏洞。该工具只针对有经验的渗透测试人员,由于他们知道如何利用编码漏洞插入恶意脚本。安全

在本文中,咱们能够看到如何使用包含x5s插件的Fiddler,以及如何找到网站中的漏洞。cookie

Fiddler:Fiddler是一款流行的Webdebugging proxy工具,能够监视与记录用户PC与网站之间的流量,便可以经过log文件审查流量,也能够调试基于Java和.NET的HTTP相关的应用程序。固然,Fiddler对全部用户免费。session

Fiddler也支持与浏览器相结合,使其更易使用。支持的浏览器包括IE、GoogleChrome、Safari、MozillaFirefox、Opera等。xss

图1Fiddler截图显示了左侧的流量日志工具

读者能够从这里下载Fiddler。在Fiddler中,能够找到许多标签,用来分析流量与包的行为。本文不涉及如何分析流量的知识,主要是演示得用X5S挖掘XSS漏洞。测试

X5SX5SFiddler中的一个插件,使用fiddler的包记录技术,并经过在每一个请求中添加一条序文(Preamble),来找出包中的哪些请求可能存在XSS漏洞。但用户须要了解XSSencoding编码知识,由于全部和XSS相关的工做都要手动完成。 基本上X5S就是去检测须要用户输入的地方有没有被正确编码。有时Unicode字符转换可能bypass一些安全过滤,因此也会检测这种字符转换。

该插件会查看URL中的请求和响应,以后尝试注入XSSpayloads来肯定是否存在XSS漏洞。若是读者知道如何运行某处的代码,就会发现挖掘XSS漏洞仍是挺容易的。网站

另外,读者须要知道的是,该工具基本上只能检测反射型XSS问题,不能检测基于DOM的XSS漏洞,也不能检测存储型XSS,由于这种漏洞的数据不会在请求和响应的参数中出现。要想检测这两种漏洞,读者须要用额外的工具。编码

要想使用X5S挖掘Web应用程序中的XSS漏洞,能够从如下链接下载X5S并安装,安装以前记得确保已经安装了Fiddler:

下载 X5S

安装完后,启动Fiddler,就能够看到X5S标签了,以下图所示:

图2Fiddler中的X5S标签

能够看到X5S标签已经添加到Fiddler中了。若是读者在本身的Fiddler中看不到Watcher标签,没必要担忧,watcher只是fiddler的另外一个插件,用来进行XSS测试。本文只对X5S感兴趣,只讨论该插件。

配置

在开始挖掘XSS漏洞以前,咱们须要对X5S进行适当配置。首先是进入Fiddler,打开X5S标签,选择顶部的enable复选框,以后在 Preamble文本框输入XSS。这里能够输入任意单词,但要确保不是常见的词,X5S会用该选项注入请求的每一个参数中。接下来选择 “EnableDomain Name Targeting”前面的复选框,并添加域名,这里能够添加全部想要测试的域名,并且能够添加多个,彻底取决于用户。

另外别忘了选中“Request”和“Responses”前面的复选框,并在“AutoInjection Options”下选中全部复选框。

图3X5s配置

下面进行测试用例配置

测试用例配置

X5S的标签下面还有三个子标签,单击第二个“TestCase Configuration”。

在该标签下能够配置X5S的测试用例,即探测字符,包含三种类型:

可转换测试用例:探测字符多是大写的、小写的、以及转换为其它形式。 传统测试用例: XSS注入使用的字符。这些注入字符包括”、’、<和>。读者应该已经知道,若是不通过适当过滤,这些字符多是引发XSS漏洞的主要问题所在。 超长UTF-8测试用例:这种测试用例会注入non-shortestUTF-8编码或传统测试用例,例如ASCII字符<的UTF-8格式为0x3C

选择想要测试的字符。这里能够选择任意多个,或直接全选。以后就能够开始XSS攻击,挖掘注入点了。

图4X5S测试用例配置

为了演示效果,这里我添加了一个包含XSS漏洞的域名。但为了安全起见,本文把网站的域名隐藏了。

下面开始一个页面一个页面地测试全部forms,并在Result标签查看扫描结果。若是显示搜索结果,说明网站可能存在XSS漏洞。单击其中的任意一条扫描结果,能够在下面的文本区域查看细节描述。

图5X5S fiddler中的XSS扫描结果

选择某条结果,下面的文本区域就会显示细节描述,如加上XSS字符后是如何发现preamble的。查看细节描述并分析,描述中的红字部分,显示了页面中preamble的信息。

下一步要作的就是查找疑似包含漏洞的URL。Fiddler左侧记录了以前访问过的URL,咱们要作的就是找出包含漏洞的URL请求。查看记录,找到用灰色高亮的请求地址。

以下图所示,为了安全起见,这里把URL信息隐藏了。

图6包含可疑preamble信息的URL请求

能够看到红框内的URL用亮灰色高亮显示了。右击该条记录,选择copy下的“JustURL”,拷贝该请求URL。

图7 拷贝请求URL

打开浏览器,将该地址拷贝到浏览器,并用本身的XSS payloads替换地址中的preamble字符。读者可使用如下XSS payloads:

<script>alert(1)</script> “><script>alert(1)</script> </style><script>alert(1)</script> “)</script><script>alert(1)</script> “><img src=”a”     onerror=”prompt>

这种状况下有不少XSS payloads可用,上文中的这些payloads若是显示一个Javascript警告框并显示1,就说明执行成功了。由于在payloads中插入 了alert(1),弹出了对话框就表示网站执行了咱们的自定义脚本,也就是说该站存在XSS漏洞。

图8 用Fiddler与X5S找到XSS漏洞

下面测试是否能在alert对话框中显示cookies,只须要将alert(1)替换成alert(document.cookie)便可。

若是在alert对话框中显示了cookies,那说明这是一个比较严重的漏洞,攻击者能够利用该漏洞劫持用户的sessions以劫持用户账户,可能对用户或网站形成损害。

这是利用X5S查找网站反射型XSS漏洞的最简单演示,显示了X5S对渗透测试人员的重要性。

为何渗透测试人员不使用该工具

许多渗透测试人员不推荐该工具,惟一的缘由是当今已经有不少集成了各类扫描技术的扫描工具,这些扫描器能够爬行(crawl)网站的全部URL并列出发现的全部漏洞,大部分扫描器都很棒。而该工具只能检测反射型XSS漏洞。

同时该工具花费的时间也比较长,由于咱们必须手动检测每一个URL,有可能错过某个包含XSS漏洞的页面,就没办法对这个页面进行检测了,所以也有可能在浪费了大量时间后因软件的局限性没有发现漏洞。

可是咱们发现仍有许多渗透测试人员常用这个工具,这彻底取决于测试人员本身的选择。不过我仍建议读者试试这个工具,若是用得顺手,能够继续用该 工具查找WEB应用程序中的XSS漏洞。做为初学者,读者可使用该工具提升关于XSS payloads的相关知识,有时咱们可能要花费数小时才能exploit某个可疑的漏洞。

总结:

X5S是一个很不错的Fiddler插件,能够用做查找XSS漏洞的渗透测试工具。不过只有理解了XSS的基本原理,以及存在多少种方法注入 Javascript代码以后再使用该工具。若是用户不擅长手工XSS测试,该工具无疑只是个鸡肋。但对专业XSS测试人员,使用该工具多是查找web 应用的XSS漏洞的最快方式。经过本文的示例可知,该工具找到了全部可能存在XSS漏洞的可疑热点(hotspots),用户只须要测试这些热点,并确认 哪里能够执行外部脚本,若是能够注入就表示成功了。不然就继续测试,直到测试完全部的XSS payloads。只有有经验的渗透测试人员能确认某个可疑网站是否存在XSS漏洞,由于他们能更好地理解web应用的输出和注入的payloads的行 为反馈。

咱们已经知道使用这个工具以前须要有至关的经验,同时也须要不少时间去打开每一个URL检测其中的全部forms,来检测XSS漏洞是否存在,是一个 很费时间的过程。而这些东西在自动漏洞扫描器中都是自动完成了,使该工具只有少数研究者和测试人员使用,但其仍可做为一个不错的开端。

 

原文地址:http://resources.infosecinstitute.com/using-x5s-with-fiddler-to-find-xss-vulnerabilities/

相关文章
相关标签/搜索