XSS是指攻击者在网页中嵌入恶意脚本,通常是JavaScript编写的恶意代码,当用户使用浏览器浏览被嵌入恶意代码的网页时,恶意代码将会在用户的浏览器上执行。因而,XSS与CSRF一样,同属于针对客户端的攻击,这与SQL注入、命令执行、文件包含等针对服务器端的攻击方式有很大不同。
在吴翰清的《白帽子讲Web安全》一书中,将黑客技术的发展划分为三个阶段:
在第一阶段,黑客们的攻击目标主要是网络、操作系统以及软件。后来随着防火墙、ACL 技术的兴起,以及操作系统自身安全性的不断完善,这种攻击方式已越来越少。
在第二阶段,黑客们的攻击目标主要是Web服务器端,典型的方法就是SQL注入。虽然SQL注入漏洞至今仍然是Web 安全领域中的一个重要组成部分,但含有这种漏洞的网站也是越来越少了。
在第三阶段,黑客们的攻击目标主要是客户端,典型的方法就是XSS、CSRF攻击。
至于今后的发展方向,移动互联网等则无疑是一个重点领域。但起码在很长一段时间内,XSS都会是一种非常重要的攻击方式,其危害主要体现在以下几个方面:
- 盗取用户cookie;
- 修改网页内容;
- 网站挂马;
- 利用网站重定向;
- XSS蠕虫。
XSS攻击分为反射型和存储型两种不同的分类,其基本原理已在之前博文中有过介绍,可供参考:
反射型XSS: http://yttitan.blog.51cto.com/70821/1571910
存储型XSS: http://yttitan.blog.51cto.com/70821/1572772
接下来我们将分别来分析DVWA中几种不同级别的XSS测试页面。需要说明的是,由于XSS是针对客户端浏览器的攻击,而目前的很多浏览器都已经自带了XSS防御功能,因而建议在一台安装有XP或2003系统的虚拟机中,通过IE6浏览器去访问DVWA,否则将无法出现预期的实验效果。