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