缺陷标题 testfire首页→搜索框存在XSS攻击风险。
测试平台与浏览器 Windows 7(64 bit)+IE 11。
测试步骤
(1)打开testfire网站http://demo.testfire.net。
(2)在搜索框输入 cript alert("test") /script 。
(3)单击Go按钮进行搜索。
期望结果 返回正常,无弹出对话框。
实际结果 弹出XSS攻击成功对话框,显示test信息,如图1-20所示。
图1-20 弹出XSS攻击成功对话框
XSS是一种经常出现在Web应用中的计算机安全漏洞,它允许恶意Web用户将代码植入提供给其他用户使用的页面中。这些代码包括HTML代码和客户端脚本。
在2007年OWASP所统计的所有安全威胁中,跨站脚本攻击占22%,高居所有Web威胁之首。2013年,XSS攻击排名第三。
XSS攻击的危害包括以下几方面。
(1)盗取各类用户账号,如机器登录账号、用户网银账号、各类管理员账号。
(2)控制企业数据,包括读取、篡改、添加、删除企业敏感数据。
(3)盗窃企业重要的具有商业价值的资料。
(4)非法转账。
(5)强制发送电子邮件。
(6)网站挂马。
(7)控制受害者机器向其他网站发起攻击。
用户在浏览网站、使用即时通信软件、阅读电子邮件时,通常会单击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产生一个包含恶意代码的页面,而这个页面和那个网站应当生成的合法页面高度类似。许多流行的留言本和论坛程序允许用户发表包含HTML和JavaScript的帖子。假设用户甲发表了一篇包含恶意脚本的帖子,那么用户乙在浏览这篇帖子时,恶意脚本就会执行,盗取用户乙的session信息。
为了搜集用户信息,攻击者通常会在有漏洞的程序中插入JavaScript、VBScript、ActiveX或Flash以欺骗用户。一旦得手,他们可以盗取用户账户、修改用户设置、盗取/污染Cookie、做虚假广告等。每天都有大量的XSS攻击的恶意代码出现。
随着AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)技术的普遍应用,XSS的攻击危害将被放大。使用AJAX的最大优点是可以不用更新整个页面来维护数据,Web应用可以更迅速地响应用户请求。AJAX会处理来自Web服务器及源自第三方的丰富信息,为XSS攻击提供了良好的机会。AJAX应用架构会泄露更多应用的细节,如函数和变量名称、函数参数及返回类型、数据类型及有效范围等。AJAX应用架构还有着比传统架构更多的应用输入,这也增加了可被攻击的点。