漏洞攻擊技術(shù)論文(2)
漏洞攻擊技術(shù)論文
漏洞攻擊技術(shù)論文篇二
基于PHP安全漏洞的Web攻擊防范研究
【 摘 要 】 文章以PHP語言為例對跨站腳本漏洞、文件上傳漏洞的常見攻擊進行了較為詳細的分析并給出了相應(yīng)的防范措施,以此為基礎(chǔ),總結(jié)出了Web應(yīng)用程序安全漏洞產(chǎn)生的一般原因和開發(fā)安全Web應(yīng)用的一些建議。
【 關(guān)鍵詞 】 Web漏洞;Web攻擊;Web安全;PHP安全
1 引言
由于PHP語言是目前開發(fā)各種Web應(yīng)用程序的首選語言之一。文章就以PHP語言為例,通過對跨站腳本漏洞攻擊和文件上傳漏洞攻擊及其防范措施進行較為詳細的闡述,以此總結(jié)出在開發(fā)Web應(yīng)用程序時,開發(fā)人員需要注意的一些問題及其采取的措施。
2 常見Web應(yīng)用程序安全漏洞攻擊實例分析及其防范措施
基于PHP技術(shù)開發(fā)的Web應(yīng)用程序主要存在如下一些針對安全漏洞方面的攻擊:命令注入攻擊、eval注入攻擊、客戶端腳本攻擊、跨站腳本攻擊、SQL注入攻擊、跨站請求偽造攻擊、session會話劫持攻擊、session固定攻擊、http響應(yīng)拆分攻擊、文件上傳漏洞攻擊、目錄穿越漏洞攻擊、遠程文件包含攻擊、動態(tài)函數(shù)注入攻擊、url攻擊、欺騙表單提交攻擊、http請求欺騙攻擊等,限于篇幅,下面選擇兩個具有代表性的常見安全漏洞攻擊來做詳細分析。
2.1 跨站腳本攻擊
跨站腳本XSS(Cross Site Script)漏洞攻擊是指攻擊者向Web頁面里插入惡意html代碼,當用戶瀏覽該頁面時,插入其中的惡意html代碼被執(zhí)行,從而達到特殊目的。
(1)跨站腳本攻擊實例分析
針對跨站腳本漏洞進行的攻擊方式多種多樣,本文僅舉一例。
假設(shè)某BBS論壇有一個發(fā)帖頁面,如圖1所示。
其采用了表單方法以幫助提交數(shù)據(jù),表單的主要html代碼如下:
從上面的代碼可以看出,程序?qū)τ?Title及$Content的值給予了充分的信任,但這種信任是毫無根據(jù)的。試想,若Title和Content這兩者其中之一的內(nèi)容如下所示:
以上輸入相當于在網(wǎng)頁源程序中加入了Javascript代碼,可以將登錄用戶的cookies發(fā)送到http://cheat.evil.org,然后由hook.php利用$_GET['cookies']變量就可以得到所有登錄用戶的cookies了。
(2)上述跨站腳本攻擊之防范對策
以上漏洞主要是未對輸出到瀏覽器的數(shù)據(jù)進行轉(zhuǎn)義造成的,為了避免上述情況的發(fā)生,可以采用如下的方式顯示已發(fā)表的帖子:
通過函數(shù)htmlentities()將輸入中可能包含的html標簽轉(zhuǎn)換成了html實體(即編碼形式),從而避免了上述攻擊的發(fā)生。
2.2 文件上傳漏洞攻擊
由于文件上傳功能的實現(xiàn)代碼沒有嚴格限制用戶上傳的文件類型,導(dǎo)致攻擊者可以向通過Web訪問的目錄上傳任意PHP文件,并能夠?qū)⑦@些文件傳遞給PHP解釋器,這樣就使得攻擊者可以在遠程服務(wù)器上執(zhí)行任意的PHP腳本,這就是所謂的文件上傳漏洞攻擊(File Upload Attack)。
(1) 文件上傳漏洞攻擊實例分析
如圖2所示,是一個文件上傳界面。
其表單的html代碼如下:
如果實現(xiàn)文件上傳功能的PHP代碼為:
上述PHP代碼雖能實現(xiàn)文件的上傳,但這只是對中規(guī)中矩的用戶來說的,如果碰到惡意攻擊者,問題就不一樣了。因為上述PHP代碼未對上傳的文件類型進行檢查,導(dǎo)致用戶可以上傳PHP文件,所以存在著明顯的漏洞。
(2) 文件上傳漏洞攻擊防范措施
為了避免上述文件上傳漏洞的發(fā)生,可以采取如下防范措施,步驟如下:
1)對上傳文件的類型進行檢查,比如我們需要用戶上傳的文件是jpeg圖片格式,則可以增加如下代碼檢查上傳的文件的類型是否是jpeg圖片格式:
2)由于PHP是在文件系統(tǒng)的臨時文件區(qū)保存上傳文件的,使用函數(shù)is_uploaded_file()可以判斷臨時文件區(qū)的文件是否是一個上傳的文件,這樣可以確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件,代碼如下:
3)最后可以用函數(shù)filesize()來校驗文件的大小。
通過增加以上3個步驟,文件上傳漏洞攻擊發(fā)生的可能性大大降低了,最終的文件上傳代碼如下:
3 結(jié)束語
以上以PHP語言為例對兩個常見Web應(yīng)用程序安全漏洞的攻擊及其防范對策做了較為詳細的分析。第一個安全漏洞攻擊,即跨站腳本漏洞攻擊,是通過對輸出到瀏覽器的數(shù)據(jù)進行轉(zhuǎn)義來進行防范的。第二個安全漏洞攻擊,即文件上傳漏洞攻擊是通過對輸入的數(shù)據(jù)(此例中為上傳的文件)進行一系列檢查來進行防范的。在此不難看出,作為一個Web應(yīng)用程序的開發(fā)人員,一定不能夠相信用戶的任何輸入,對用戶的任何輸入都要進行過濾、檢查,除此之外,系統(tǒng)的輸出數(shù)據(jù)有時也會被黑客所利用,跨站腳本攻擊就是一個很明顯的例子。
綜上所述,要確保開發(fā)出的Web應(yīng)用較為安全,一定要遵循以下兩個原則:第一,對于用戶的任何輸入,都要進行過濾,確保進入系統(tǒng)的數(shù)據(jù)是干凈無污染的數(shù)據(jù);第二,對于系統(tǒng)的輸出,要進行轉(zhuǎn)義,確保黑客無法利用輸出的數(shù)據(jù)推斷系統(tǒng)實現(xiàn)細節(jié)并進行攻擊。
參考文獻
[1] 曾利軍,羅慶云.網(wǎng)絡(luò)應(yīng)用程序開發(fā)的安全技術(shù)研究.網(wǎng)絡(luò)安全技術(shù)與應(yīng)用.2005.
[2] 劉靖. 淺析Web應(yīng)用程序安全規(guī)劃.科技信息(教學(xué)科研).2007.
[3] 劉鵬,張玉清.PHP常見安全漏洞攻防研究.信息網(wǎng)絡(luò)安全.2011.
[4] 孫軍軍,趙明清.企業(yè)信息安全現(xiàn)狀與發(fā)展趨勢分析.信息網(wǎng)絡(luò)安全,2012年第10期(總第142期)第90頁.
[5] 周國勇,陳磊.信息系統(tǒng)安全檢查工作體系設(shè)計研究.信息網(wǎng)絡(luò)安全,2012年第8期(總第140期)第167頁.
作者簡介:
程茂華(1977-),男,安徽黃山人,碩士研究生,助教;研究方向:網(wǎng)絡(luò)與信息安全。
看了“漏洞攻擊技術(shù)論文”的人還看:
2.網(wǎng)絡(luò)入侵、攻擊與防范技術(shù)