使用Fiddler插件X5S寻找XSS漏洞

来源:互联网 发布:有限元法的软件 编辑:程序博客网 时间:2024/04/30 12:54

跨站脚本是 OWASP 十大威胁中的一个。这种漏洞允许攻击者注入恶意代码。应用程序中任何用于可输入的位置,都有可能发现这种问题。如果网站存在XSS漏洞,攻击者就可以向常规用户注入恶意脚本。XSS漏洞可以用于偷取会话id,也可以劫持处于活动状态的用户会话。

网站开发人员必须测试网站是否容易受到此类攻击。他们需要验证输入,处理输出。为了找到网站上的XSS漏洞,他们也会使用各种可用的扫描器去发现XSS或者其他漏洞。目前已经有许多自动的和手工的工具,可以用于找到这些漏洞。X5S同这些工具类似,它是web调试代理器Fiddler的一个插件。
X5S转为渗透测试人员开发,用于查找XSS漏洞。有一件很重要的事情需要注意,X5S并非一个自动化的XSS发现工具,它只列出可能存在XSS攻击的位置。所以你需要非常了解XSS,并知道编码问题是如何导致XSS攻击的。这个工具是为经验丰富的渗透测试人员准备的,因为通常他们知道如何利用编码完成客户端脚本代码注 
接下来,我们会介绍如何使用X5S寻找网站中可能存在的XSS漏洞。
 
Fiddler: Fiddler 是一款流行的web代理调试工具,它可以监视和记录你的浏览器与网站之间的通信流量。你可以通过对应的日志文件分析流量。这个程序也可以调试分析使用HTTP的Java和.NET应用程序。Fiddler对所有人都免费。
 
Fiddler支持的浏览器有Internet Explorer, Google Chrome,Safari,Mozilla Firefox,Opera,等。而且其使用很简单。
 
Fiddler下载地址: http://www.fiddler2.com/fiddler2/
 
Fidder中有许多标签(tabs),它们可以用于分析流量和数据包行为。这里,我不会去解释如何分析流量,因为本文的重点是使用X5S查找XSS漏洞。
 
X5S: 基于Fiddler开发的插件,它使用fiddler的包记录机制,并尝试在请求中添加代表性的字符,以便找出存在跨站攻击的请求。但是你需要很好的理解跨站脚本和编码问题。X5S需要你手动完成与跨站脚本有关的事情。
 
基本上,X5S会探测那些没有对用户输入进行安全编码的位置。有时候,Unicode字符转换可能会绕过安全过滤,所有也需要检测。
 
通过查看URLS对应的请求和响应,并注入XSS载荷,以便确认XSS是否存在。现在轮到你来实战才华了,如果你知道如何控制代码运行的位置,那么你将很容易找到XSS漏洞。
 
还有一件事我要说明一下,这个工具只能用于反射型XSS问题,无法探测DOM类型的XSS漏洞。当然它也没有能力去获取存储型XSS漏洞,因为这些数据并不存在于请求和响应的参数中。针对这两种XSS漏洞,你可能需要额外的工作。
 
首先下载fiddler安装,然后再安装X5S。
 
注意: X5S 根据请求和相应头,在参数中注入代表性的内容,所以它支持 Get 和
Post 请求。
 
X5S下载地址: http://xss.codeplex.com/releases/43170/download/115610

如上所见,X5S出现在fiddler的tab标签中。如果你没有在你的fiddler中看见watcher,不要担心。它是fiddler的另一款用于XSS测试的插件。我们此处仅关心的是X5S,因此要集中精力。
配置
在我们开始寻找XSS漏洞前,我们需要合理配置X5S。
首先,切换到fiddler的X5S 标签,选择最上方的enable复选框。在Preamble 处输入 XSS,此处可以输入任何单词,记住这里的词不要太普通。它将被X5S用于注入请求参数。
然后,选择Enable Domain Name Targeting复选框,添加域名,这里就是用于测试XSS的网站所属域名,可以添加多个域名。
不要忘记选择"Requests"和"Responses",以及勾选Auto-Injection Options处的所有选项。

大小写配置
X5S下有三个tab窗口,选择"Test case configuration",此处我们将设置X5S的字符探针,有下面三种情形:

