肖鵬
摘 ? 要:隨著Web2.0技術(shù)的發(fā)展,人們的生活隨之改變。但帶來的安全問題也困擾著網(wǎng)絡(luò)用戶,遭遇了前所未有的挑戰(zhàn)。本文提出了幾種Web安全問題,以及滲透測試方法,為保障Web安全提供了思路。
關(guān)鍵詞:Web安全 ?信息泄露 ?滲透測試
中圖分類號:TP316 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1674-098X(2019)06(b)-0132-02
1 ?web安全概述
Web2.0以后,計(jì)算機(jī)的Web應(yīng)用發(fā)展的非常迅速,Web應(yīng)用平臺被應(yīng)用到多個領(lǐng)域。在方便用戶使用的同時,隨之而來的安全問題也很多,造成信息泄露,嚴(yán)重影響了個人隱私,為生產(chǎn)生活帶來了安全隱患。Web應(yīng)用程序出現(xiàn)安全漏洞的原因有很多。首先,開發(fā)人員編寫程序時沒有進(jìn)行統(tǒng)一的安全培訓(xùn)和編碼規(guī)范,造成代碼腳本出現(xiàn)漏洞。其次,對用戶的輸入沒有進(jìn)行驗(yàn)證,導(dǎo)致被黑客利用,提取數(shù)據(jù)庫權(quán)限,造成信息泄露。還有,客戶端的HTTP請求頭被蓄意修改,讓用戶跳轉(zhuǎn)到釣魚網(wǎng)站,獲取到用戶的敏感信息,造成經(jīng)濟(jì)損失。因此Web網(wǎng)站的安全問題亟待解決。Web滲透測試技術(shù)是目前針對Web安全的防護(hù)技術(shù),有效地對Web網(wǎng)站漏洞進(jìn)行掃描,找到安全隱患。滲透攻擊測試是建立模擬攻擊黑客代碼的攻擊測試方法,用于測評網(wǎng)絡(luò)服務(wù)器系統(tǒng)安全狀況的一種測試評估方法[1]。本文介紹了Web應(yīng)用存在的幾種安全問題,以及相應(yīng)的滲透測試方法。
2 ?web安全問題
2.1 SQL注入
SQL注入是利用拼接的SQL字符串改變了設(shè)計(jì)者原來的意圖,執(zhí)行如泄露數(shù)據(jù)、改變數(shù)據(jù)等操作,獲取數(shù)據(jù)庫的敏感信息,甚至控制數(shù)據(jù)庫服務(wù)器。
2.2 XSS跨站腳本攻擊
跨站點(diǎn)腳本是指在WEB服務(wù)器端html代碼插入具有攻擊目的的代碼,當(dāng)瀏覽器訪問下載該頁面過程中,其中的惡意腳本語句將被解釋并執(zhí)行,從而對客戶端機(jī)器實(shí)現(xiàn)攻擊。
2.3 文件上行傳輸漏洞
網(wǎng)絡(luò)中獲取文件過程中的漏洞一般是因網(wǎng)頁中程序代碼所含有上傳路徑變量過濾的過于疏忽產(chǎn)生的,比如上傳程序語句代碼缺少限制文件后綴類型的過濾,這樣就造成攻擊方通過Web訪問的目錄地址上傳含有風(fēng)險的文件,實(shí)現(xiàn)進(jìn)入網(wǎng)絡(luò)中服務(wù)器主機(jī),完成對主機(jī)的控制。所以,在涉及網(wǎng)絡(luò)傳輸文件的程序代碼中,特別重視對文件類型的限制,防止上傳含有攻擊代碼的文件。
2.4 文件中包含漏洞
文件中包含漏洞是因惡意代碼向Web網(wǎng)絡(luò)服務(wù)器發(fā)送請求時,在URL中增加不合法的參數(shù),接收端程序代碼中對變量過濾不充分,造成不合法的文件名被執(zhí)行。這些不合法的文件名可能是服務(wù)器內(nèi)部的某個文件,也可能是遠(yuǎn)端客戶端的某個惡意攻擊文件。這類漏洞是因PHP程序?qū)ψ兞窟^濾不充分造成的,因此只有基于PHP開發(fā)的Web網(wǎng)絡(luò)應(yīng)用程序才有可能存在文件包含漏洞。
2.5 信息泄露漏洞
在程序員進(jìn)行程序代碼編寫過程中在代碼中添加備注和注釋,以便今后便于理解和維護(hù)。開發(fā)完畢后,若忽視刪除注釋信息,攻擊者可通過對注釋信息的收集,適應(yīng)系統(tǒng)功能和流程,為攻擊做準(zhǔn)備[2]。
3 ?滲透測試流程
針對不同Web應(yīng)用漏洞的特點(diǎn),滲透測試可分為四個階段:明確攻擊目標(biāo)、信息收集、漏洞探測以及利用漏洞。
3.1 明確攻擊目標(biāo)
(1)確定測試的范圍。例如,確定測試網(wǎng)站的IP地址、域名,確定整站測試還是測試一個模塊。
(2)確定測試規(guī)則。確定滲透程度。例如,發(fā)現(xiàn)漏洞之后是繼續(xù)利用漏洞提取系統(tǒng)控制權(quán),還是利用漏洞上傳木馬提取權(quán)限。
(3)確定需求。根據(jù)需求和技術(shù)來確定Web應(yīng)用的漏洞有多少,能測試到多少。
3.2 信息收集
在信息收集過程中,對于攻擊對象主機(jī)的Web應(yīng)用進(jìn)行各種信息收集。例如,操作系統(tǒng)類型版本、Web服務(wù)器的類型、數(shù)據(jù)庫類型、目錄的結(jié)構(gòu)、腳本語言的類型、開源軟件類型、爬出網(wǎng)站所有鏈接頁面,以及程序框架。
3.3 漏洞探測
(1)自動掃描。利用自動化掃描工具實(shí)現(xiàn)發(fā)掘敏感信息,網(wǎng)站的漏洞、隱藏的漏洞。利用爬蟲工具爬取網(wǎng)站的頁面鏈接、后臺登錄頁面。
例如:#sqlmap-u”http://alphaonenow.org/info.php?id=131”- -batch
(2)手動掃描。在上傳漏洞中加入一句話木馬<?php@eval($_post[‘pass]);?>獲取系統(tǒng)使用權(quán)。
(3)開放搜索。利用搜索引擎獲得漏洞注入點(diǎn)。
例如:#sqlmap-g- -batch- -proxy=http://10.30.162.109:1080
3.4 利用漏洞,獲取數(shù)據(jù)
通過sql注入,獲取mysql數(shù)據(jù)庫的用戶權(quán)限和數(shù)據(jù)。
(1)獲取數(shù)據(jù)庫系統(tǒng)的所有數(shù)據(jù)庫名稱。
#sqlmap-u”http://alphaonenow.org/info.php?id=131”--dbs
(2)獲取Web應(yīng)用當(dāng)前所連接的數(shù)據(jù)庫。
#sqlmap-u”http://alphaonenow.org/info.php?id=131”--current-db
(3)獲取Web應(yīng)用當(dāng)前所操作的DBMS用戶。
#sqlmap-u”http://alphaonenow.org/info.php?id=131”--current-user
4 ?滲透測試方法
4.1 準(zhǔn)確識別Web攻擊的類型,可以通過構(gòu)造Web攻擊檢測模型來完成
根據(jù)Web攻擊的原理和特點(diǎn),模擬出不同的漏洞檢測模型。這些模型具有通用性、層次性,把這些檢測漏洞添加到特征庫中。這些具有Web攻擊一般形態(tài)的模型,能讓用戶對主流的攻擊迅速檢測出來。
4.2 端口掃描,可以嘗試進(jìn)行數(shù)據(jù)庫的爆破
一臺計(jì)算機(jī)開放的端口和它開放的服務(wù)是對應(yīng)的,而滲透測試人員可以通過端口掃描了解目標(biāo)開放了哪些服務(wù),如80端口對應(yīng)HTTP服務(wù),3306端口對應(yīng)MySQL數(shù)據(jù)庫,1433端口對應(yīng)MSSQL數(shù)據(jù)庫。通過對開放端口的分析,便可以知道目標(biāo)網(wǎng)站使用了什么數(shù)據(jù)庫,并可以嘗試進(jìn)行數(shù)據(jù)庫的爆破。
4.3 得到Web目錄,可以嘗試對后臺地址進(jìn)行爆破
在滲透中,目錄是極為重要的信息。如果得到了根目錄,便可以結(jié)合注入進(jìn)行GetShell,取得權(quán)限。如果有了Web目錄,便可以嘗試對后臺地址進(jìn)行爆破,對后臺文件進(jìn)行猜測。
4.4 漏洞掃描工具可省去手動掃描時間,提高滲透時間
漏洞掃描工具通過對整個網(wǎng)站目錄的掃描,可以發(fā)現(xiàn)網(wǎng)站中存在的漏洞,省去人工手動查找漏洞的時間,提高了滲透的效率[3]。
5 ?結(jié)語
隨著Web2.0的應(yīng)用,提升網(wǎng)站和用戶私密數(shù)據(jù)的安全是十分重要的。本文提出了Web安全問題,以及滲透測試方法,為評估系統(tǒng)潛在的安全風(fēng)險,減小安全漏洞帶來的損失,帶來幫助。
參考文獻(xiàn)
[1] 宋超臣.Web滲透測試流程研究[J].電子設(shè)計(jì)工程,2014,22(17):166-167.
[2] 吳蘭.Web應(yīng)用系統(tǒng)的滲透測試研究[J]電腦編程技巧與維護(hù),2013(12):111-112.
[3] 郎智哲.淺談Web滲透測試的信息收集[J].計(jì)算機(jī)時代,2017(8):13-16.