web服務(wù)器怎么做好上傳漏洞安全【199cloud-艾娜】
Web應(yīng)用程序通常會(huì)有文件上傳的功能,例如,在BBS發(fā)布圖片、在個(gè)人網(wǎng)站發(fā)布Zip壓縮包、在招聘網(wǎng)站上發(fā)布DOC格式簡(jiǎn)歷等。只要Web應(yīng)用程序允許上傳文件,就有可能存在文件上傳漏洞。
攻擊者在利用上傳漏洞時(shí),通常會(huì)與Web容器(IIS、Nginx、Apache、Tomc等at)的解析漏洞配合在一起
IIS解析漏洞:當(dāng)建立
*.asa、*.asp
格式的文件夾時(shí),其目錄下的任意文件都將被IIS當(dāng)作asp文件來解析,在瀏覽器打開文件時(shí),內(nèi)容就會(huì)直接暴漏在瀏覽器里,上傳的話,危險(xiǎn)腳本就會(huì)運(yùn)行起來,達(dá)到攻擊的目的;
如:
http://127.0.0.1/parsing.asp/test.txt
Apache解析漏洞;
PHP CGI解析漏洞;
程序員在防止上傳漏洞時(shí)可以分為以下兩種:
客戶端檢測(cè):客戶端使用JavaScript檢測(cè),在文件未上傳時(shí),就對(duì)文件進(jìn)行驗(yàn)證;
因此,繞過客戶端的檢測(cè)來達(dá)到攻擊的方式有以下兩種:
(1)使用FireBug:找到html源代碼里面的Form表單,將onsubmit事件刪除,JavaScript上傳驗(yàn)證將會(huì)失效。
(2)中間人攻擊:使用Burb Suite則是按照正常的流程通過JavaScript驗(yàn)證,然后在傳輸中的HTTP層做手腳。(
在上傳時(shí)使用Burb Suite攔截上傳數(shù)據(jù),修改文件擴(kuò)展名,就可以繞過客戶端驗(yàn)證)。
注意:任何客戶端驗(yàn)證都是不安全的。客戶端驗(yàn)證是防止用戶輸入錯(cuò)誤,減少服務(wù)器開銷,而服務(wù)器端驗(yàn)證才可以真正防御攻擊者。
服務(wù)端檢測(cè):服務(wù)端腳本一般會(huì)檢測(cè)文件的MIME類型,檢測(cè)文件擴(kuò)展名是否合法,甚至有些程序員檢測(cè)文件中是否嵌入惡意代碼。
主要有以下幾種,但也有存在漏洞的可能:
(1)白名單與黑名單驗(yàn)證
在上傳文件時(shí),大多數(shù)程序員會(huì)對(duì)文件擴(kuò)展名檢測(cè),驗(yàn)證文件擴(kuò)展名通常有兩種方式:白名單與黑名單。
黑名單過濾方式:是一種不安全的過濾方式,黑名單定義了一系列不允許上傳的文件的擴(kuò)展名,服務(wù)器端接收文件后,與黑名單擴(kuò)展名對(duì)比,如果發(fā)現(xiàn)文件擴(kuò)展名與黑名單里的擴(kuò)展名匹配,則認(rèn)為文件不合法。舉例子:
$BlackList = array('asp', 'php', 'jsp', 'php5', 'asa', 'aspx'); // 黑名單//然而并不能很好的防御: .cer文件并沒有在黑名單里,則,可以通過驗(yàn)證,因此是無法防御上傳漏洞的。
白名單過濾方式:與黑名單恰恰相反,定義一系列允許上傳的擴(kuò)展名,白名單擁有比黑名單更好的防御機(jī)制。舉例子:
$WhiteList = array('rar', 'jpg', 'png', 'bmp', 'gif', 'doc'); // 白名單// 然而并不能很好的防御:// 例如:Web容器為IIS 6.0,攻擊者把木馬文件改名為pentest.asp;1.jpg上傳,此時(shí)的文件為jpg格式,從而可以順利通過驗(yàn)證,而IIS 6.0卻會(huì)把pentest.asp;1.jpg當(dāng)作asp腳本程序來執(zhí)行,最終攻擊者可以繞過白名單的檢測(cè),并且執(zhí)行木馬程序。// 白名單機(jī)制僅僅是防御上傳漏洞的第一步。
(2)MIME驗(yàn)證
MIME類型用來設(shè)定某種擴(kuò)展名文件的打開方式,當(dāng)具有該擴(kuò)展名的文件被訪問時(shí),瀏覽器會(huì)自動(dòng)使用指定的應(yīng)用程序來打開。如GIF圖片MIME為image/gif,css文件MIME類型為text/css。
// 開發(fā)人員經(jīng)常會(huì)對(duì)文件MIME類型做驗(yàn)證,PHP代碼如下:if ($_FILES['file']['type'] == 'image/jpg'){ // 判斷是否是jpg格式 // ...}
因此,如果上傳PHP文件時(shí),并使用Burp Suite攔截查看MIME類型,可以發(fā)現(xiàn)PHP文件的MIME類型為
application/php
,而上面代碼中會(huì)判斷文件類型是否為image/jpg,顯然這里無法通過驗(yàn)證。
但是在攔截的時(shí)候可以將HTTP請(qǐng)求中的content-Type更改為image/jpg類型,這樣即可通過程序驗(yàn)證,達(dá)到攻擊的目的。
(3)目錄驗(yàn)證
再文件上傳時(shí),程序員通常允許用戶將文件放到指定的目錄中,然而有些Web開發(fā)人員為了讓代碼更“健壯”,通常會(huì)做一個(gè)動(dòng)作,如果指定的目錄存在,就將文件寫入目錄中,不存在則先建立目錄,然后再寫入文件。
攻擊方式:通過使用工具將普通的文件夾名稱改為
.asp
格式的目錄,稱為
畸形文件夾
,然后提交
一句話圖片木馬
文件,即上傳成功后,這個(gè)網(wǎng)頁(yè)木馬就會(huì)被解析,從而使下攻擊。
(4)截?cái)嗌蟼鞴?/strong>
也是使用工具進(jìn)行攔截更改。
截?cái)嗌蟼鞴粼贏SP程序中最常見,在PHP、JSP也會(huì)存在這樣的攻擊問題。
常見的文本編輯器有CKEditor、Ewebeditor、UEditor、KindEditor、XHeditor等。這類編輯器的功能都是非常類似的,比如都有圖片上傳、視頻上傳、遠(yuǎn)程下載等功能,這類文本編輯器也稱為副文本編輯器。
使用此類編輯器減少了程序開發(fā)的時(shí)間,但是卻增加了許多安全隱患,比如:
使用CKEditor編輯器的有10萬(wàn)個(gè)網(wǎng)站,如果CKEditor爆出一個(gè)GetShell漏洞,那么著10萬(wàn)個(gè)網(wǎng)站都因此受到牽連。主要的漏洞體現(xiàn)在以下幾種:
(1)敏感信息暴露。
(2)黑名單策略錯(cuò)誤:黑名單有漏掉的擴(kuò)展名。
(3)使用Burp Suite攔截修改,達(dá)到任意文件都可以上傳。
分享標(biāo)題:web服務(wù)器怎么做好上傳漏洞安全-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article2/jgpic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、微信小程序、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容