一、概念
XSS攻击
:
跨站脚本攻击
(Cross Site Scripting),它是
Web程序中最常见的漏洞。
XSS攻击
是指攻击者在
网页中嵌入客户端脚本
(例如JavaScript), 当用户
浏览
此网页
时
,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。比如获取用户的Cookie,导航到恶意网站,携带木马等。
二、XSS攻击的危害包括
1、盗取各类用户
帐号
,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
三、XSS漏洞的分类
XSS漏洞按照攻击利用手法的不同,有以下三种类型:
类型A直接威胁用户个体,而类型B和类型C所威胁的对象都是企业级Web应用。
类型A,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
原理图如下:
A给B发了一个恶意的web的URL,B点击并查看该URL,恶意页面中的JavaScript打开一个具有漏洞的HTML页面并安装在B的设备上。A的恶意脚本可以执行B所有操作权限的命令。
类型B,反射式漏洞
攻击流程:
Alice经常浏览B的网站,B站点存有Alice使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息等)。C发现B站点包含反射性的XSS漏洞。于是利用漏洞的URL,并将其冒充为B发送邮件给A。
A登录到B站点后,浏览提供的URL。URL中的
恶意脚本
在A的浏览器中执行,盗窃敏感信息(授权、信用卡、帐号信息等),A的信息就会发送到C的Web网站中
类型C,存储式漏洞
该漏洞是最为广泛而且有可能影响到Web服务器自身安全的漏洞。
黑客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
攻击流程:
B有一个Web站点,该站点允许用户发布信息/浏览已发布的信息
C注意到B站点具有类型C的XSS漏洞。
C发布一个热点信息,吸引其它用户纷纷阅读。
B或者是任何的其他人浏览该信息,其会话cookies或者其它信息将被C盗走。
四、如何测试XSS漏洞
方法一:查看代码,查找关键的变量,客户端将数据传送给Web 服务端一般通过三种方式uerystring, Form表单,以及cookie.
例如:在ASP的程序中,通过Request对象获取客户端的变量
<%
strUserCode = Request.QueryString(“code”);
strUser = Request.Form(“USER”);
strID = Request.Cookies(“ID”);
%>
假如变量没有经过htmlEncode处理, 那么这个变量就存在一个XSS漏洞
方法二:准备测试脚本
"/>
<
script
>
alert(document.cookie)
script
>