Web安全测试之——XSS漏洞

一、概念
XSS攻击 跨站脚本攻击 (Cross Site Scripting),它是 Web程序中最常见的漏洞。
XSS攻击 是指攻击者在 网页中嵌入客户端脚本 (例如JavaScript), 当用户 浏览 此网页 ,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。比如获取用户的Cookie,导航到恶意网站,携带木马等。
二、XSS攻击的危害包括
1、盗取各类用户 帐号 ,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
三、XSS漏洞的分类
XSS漏洞按照攻击利用手法的不同,有以下三种类型:
类型A直接威胁用户个体,而类型B和类型C所威胁的对象都是企业级Web应用。
类型A,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
原理图如下:
Web安全测试之——XSS漏洞_第1张图片

     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 >

你可能感兴趣的:(安全测试,xss,网络安全)