秦文生
摘要:搭建一套基于PHP的Linux Web靶機(jī)系統(tǒng),對(duì)互聯(lián)網(wǎng)上的典型安全場(chǎng)景進(jìn)行仿真,可以使原本在實(shí)驗(yàn)室難以開(kāi)展的實(shí)驗(yàn)得以進(jìn)行。該系統(tǒng)的構(gòu)建包含了“SQL注入-進(jìn)入后臺(tái)-獲取webshell-系統(tǒng)提權(quán)”四個(gè)典型的安全場(chǎng)景,涵蓋了目前主機(jī)安全測(cè)試的四個(gè)過(guò)程。
關(guān)鍵詞:靶機(jī);系統(tǒng)安全;SQL注入;安全測(cè)試
中圖分類(lèi)號(hào):TP3 ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)28-0235-02
Abstract: In order to simulate typical security scenarios on the Internet, we built a Linux Web target system based on PHP. In this way, experiments that were difficult to carry out in the laboratory can be carried out.The system includes four typical security scenarios: "SQL injection - access to the web background - access to webshell - system to mention" four typical security scenarios, covering the current host security test of the four processes.
Keywords:goat; system security;SQL injection;security test
1 引言
目前雖然有一些信息安全的靶場(chǎng)實(shí)驗(yàn)平臺(tái),但此類(lèi)平臺(tái)具有較多的操作限制,并不能滿(mǎn)足所有的實(shí)驗(yàn)需求。因此,有必要自行設(shè)計(jì)、構(gòu)建一些能進(jìn)行Web安全和主機(jī)安全的實(shí)驗(yàn)系統(tǒng)。本系統(tǒng)基于虛擬化技術(shù)構(gòu)建,根據(jù)實(shí)驗(yàn)室的實(shí)際情況,可以安裝在普通的計(jì)算機(jī)里,也可以運(yùn)行在云平臺(tái)環(huán)境里。
2 基礎(chǔ)架構(gòu)
信息安全實(shí)驗(yàn)環(huán)境非常繁雜,其牽涉到許多具體的系統(tǒng)和應(yīng)用,一些特定的安全漏洞對(duì)系統(tǒng)環(huán)境要求非常的嚴(yán)格,一方面這些安全場(chǎng)景需要在某個(gè)具體的網(wǎng)絡(luò)服務(wù)中才能重現(xiàn),些許細(xì)微的版本號(hào)差異就會(huì)使實(shí)驗(yàn)不成功,另一方面某些服務(wù)會(huì)依賴(lài)于的其他的服務(wù)和環(huán)境,各個(gè)服務(wù)或版本部署時(shí)又會(huì)出現(xiàn)一些兼容性的沖突。將Linux靶機(jī)系統(tǒng)部署在云平臺(tái)上或虛擬化平臺(tái)上,利用平臺(tái)的特性,可以先建立所需要的若干個(gè)基礎(chǔ)實(shí)驗(yàn)環(huán)境,在基礎(chǔ)實(shí)驗(yàn)環(huán)境上建立典型安全漏洞場(chǎng)景,使用克隆技術(shù)和快照技術(shù)在這些場(chǎng)景上派生出某些具體的場(chǎng)景,在實(shí)驗(yàn)導(dǎo)致系統(tǒng)異常時(shí),可以迅速恢復(fù)到某個(gè)正常的系統(tǒng)狀態(tài)快照,非常有利的幫助了信息安全實(shí)驗(yàn)的開(kāi)展。
3 基礎(chǔ)運(yùn)行環(huán)境搭建
早期的互聯(lián)網(wǎng)中,Web安全在信息安全并非主流,后來(lái)隨著防火墻等網(wǎng)絡(luò)安全產(chǎn)品的興起,暴露在互聯(lián)網(wǎng)上的非Web服務(wù)(端口)越來(lái)越少,改變了互聯(lián)網(wǎng)安全的走向,利用web站點(diǎn)的漏洞進(jìn)行安全測(cè)試,獲取webshell,才能為后續(xù)獲取系統(tǒng)權(quán)限奠定基礎(chǔ),這已成為現(xiàn)今流行的一種方式。
靶機(jī)系統(tǒng)設(shè)計(jì)參照以下流程進(jìn)行,“SQL注入”-“進(jìn)入后臺(tái)”-“webshell上傳”。
教學(xué)中,對(duì)于進(jìn)行初級(jí)階段練習(xí)的靶機(jī)環(huán)境,不選擇最新的系統(tǒng)和軟件,不選擇有安全加固措施的Web程序,這樣符合了同學(xué)們學(xué)習(xí)的規(guī)律,不至于因難度過(guò)大而喪失信心。
操作系統(tǒng)選擇了CentOS 5.0 Final版本,禁用selinux與iptable。使用系統(tǒng)ISO鏡像自帶的軟件包建立Web環(huán)境。
yum -y install httpdphpmysqlmysql-server php-mysql
安裝完畢后,進(jìn)入Apache網(wǎng)站根目錄,新建一個(gè)名為index.php的測(cè)試頁(yè)面,并進(jìn)行訪(fǎng)問(wèn),測(cè)試php環(huán)境是否搭建成功。
4 部署QCMS 1.3網(wǎng)站
本系統(tǒng)選用了qcms1.3,程序本身不是很完善,安裝過(guò)程和后臺(tái)都有一些問(wèn)題,需要對(duì)其代碼進(jìn)行小幅度的修改和調(diào)整。主要部署過(guò)程如下:
1)上傳qcms源碼到網(wǎng)站目錄,修改文件屬主為apache進(jìn)程用戶(hù),并確認(rèn)子目錄有寫(xiě)入權(quán)限。
2)程序提供了安裝入口,install/index.php,但有時(shí)不能成功導(dǎo)入數(shù)據(jù)庫(kù),因此需要通過(guò)phpmymyadmin手動(dòng)新建一個(gè)數(shù)據(jù)庫(kù),字符為utf8_gena_ci,導(dǎo)入qcms.sql文件。
3)網(wǎng)站后臺(tái)的js文件調(diào)用了google的在線(xiàn)庫(kù),會(huì)造成無(wú)法響應(yīng)拖慢整個(gè)頁(yè)面的加載速度,因此需要手動(dòng)改為inc目錄里的相關(guān)代碼處為本地JS庫(kù)文件。
4)修改配置文件inc/conn.php,設(shè)置數(shù)據(jù)庫(kù)連接信息,設(shè)置表前綴( $bqz='';)和數(shù)據(jù)庫(kù)里的表前綴一致。
5)進(jìn)行網(wǎng)站測(cè)試。先訪(fǎng)問(wèn)網(wǎng)站前臺(tái),再訪(fǎng)問(wèn)后臺(tái)/admin(認(rèn)證admin,admin,登錄驗(yàn)證碼默認(rèn)是qcms),添加信息,上傳圖片驗(yàn)證網(wǎng)站功能正常。
至此,安全場(chǎng)景仿真系統(tǒng)建立完畢。
5 Web安全仿真環(huán)境測(cè)試
首先使用web安全綜合掃描工具對(duì)安全仿真系統(tǒng)中的web站點(diǎn)進(jìn)行總體掃描。然后根據(jù)掃描報(bào)告,對(duì)http://192.168.241.170/qcms/view.php?id=10進(jìn)行SQL注入,獲得MD5加密后的口令。
對(duì)口令進(jìn)行破解,進(jìn)入后臺(tái),通過(guò)其他設(shè)置-模板管理-添加網(wǎng)站模板。在添加模板界面,寫(xiě)入shell.php,插入一句話(huà)webshell。
訪(fǎng)問(wèn)網(wǎng)站首頁(yè),查看源代碼,可以看到有一個(gè)templist目錄,Templist是Template list的縮寫(xiě),分析上傳的webshell應(yīng)該就在這個(gè)目錄里,使用客戶(hù)端嘗試連接成功。
至此,對(duì)QCMS的Web安全測(cè)試的幾個(gè)重要過(guò)程都已完成,達(dá)到了實(shí)驗(yàn)?zāi)繕?biāo)。相對(duì)DVWA等測(cè)試平臺(tái),這種環(huán)境更接近真實(shí)場(chǎng)景,仿真效果更佳。
參考文獻(xiàn):
[1] 吳翰清.白帽子講Web安全:紀(jì)念版[M].北京:電子工業(yè)出版社,2014.
[2] (美)David Kennedy,JimO'Gorman,DevonKearns,MatiAharoni.Metasploit滲透測(cè)試指南[M].諸葛建偉,王珩,孫松柏,譯.北京:電子工業(yè)出版社,2012.
【通聯(lián)編輯:代影】