◆李維峰
Web應(yīng)用程序滲透測試淺析
◆李維峰
(中國飛行試驗(yàn)研究院 陜西 710089)
滲透測試是在Web應(yīng)用程序中查找漏洞的最佳方法,這也是大多數(shù)Web應(yīng)用程序使用最廣泛的安全測試策略。所謂Web應(yīng)用程序滲透測試就是通過模擬從內(nèi)部或外部發(fā)起的攻擊,嘗試訪問系統(tǒng)中的敏感數(shù)據(jù)。滲透測試使用戶可以確定整個(gè)Web應(yīng)用程序及其各個(gè)組件(包括源代碼,數(shù)據(jù)庫和后端網(wǎng)絡(luò))的任何安全漏洞,這可以幫助開發(fā)人員確定已確定的漏洞和威脅的優(yōu)先級(jí),并提出緩解策略。
滲透測試;Web應(yīng)用程序;漏洞
時(shí)至今日我們所做的幾乎所有事情都可以通過互聯(lián)網(wǎng)完成。從購物到銀行業(yè)務(wù)再到日常交易,大多數(shù)都可以數(shù)字方式完成。并且我們只通過幾個(gè)Web應(yīng)用程序就可以完成所有這些在線活動(dòng)。Web應(yīng)用程序的普及引入了另一種攻擊媒介,惡意第三方可以利用這些攻擊手段來謀取個(gè)人利益。由于Web應(yīng)用程序通常會(huì)存儲(chǔ)或發(fā)送敏感數(shù)據(jù),因此始終確保這些應(yīng)用程序(尤其是那些公開暴露于萬維網(wǎng)的應(yīng)用程序)的安全至關(guān)重要。簡而言之,滲透測試是一種預(yù)防性控制措施,可讓您分析系統(tǒng)現(xiàn)有安全層的整體狀態(tài)。
以下是對(duì)Web應(yīng)用程序進(jìn)行的滲透測試的共同目標(biāo):
(1)識(shí)別未知漏洞;
(2)檢查現(xiàn)有安全策略的有效性;
(3)測試公開的組件,包括防火墻,路由器和DNS;
(4)確定最容易受到攻擊的路線;
(5)尋找可能導(dǎo)致數(shù)據(jù)泄露的漏洞。
如果考慮到當(dāng)前的互聯(lián)網(wǎng)使用情況,您會(huì)發(fā)現(xiàn)移動(dòng)互聯(lián)網(wǎng)的使用量急劇增加,這意味著移動(dòng)攻擊的可能性直接增加。當(dāng)用戶使用移動(dòng)設(shè)備訪問網(wǎng)站或應(yīng)用程序時(shí),他們更容易受到攻擊。因此,滲透測試在軟件開發(fā)生命周期中起著至關(guān)重要的作用,有助于構(gòu)建用戶可以使用的安全系統(tǒng),避免黑客攻擊或數(shù)據(jù)泄露。
一般可以通過兩種方式對(duì)Web應(yīng)用程序進(jìn)行滲透測試:內(nèi)部滲透測試和外部滲透測試[1]。讓我們來看看如何設(shè)計(jì)和實(shí)施這兩種攻擊:
顧名思義,內(nèi)部滲透測試是通過局域網(wǎng)在組織內(nèi)部實(shí)施的滲透測試,針對(duì)在內(nèi)部網(wǎng)絡(luò)上托管的Web應(yīng)用程序。這可以幫助組織識(shí)別防火墻以內(nèi)可能存在的問題。因?yàn)?,常常?huì)出現(xiàn)一種最嚴(yán)重的誤解,認(rèn)為攻擊只會(huì)發(fā)生在外部,所以開發(fā)人員經(jīng)常忽略或不重視內(nèi)部的滲透測試。下面列舉了一些可能發(fā)生內(nèi)部攻擊的情況:
(1)對(duì)組織心懷不滿的員工,已辭職但仍可以訪問內(nèi)部安全策略和密碼的員工,合同乙方或其他的惡意員工攻擊;
(2)社會(huì)工程學(xué)攻擊;
(3)網(wǎng)絡(luò)釣魚攻擊;
(4)使用用戶權(quán)限的攻擊。
滲透測試就是為了嘗試在沒有有效憑據(jù)的情況下訪問環(huán)境并確定可能的攻擊途徑。
與內(nèi)部滲透測試不同,外部滲透測試著重于從組織外部發(fā)起攻擊,以測試Internet上托管的Web應(yīng)用程序。滲透測試人員沒有關(guān)于組織所實(shí)現(xiàn)的內(nèi)部系統(tǒng)安全的信息。只需為他們提供目標(biāo)系統(tǒng)的IP地址即可模擬外部攻擊。由于沒有提供其他信息,測試人員需要搜索公共網(wǎng)頁以獲取有關(guān)目標(biāo)主機(jī)的更多信息,對(duì)其進(jìn)行滲透和破壞。外部滲透測試包括測試組織的防火墻,服務(wù)器和IDS。
Web應(yīng)用程序滲透測試著重于環(huán)境和攻擊過程,而不是應(yīng)用程序本身。這涉及收集有關(guān)目標(biāo)Web應(yīng)用程序的信息,弄清楚它所在網(wǎng)絡(luò)的情況,并猜測可能的注入點(diǎn)。以下是滲透測試所涉及的步驟:
滲透測試的第一步是偵察或信息收集階段。此步驟為測試人員提供了可用于識(shí)別和利用Web應(yīng)用程序中的漏洞的信息。被動(dòng)偵察意味著收集可在Internet上輕松獲得的信息,而無須直接與目標(biāo)系統(tǒng)聯(lián)系。這主要是使用Google完成的,從子域,鏈接,以前的版本等開始。而主動(dòng)偵察意味著直接探測目標(biāo)系統(tǒng)以獲得輸出。以下是用于主動(dòng)偵察的方法的一些示例:
(1)Nmap指紋:您可以使用Nmap網(wǎng)絡(luò)掃描儀來獲取有關(guān)Web應(yīng)用程序的腳本語言,服務(wù)器操作系統(tǒng),服務(wù)器軟件和版本,打開的端口以及當(dāng)前正在運(yùn)行的服務(wù)的信息。
(2)Shodan網(wǎng)絡(luò)掃描儀:該工具可以幫助您獲取有關(guān)Web應(yīng)用的公共可用其他信息,包括地理位置,使用的服務(wù)器軟件,打開的端口號(hào)等。
(3)DNS正反向查詢:此方法使您可以將最近發(fā)現(xiàn)的子域與其各自的IP地址相關(guān)聯(lián)。您也可以使用Burp Suite自動(dòng)執(zhí)行此過程。
(4)DNS區(qū)域轉(zhuǎn)移:您可以使用nslookup命令來查找正在使用的DNS服務(wù)器。另一種選擇是使用DNS服務(wù)器標(biāo)識(shí)網(wǎng)站,然后使用dig命令嘗試進(jìn)行DNS區(qū)域傳輸。
(5)識(shí)別相關(guān)的外部站點(diǎn):信息收集階段的這一部分非常重要,因?yàn)橥獠烤W(wǎng)站和目標(biāo)網(wǎng)站之間會(huì)產(chǎn)生流量。使用Burp Suite可以輕松地完成此步驟。
(6)分析HEAD和OPTION請求:從HEAD和OPTIONS HTTP請求生成的響應(yīng)顯示了Web服務(wù)器軟件及其版本,以及其他更有價(jià)值的數(shù)據(jù)。您可以在訪問目標(biāo)網(wǎng)站時(shí)使用Burp Suite的攔截功能來獲取此信息。
(7)錯(cuò)誤頁面中的數(shù)據(jù):錯(cuò)誤頁面提供了比您預(yù)期更多的信息。通過修改目標(biāo)網(wǎng)站的URL并強(qiáng)制執(zhí)行404 Not Found錯(cuò)誤,您將能夠知道服務(wù)器和網(wǎng)站運(yùn)行所在的版本。
(8)檢查源代碼:檢查源代碼可以幫助您找到有用的信息,您可以使用這些信息來查明某些漏洞。它可以幫助您確定應(yīng)用運(yùn)行的環(huán)境以及其他相關(guān)信息。
(9)記錄所有數(shù)據(jù):在獲得所有這些信息之后,組織和記錄您的發(fā)現(xiàn)很重要,您以后可以將其用作進(jìn)一步研究或發(fā)現(xiàn)要利用的漏洞的基準(zhǔn)。
這一步是實(shí)施真正的攻擊。在此階段,您將根據(jù)偵察階段收集的信息實(shí)施攻擊。您可以使用多種工具來進(jìn)行攻擊,而這正是數(shù)據(jù)收集起著重要作用的地方。您收集的信息將幫助您根據(jù)之前進(jìn)行的研究來縮小所需工具的范圍。
讓我們看一下當(dāng)今業(yè)界用于Web應(yīng)用程序的頂級(jí)滲透工具:
(1)Nmap
Nmap或Network Mapper不僅僅是一種掃描和偵察工具。它用于網(wǎng)絡(luò)發(fā)現(xiàn)和安全審核。除了在目標(biāo)網(wǎng)站上提供基本信息外,它還包括腳本模塊,該模塊可用于發(fā)現(xiàn)漏洞和后門檢測以及利用的執(zhí)行。
(2)Wireshark
Wireshark是目前最流行的網(wǎng)絡(luò)協(xié)議分析器之一,它可以促進(jìn)對(duì)協(xié)議的深入檢查,以及實(shí)時(shí)業(yè)務(wù)捕獲和捕獲文件的脫機(jī)分析。可以使用XML,PostScript,CSV或純文本格式導(dǎo)出數(shù)據(jù),以進(jìn)行文檔編輯和進(jìn)一步分析。
(3)Metasploit
該滲透測試工具實(shí)際上是一個(gè)框架,而不是特定的應(yīng)用程序。您可以使用它來創(chuàng)建用于特定任務(wù)的自定義工具。您可以使用Metasploit進(jìn)行以下操作:選擇并配置目標(biāo)攻擊、選擇并配置要使用的有效負(fù)載、選擇并配置編碼架構(gòu)、執(zhí)行漏洞利用代碼。
(4)Nessus
此漏洞掃描程序可幫助測試人員識(shí)別漏洞,配置問題,甚至可以發(fā)現(xiàn)Web應(yīng)用程序中是否存在惡意軟件。但是,該工具并非設(shè)計(jì)用于執(zhí)行漏洞利用,而是在進(jìn)行偵察時(shí)提供了很大的幫助。
(5)Burp Suite
我們之前提到過Burp Suite兩次,這是因?yàn)樵摴ぞ呤怯糜跍y試Web應(yīng)用程序安全性的多平臺(tái)平臺(tái)。它具有可用于測試過程的每個(gè)階段的幾種工具,包括偵聽代理,可感知應(yīng)用程序的蜘蛛,高級(jí)Web應(yīng)用程序掃描器,入侵者工具,中繼器工具和音序器工具。
在數(shù)據(jù)收集和執(zhí)行攻擊之后,下一步是編寫Web應(yīng)用程序滲透測試報(bào)告。為您的報(bào)告創(chuàng)建簡潔的結(jié)構(gòu),并確保所有結(jié)果都得到數(shù)據(jù)的支持。堅(jiān)持使用哪種方法,并詳細(xì)描述該過程。除了寫下成功的漏洞利用程序之外,您還需要根據(jù)它們的關(guān)鍵程度對(duì)其進(jìn)行分類,以幫助開發(fā)人員優(yōu)先專注于處理更嚴(yán)重的漏洞利用程序。
Web應(yīng)用程序?yàn)榻K端用戶提供了很多便利和價(jià)值,但這些便利是要付出一定代價(jià)的。大多數(shù)系統(tǒng)都公開暴露在互聯(lián)網(wǎng)上,那些愿意進(jìn)行一些研究的人可以隨時(shí)使用這些數(shù)據(jù)。由于使用率的增長和技術(shù)的發(fā)展,Web應(yīng)用程序更容易受到黑客攻擊。因此,對(duì)于處理敏感信息的Web應(yīng)用程序,應(yīng)該進(jìn)行滲透測試。
[1]Ihor Feoktistov.guide to web application penetration testing[EB/OL].https://relevant.software/blog/penetration-testing-for-web-applications/,2018-12-7.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2021年3期