沈曉萍 谷廣兵 張厚君
摘要:Web應(yīng)用安全是互聯(lián)網(wǎng)安全的最大威脅來(lái)源之一,針對(duì)現(xiàn)今Web應(yīng)用安全主要的攻擊手段分布情況,設(shè)計(jì)Web應(yīng)用安全課程的實(shí)驗(yàn)任務(wù)可有效避免Web安全實(shí)驗(yàn)對(duì)網(wǎng)絡(luò)造成的攻擊和威脅。本文主要介紹了DVWA實(shí)驗(yàn)平臺(tái)的搭建與應(yīng)用,以SQL注入漏洞為例,展示了DVWA平臺(tái)的使用方法,該實(shí)驗(yàn)平臺(tái)采用知識(shí)點(diǎn)與實(shí)驗(yàn)任務(wù)緊密結(jié)合的方式,可操作性強(qiáng),項(xiàng)目設(shè)計(jì)由易到難、從淺入深,為高校開設(shè)Web應(yīng)用安全類課程提供了參考方案。
關(guān)鍵詞:DVWA;Web應(yīng)用安全;SQL注入
中圖分類號(hào):G434? 文獻(xiàn)標(biāo)識(shí)碼:A? 論文編號(hào):1674-2117(2021)010-0087-05
引言
在互聯(lián)網(wǎng)時(shí)代,各種應(yīng)用開始架設(shè)到Web平臺(tái)上,基于Web環(huán)境的互聯(lián)網(wǎng)應(yīng)用已無(wú)處不在,在Web應(yīng)用高速發(fā)展的同時(shí),Web安全同樣面臨著巨大的挑戰(zhàn)。黑客利用網(wǎng)絡(luò)系統(tǒng)漏洞和Web服務(wù)程序漏洞獲得服務(wù)器的控制權(quán)限,從而篡改網(wǎng)頁(yè),植入后門,網(wǎng)站掛馬,竊取數(shù)據(jù)等。阿里云發(fā)布的《2019上半年Web應(yīng)用安全報(bào)告》指出,Web應(yīng)用安全依然是互聯(lián)網(wǎng)安全的最大威脅來(lái)源之一,其主要攻擊手段分布情況如圖1所示。
2016年11月7日,為了保障網(wǎng)絡(luò)安全,維護(hù)網(wǎng)絡(luò)空間主權(quán)和國(guó)家安全、社會(huì)公利益,保護(hù)公民、法人和其他組織的合法權(quán)益,促進(jìn)社會(huì)信息化健康發(fā)展,第十二屆全國(guó)人民代表大會(huì)常務(wù)委員會(huì)第二十四次會(huì)議通過(guò)了《中華人民共和國(guó)網(wǎng)絡(luò)安全法》,全面規(guī)范了網(wǎng)絡(luò)空間安全管理等問(wèn)題,同時(shí)也指出了支持培養(yǎng)網(wǎng)絡(luò)安全人才,支持企業(yè)和高等學(xué)校、職業(yè)學(xué)校等教育培訓(xùn)機(jī)構(gòu)開展網(wǎng)絡(luò)安全相關(guān)教育與培訓(xùn),采取多種方式培養(yǎng)網(wǎng)絡(luò)安全人才,促進(jìn)網(wǎng)絡(luò)安全人才交流。
Web應(yīng)用安全課程設(shè)計(jì)
Web應(yīng)用安全是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、信息安全等專業(yè)的學(xué)習(xí)方向之一。很多高職和本科院校都開設(shè)了Web應(yīng)用安全的相關(guān)課程。Web應(yīng)用安全是一門實(shí)踐性較強(qiáng)的課程,在教學(xué)過(guò)程中需引入大量的實(shí)驗(yàn)任務(wù),提高學(xué)生實(shí)操動(dòng)手能力和實(shí)際問(wèn)題解決能力,幫助學(xué)生更好地理解安全攻擊原理和技術(shù),并掌握基本的防御技能。
在Web應(yīng)用安全課程的開設(shè)過(guò)程中,參考開放式Web應(yīng)用程序安全項(xiàng)目組織(Open Web Application Security Project,OWASP)發(fā)布的2017版OWASP top10(OWASP十大應(yīng)用安全風(fēng)險(xiǎn)),結(jié)合阿里云發(fā)布的《2019上半年Web應(yīng)用安全報(bào)告》,將常見的SQL注入漏洞、XSS跨站腳本攻擊、文件上傳漏洞、命令執(zhí)行漏洞等作為主要教學(xué)內(nèi)容,設(shè)計(jì)操作性較強(qiáng)的實(shí)驗(yàn)案例和相對(duì)成熟的實(shí)驗(yàn)項(xiàng)目。在設(shè)計(jì)實(shí)驗(yàn)方案的過(guò)程中,一些實(shí)驗(yàn)項(xiàng)目具有一定的攻擊性和破壞性,對(duì)系統(tǒng)的環(huán)境要求比較敏感,在真實(shí)復(fù)雜的網(wǎng)絡(luò)環(huán)境下,一方面很難營(yíng)造出教學(xué)場(chǎng)景,另一方面隨意的攻擊入侵網(wǎng)站也是不被允許的,因此,課程教學(xué)需要相對(duì)安全且穩(wěn)定的實(shí)驗(yàn)操作平臺(tái)。
DVWA平臺(tái)簡(jiǎn)介
DVWA(Dema Vulnerable Web Application是基于PHP/MySQL環(huán)境編寫的,用來(lái)進(jìn)行安全脆弱性鑒定的Web應(yīng)用,幫助網(wǎng)絡(luò)安全專業(yè)人員在合法的環(huán)境中測(cè)試其專業(yè)技能。同樣,DVWA為我們提供了一個(gè)合法的實(shí)驗(yàn)平臺(tái),幫助教師和學(xué)生在穩(wěn)定的實(shí)驗(yàn)環(huán)境中完成常見Web安全漏洞的教學(xué)演練。DVWA共包含了十個(gè)模塊,如表1所示。DVWA提供了四種安全級(jí)別——Low,Medium,High,Impossible,難度依次從易到難,提供了不同等級(jí)的漏洞挖掘難易度。
DVWA環(huán)境搭建
DVWA平臺(tái)既可搭建在Windows系統(tǒng)下,也可搭建于Linux系統(tǒng)中,可根據(jù)學(xué)生的基礎(chǔ)情況選擇不同的操作系統(tǒng)。下面介紹在Windows環(huán)境下搭建DVWA環(huán)境。
(1)首先要下載和安裝phpStudy,并啟動(dòng)Apache和MySQL兩項(xiàng)服務(wù),如圖2所示。單擊【其他選項(xiàng)菜單】→【網(wǎng)站根目錄】,打開phpStudy默認(rèn)的網(wǎng)站根目錄,通常為D:\phpStudy\PHPTutorial\WWW,該默認(rèn)目錄可在常規(guī)設(shè)置中進(jìn)行更改。
(2)布置DVWA平臺(tái)。從github上下載源碼,將下載的DVWA-master.zip進(jìn)行解壓,為后續(xù)實(shí)驗(yàn)過(guò)程中訪問(wèn)便捷,將解壓后的文件夾名稱修改為dvwa。將dvwa文件移動(dòng)到步驟1中的網(wǎng)站根目錄,如下頁(yè)圖3所示。將dvwa/config/config.inc.php.dist的文件名修改為config.inc.php,然后用記事本打開,修改數(shù)據(jù)庫(kù)密碼,保存退出,如圖4所示。
(3)配置完成后,在瀏覽器輸入http://127.0.0.1/dvwa/,創(chuàng)建或重置數(shù)據(jù)庫(kù),就會(huì)出現(xiàn)登錄界面,輸入默認(rèn)用戶名admin,輸入密碼password,即可登錄,登錄界面如圖5所示。
SQL注入漏洞實(shí)例
搭建完DVWA后,以常見的SQL注入漏洞為例,結(jié)合Kali Linux中的Sqlmap工具進(jìn)行SQL注入。主要步驟為:
(1)手工判斷是否存在注入點(diǎn)。在Kali Linux中啟動(dòng)瀏覽器,打開DVWA實(shí)驗(yàn)平臺(tái),假設(shè)DVWA平臺(tái)所在服務(wù)器的地址為:192.168.1.3,此時(shí)地址欄中的訪問(wèn)地址為http://192.168.1.3/dvwa,輸入用戶名和密碼,設(shè)置安全級(jí)別(DVWA Security)為“l(fā)ow”,選擇“SQL Injection”模塊,如圖6所示。此時(shí),可通過(guò)輸入各種符號(hào)(如單引號(hào)、雙引號(hào)等)進(jìn)行測(cè)試,判斷是否存在注入點(diǎn),并嘗試判斷是字符型注入還是數(shù)值型注入,嘗試輸入單引號(hào),得到報(bào)錯(cuò)信息,查詢框中輸入1 or 1=1 #,顯示了表中所有的查詢結(jié)果(如下頁(yè)圖7),說(shuō)明存在字符型SQL注入漏洞。
(2)使用Sqlmap工具進(jìn)行注入測(cè)試。觀察該查詢語(yǔ)句提交的地址為:“http://192.168.1.3/dvwa/vulnerabilities/sqli/?id=&Submit=Submit#”。同時(shí),使用WebScarab工具進(jìn)行抓包攔截,在請(qǐng)求頭中,查找到當(dāng)前瀏覽器的Cookie值為“security=low;PHPSESSID=tjrjt4peiqlhhp05jsp6e79o94”,如下頁(yè)圖8所示。
使用Sqlmap工具進(jìn)行測(cè)試,打開終端,輸入如下頁(yè)圖9所示的命令,經(jīng)測(cè)試后結(jié)果如91頁(yè)圖10所示。
(3)獲取數(shù)據(jù)庫(kù)相關(guān)信息。
獲取數(shù)據(jù)庫(kù)名稱:通過(guò)添加參數(shù)—dbs,得到數(shù)據(jù)庫(kù)名稱為dvwa。
獲取數(shù)據(jù)庫(kù)的表名:使用參數(shù)—D dvwa指定數(shù)據(jù)庫(kù)為dvwa,通過(guò)添加參數(shù)—tables查看該數(shù)據(jù)庫(kù)的所有表,觀察到數(shù)據(jù)庫(kù)dvwa包含表users和guestbook。
獲取表中的字段名:使用參數(shù)-D dvwa-T users指定查看dvwa中的表users,通過(guò)添加參數(shù)—columns查看表中的所有字段信息。
獲取字段信息:使用參數(shù)-D dvwa-T users-C user,password指定查看的字段,用—dump存儲(chǔ)數(shù)據(jù)表項(xiàng)。結(jié)果如下頁(yè)圖11所示。
此時(shí),已經(jīng)得到了user和password兩個(gè)字段的信息,這里的password采用MD5進(jìn)行了加密,括號(hào)里的信息是已經(jīng)解密后得到的值。
DVWA平臺(tái)中提供了源代碼查看功能,通過(guò)頁(yè)面中的【View Source】按鈕,可以查看該頁(yè)面的PHP代碼,并提供了四種不同安全級(jí)別的代碼對(duì)比。
結(jié)語(yǔ)
Web應(yīng)用安全課程注重實(shí)踐操作,使用DVWA作為實(shí)驗(yàn)平臺(tái),可圍繞知識(shí)點(diǎn)設(shè)計(jì)實(shí)驗(yàn)任務(wù),項(xiàng)目設(shè)計(jì)可根據(jù)不同安全級(jí)別,由易到難,由淺入深,循序漸進(jìn),從信息搜集到漏洞掃描、漏洞挖掘、分析源碼、漏洞防護(hù),再到進(jìn)一步漏洞挖掘,循環(huán)往復(fù),不斷修復(fù)漏洞,增強(qiáng)Web的安全性。從開設(shè)實(shí)驗(yàn)的完成情況來(lái)看,絕大多數(shù)學(xué)生都能夠順利地完成實(shí)驗(yàn)任務(wù),通過(guò)設(shè)計(jì)任務(wù)拓展,以滿足不同層次學(xué)生的需求,部分學(xué)生在完成基礎(chǔ)任務(wù)的前提下,能完成任務(wù)的拓展提升。使用DVWA平臺(tái),采用知識(shí)點(diǎn)與實(shí)驗(yàn)任務(wù)緊密結(jié)合的方式,可操作性強(qiáng),充分調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性,同時(shí),提供了合法、安全的實(shí)驗(yàn)環(huán)境,避免了Web安全實(shí)驗(yàn)對(duì)網(wǎng)絡(luò)造成的攻擊和威脅,該實(shí)驗(yàn)平臺(tái)為高校開設(shè)Web應(yīng)用安全類課程提供了較完整的課程實(shí)驗(yàn)解決方案。
參考文獻(xiàn):
[1]阿里云安全團(tuán)隊(duì).2019年上半年Web應(yīng)用安全報(bào)告[EB/OL].(2019-07-12)[2019-12-20].https://www.secpulse.com/archives/109268.html.
[2]網(wǎng)絡(luò)安全法.全國(guó)人民代表大會(huì)常務(wù)委員會(huì)[EB/OL].中國(guó)人大網(wǎng),2016-11-7.
[3]鄧若伊,余夢(mèng)瓏,丁藝,董天策,等.以法制保障網(wǎng)絡(luò)空間安全構(gòu)筑網(wǎng)絡(luò)強(qiáng)國(guó)——《網(wǎng)絡(luò)安全法》和《國(guó)家網(wǎng)絡(luò)空間安全戰(zhàn)略》解讀[J].電子政務(wù),2017(02):2-35.
[4]陳云志,宣樂飛,郝阜平.Web滲透與防御[M].北京:電子工業(yè)出版社,2019:108-116.
[5]杜曄,陳賀男,黎妹紅,等.Web應(yīng)用安全實(shí)驗(yàn)教學(xué)探討與案例評(píng)析[J].計(jì)算機(jī)教育,2015(19):17-19.
[6]容湘萍.基于Kali_Linux的Web滲透測(cè)試課程教學(xué)設(shè)計(jì)——以SQL注入為例[J].電子技術(shù)與軟件工程,2019(14):193-195.
[7]Lei Wang.One sentence Trojan horse virus attack and defense[C].Proceedings of 2020 International Conference on Artificial Intelligence and Communication Technology(AICT 2020).Computer Science and Electronic Technology International Society:Clausius Scientific Press,2020-03.
[8]劉金源.常見的Web安全漏洞及防御技術(shù)[J].網(wǎng)絡(luò)安全和信息化,2020(08):123-124.
作者簡(jiǎn)介:沈曉萍(1982—),女,漢族,浙江平湖人,講師,碩士。研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、信息安全技術(shù)、物聯(lián)網(wǎng)工程。