利用XSSDetect自动检测跨站脚本漏洞

 
   | |

导读:跨站脚本攻击XSS是Web安全中最常见的漏洞,本文将向读者介绍一种检测脚本攻击漏洞的自动化工具——XSSDetect。此外在本文中,作者还介绍了跨站脚本攻击XSS。

关键词:跨站脚本攻击 XSS Web安全 漏洞 脚本攻击漏洞 XSSDetect

 
正在加载数据...

  跨站脚本攻击XSS是Web安全中最常见的漏洞,本文将向读者介绍一种检测脚本攻击漏洞的自动化工具——XSSDetect。但是在正式介绍该工具之前,我们还是先来认识一下跨站脚本攻击XSS吧。

  一、关于跨站脚本攻击XSS

  最开始的时候,跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,所以后来人们便把跨站脚本攻击缩写为XSS以示区别。

  跨站脚本攻击(也称为XSS)能够利用网站的漏洞窃取用户的个人信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后,如果没有对用户的输入进行严格的过滤的话,就会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含HTML和javascript的帖子,如果用户A发表了一篇包含恶意脚本的帖子,那么用户B在浏览这篇帖子时,恶意脚本就会执行,从而盗取用户B的会话信息。

  XSS不仅常见,而且危害颇深。为了搜集用户信息,攻击者通常会在有漏洞的程序中插入JavaScript、VBScript、ActiveX或Flash以欺骗用户。用户一旦中招,就会导致用户帐户被盗,用户设置被篡改,cookie失窃,等等。

  二、使用XSSDetect检测跨站脚本XSS漏洞

  上面我们对跨站脚本攻击(XSS)漏洞及其危害做了简单介绍。接下来,我们看看如何使用自动化工具来检测跨站点脚本漏洞。

  作为Web应用程序中最常见的弱点的跨站脚本攻击漏洞,我们发现的越早越好,最好能在开发初期就能将它们消灭在萌芽状态。古人云,工欲善其事,必先利其器。要想发现XSS漏洞的话,使用手工方式当然未尝不可,但是效率太低,我们今天要为大家介绍一款自动化的工具来检测XSS漏洞,这是一款微软公司为开发人员提供针对跨站脚本攻击的静态分析工具:XSSDetect,当然,它对安全渗透测试人员也也很有用。

  XSSDetect是精简版的.NET代码分析工具,原本供微软内部人员寻找应用软件的安全漏洞之用,大概是受开源思想影响,现在已经可以免费下载了。XSSDetect下载地址http://www.microsoft.com/Downloads/details.aspx?FamilyID=19a9e348-bdb9-45b3-a1b7-44ccdcb7cfbe&displaylang=en

  XSSDetect实际上是一个Visual Studio插件,它可以识别ASP.NET Web应用程序中的非持久性的XSS漏洞。同时,XSSDetect也是一种静态分析工具,它使用微软的CCI库进行分析。插件FxCop和XSSDetect都使用了CCI程序库,但是XSSDetect要比FxCop插件更大,因为XSSDetect利用过程间数据流分析技术检测XSS安全漏洞。它使用了源(起点,输入的入口点)和汇(终点,输出的方法)的思想来检测可能引起XSS安全漏洞的数据通路。下面列出了一些源和汇:

XSSDetect

  XSSDetect工作时,会为二进制文件建立一个庞大的数据图,并标识这些源和汇的数据通路。只要发现了使用编码库(例如AntiXss库)的数据通路,就将其排除在结果之外。要想查看更多源、汇和编码规则的信息,可以浏览%PROGRAMFILES%\Microsoft\XSSDetect\Config。下面我们来考察一个能够被XSSDetect检测到漏洞的代码。