transformation
多数时候,输入是良性的,这里的字符可以用于快速发现应用程序是否按照对应的方式转换字符.  如果被探测到,则可进行进一步的XSS攻击测试.
例如, 使用U+FF1C全角型小于符号代替 ASCII '<',结合词 'script' 插入到HTML中'.

Traditional Test Case
传统的XSS测试,通常注入ASCII字符 >.  如果输出时未进行安全编码,你也许可以控制HTML,注入脚本.

Overlong UTF-8 Test Case
超长 UTF-8 测试,例如: U+003C代替ASCII的'<' .  如果这个字符被转换为短字符,如果输出没有被安全编码,你也许可以控制HTML,注入脚本.

选择一条结果,下面的窗口将会显示preamble与XSS字符串。如红色部分所示。查看并进行详细的分析。然后复制对应的URL进行XSS测试。例如:
<script>alert(1)</script> or <script>alert(1)</script> in case alert is being filtered
“><script>alert(1)</script> or “><script>alert(1)</script>
</style><script>alert(1)</script>
“)</script><script>alert(1)</script>
“><img src=”a” onerror=”prompt”>
为何渗透测试人员不使用这个工具 ?
很多渗透测试人员不推荐使用这个工具,原因是已有很多web扫描器能够检测XSS漏洞。这些扫描器可以爬行每个链接,并列举出所有已知的漏洞。其中的大部分扫描器都工作的很好。但是这个工具仅能探测反射型XSS。
我们还需要花费很多的时间,手动去验证 这些URL。在这个过程中,我们可能会遗漏XSS漏洞。花费很多时间后,可能因为软件的限制,结果我们没有找到漏洞。
当然,你可能也会看到,有些渗透测试人员会常常用到这个工具。这取决与测试者的选择。我推荐你试试这个工具。有些时候它表现的不错。作为初学者,你可以使用这个工具来提高自己XSS相关的知识。

========================================================================

XSS漏洞扫描器的原理及方法

Web漏洞扫描最常用的方法是模拟攻击技术,通过向Web服务器提交精心构造的攻击向量,记录下服务器返回的响应,从响应中寻找漏洞可能存在的特征标记,如果发现特征标记则认为Web应用程序存在相应漏洞。
XSS漏洞的基本检测原理与前面所述相同。
考虑一种较简单的场景:
GET /username.php?name=jack HTTP/1.1
Host:www.abc.com
...(省略了HTTP请求头一些非关键字段)
服务器对提交的变量没做过滤,返回的响应报文:
HTTP/1.1 200 OK
Date: Fri,01 Jul 2011 00:38:55 GMT
Server:BWS/1.0
Content-Length:48
Content-Type:text/html;charset=gb2312
Cache-Control:private
Connection:Keep-Alive

<HTML><BODY>
    Welcome, jack !
</BODY></HTML>

在这种情况下,如果用户恶意构造一个请求:
GET /username.php?name=<script>alert("XSS");</script> HTTP/1.1
Host:www.abc.com
...(省略了HTTP请求头一些非关键字段)
服务器返回响应报文:
HTTP/1.1 200 OK
Date:Fri,01 Jul 2011 00:38:55 GMT
Server:BWS/1.0
Content-Length:75
Content-Type:text/html;charset=gb2312
Cache-Control:private
Connection:Keep-Alive

<HTML><BODY>
    Welcome,<script>alert("XSS");</script>!
</BODY></HTML>
页面里的script脚本会在浏览器里执行,如果换成其它目的的恶意脚本,后果会不堪设想。



检测流程说明:
1. 从爬虫的结果数据库里提取检测点: 一些表单或URL
2. 从测试脚本数据库里提取测试脚本,结合检测点构造出攻击向量;
3. 发送攻击向量到远程服务器;
4. 收到响应后,分析响应,与验证匹配数据数据库相匹配;
5. 通过验证后,则记录下漏洞相关信息,把结果保存在漏洞结果数据库中;
6. 未通过验证,进行下一组测试,
注: XSS的测试效果很大程度上由测试脚本的质量决定,本扫描系统的脚本为OWASP所推荐的测试脚本。

========================================================================

[原文]: http://resources.infosecinstitute.com/using-x5s-with-fiddler-to-find-xss-vulnerabilities/
http://wenku.it168.com/d_0001306467.shtml

0 0
原创粉丝点击