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