//在.aspx页面中的代码//将隐藏字段的值写回该页Response.Write(hidHiddenInput.Value);//设置链接按钮的文本LinkButton1.Text = String.Format(txtInput.Text, "LinkButton1.Text");//HTML表对象Table1.Caption = String.Format(txtInput.Text, "Table1.Caption");Table1.Rows[0].Cells[0].Text = String.Format(txtInput.Text, "Table1.Rows[0].Cells[0].Text");//Literal对象的文本Literal1.Text = String.Format(txtInput.Text, "Literal.Text");//复选框和标签的文字CheckBox1.Text = String.Format(txtInput.Text, "CheckBox1.Text");Label1.Text = String.Format(txtInput.Text, "Label1.Text")//XSSstring strInput;protected void Page_Load(object sender, EventArgs e){strInput = Request.QueryString["message"];this.SetMessage(strInput);}private void SetMessage(string input) {Label1.Text = input;}
 

  XSSDetect可以检测出ASP.NET代码中XSS安全漏洞的很多变体。XSSDetect目前适用于Visual Studio 2005,将来还可以在Visual Studio 2008上使用。安装后进入工具菜单,选择XSS detect菜单项,这时出现如下所示的窗口。

         XSSDetect的界面

                                 XSSDetect的界面

  我们只要单击绿色的“播放”/“运行”按钮(就是工具栏中左边第一个按钮),它便开始分析。请确保已经安装Visual Studio 2005和所有参考资料,因为XSSDetect将汇编源代码来分析二进制文件。XSSDetect的另一个特性是单击帮助图标即可打开帮助文件,从这里可以了解到更多的信息。

  三、小结

  跨站脚本攻击即XSS是Web安全中最常见的漏洞,本文首先对该漏洞做了简单解释,然后重点向读者介绍一种检测脚本攻击漏洞的自动化工具——XSSDetect。我们不仅介绍了它的基本原理,还以一个代码示例进行了演示。希望本文对您的学习能够有所帮助。

原文出处:http://netsecurity.51cto.com/art/200811/96379.htm
 
来源:51cto    作者:宇文     
 
 
 
 
 

应用攻击(缓冲区溢出/跨站脚本)

 
跨站点脚本XSS攻击是当今主要的攻击,它利用Web站点的漏洞并使用浏览器来窃取cookie。本文讲解了跨站点脚本攻击的原理以及保护企业Web应用的方法……
 
问:OSsurance Desktop能够有效防止服务器崩溃吗?因为据说这个产品支持Windows Server 2000和2003。他们声称能够防止缓冲器的溢出。但是这样能够防止服务器崩溃吗?
 
用碰撞时会爆炸的油箱制造汽车可不是一个好主意,所以汽车厂商都不会在他们的产品中使用有这样的部件。软件厂商可以从中汲取教训,并用于解决内部的安全炸弹:缓冲区溢出。
 
缓冲区溢出是黑客们喜欢利用的手段之一。绝大多数微软提供的补丁修复程序并未检查缓冲区问题,而应用程序的内部开发是怎样的呢?
 
缓冲区溢出就像个给软件安全捣蛋的男孩。围绕缓冲区溢出的讨论一直无所不在。缓冲区溢出攻击已进化了多年,产生了一系列攻击手段,新的更强大的缓冲区溢出攻击已经出现……

热门技术手册排行

 

虚拟专用网络 VPN(Virtual Private Network )能通过公用网络Internet建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。VPN是对企业内部网的扩展,它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。许多公司使用VPN向公司外部的员工提供企业网络接入。本手册将围绕VPN进行全方位的讲解。

 

“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。

 

虚拟化是数据中心的流行技术,它起源于20世纪60年代。它是把昂贵的计算机资源的利用最大化的方式。典型的服务器的利用率不足40%,虚拟化可以更有效地利用技术资源,并节约固定费用。虚拟化的最大优势是,它允许管理员从中央区域为个人电脑和客户设备提供软件。虚拟化不需要管理员对一般任务进行分别考虑。服务器的关机可以带动多用户的关机。

 

黑客策略和技术一直都在进步。黑客还在继续开发新的攻击工具和黑客方法,来恶意访问系统并攻击你的网络,这样企业在开发和采取恰当的方法防御黑客的攻击就变得非常困难。《黑客攻击技术和策略》的技术指南将介绍黑客的内心想法,并帮助你理解恶意攻击者的动机,也提供了一些黑客攻击具体信息的方式,采用的方法以及企业应该采用的保护敏感数据的方法。这里将会提供大量黑客技术和策路的信息,例如允许黑客获取网络系统或者文件访问的系统特征探测。

 

假如你正在寻找一个漏洞扫描器,你可能已经遇到了大量的非常昂贵的商业解决方案,这些方案都有一长串的性能和优点。不幸的是,如果你和我们之中大部分人的情况一样的话,你一般根本没有运行这些奇特的系统的预算。你可能已经退而求其次,转向考虑使用像SATAN或Saint的免费工具。然而,你可能觉得使用这些工具是一种折衷的办法,因为它们的性能设置不能与商业解决方案相比。这时候你就应该学会使用Nessus! 2005年12月Nessus背后的公司Tenable Network Security Inc.发布了Nessus 3,引进了对该产品的全面检查。在写这篇文章时候的最近版本,Nessus 3.2是在2008年3月发布的。Nessus现在可以在多种平台上使用,包括Windows、各种版本的Linux、FreeBSD、Solaris和Mac OS X。以下是这次Nessus3中的重大变化: 下面将介绍如何使用Nessus工具以及Nessus工具的更新。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录