




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Web攻防系列教程之 文件上傳攻防解析文件上傳是WEB應(yīng)用很常見的一種功能,本身是一項(xiàng)正常的業(yè)務(wù)需求,不存在什么問題。但如果在上傳時(shí)沒有對文件進(jìn)行正確處理,則很可能會發(fā)生安全問題。本文將對文件上傳的檢測方式以及如何繞過相應(yīng)檢測方式進(jìn)行詳細(xì)的分析,并提供針了對文件上傳攻擊的安全防護(hù)方法。 文件上傳攻擊是指攻擊者利用WEB應(yīng)用對上傳文件過濾不嚴(yán),導(dǎo)致可以上傳應(yīng)用程序定義類型范圍之外的文件到Web服務(wù)器。比如可以上傳一個(gè)網(wǎng)頁木馬,如果存放上傳文件的目錄剛好有執(zhí)行腳本的權(quán)限,那么攻擊者就可以直接得到一個(gè)WebShell。文件上傳攻擊的原理 由于服務(wù)器端沒有對用戶上傳的文件進(jìn)行正確的處理,導(dǎo)致攻擊者可以向某個(gè)可通過 Web 訪問的目錄上傳惡意文件,并且該文件可以被Web服務(wù)器解析執(zhí)行。攻擊者要想成功實(shí)施文件上傳攻擊,必須要滿足以下三個(gè)條件:1.可以上傳任意腳本文件,且上傳的文件能夠被Web服務(wù)器解析執(zhí)行,具體來說就是存放上傳文件的目錄要有執(zhí)行腳本的權(quán)限。2.用戶能夠通過Web訪問這個(gè)文件。如果文件上傳后,不能通過Web訪問,那么也不能成功實(shí)施攻擊。 3.要知道文件上傳到服務(wù)器后的存放路徑和文件名稱,因?yàn)樵S多Web應(yīng)用都會修改上傳文件的文件名稱,那么這時(shí)就需要結(jié)合其他漏洞去獲取到這些信息。如果不知道上傳文件的存放路徑和文件名稱,即使你上傳了也無法訪問。主流文件上傳檢測方式概述主流的文件上傳檢測方式有以下五種:1.客戶端javascript檢測客戶端檢測通常在上傳頁面里含有專門檢測文件上傳的javascript代碼,在文件被上傳之前進(jìn)行檢測,最常見的就是檢測上傳文件的文件類型和大小是否合法。 2.服務(wù)端MIME類型檢測這類檢測方法通過檢查http包的Content-Type字段中的值來判斷上傳文件是否合法。 3.服務(wù)端文件擴(kuò)展名檢測這類檢測方法通過在服務(wù)端檢測上傳文件的擴(kuò)展名來判斷文件是否合法。 4.服務(wù)端目錄路徑檢測這類檢測一般通過檢測路徑是否合法來判斷。 5.服務(wù)端文件內(nèi)容檢測這類檢測方法相當(dāng)對上面四種檢測方法來說是最為嚴(yán)格的一種。它通過檢測文件內(nèi)容來判斷上傳文件是否合法。這里,對文件內(nèi)容的檢測主要有兩種方法。 A.通過檢測上傳文件的文件頭來判斷。通常情況下,通過判斷前10個(gè)字節(jié),基本就能判斷出一個(gè)文件的真實(shí)類型。B.文件加載檢測,一般是調(diào)用API或函數(shù)對文件進(jìn)行加載測試。常見的是圖像渲染測試,再嚴(yán)格點(diǎn)的甚至是進(jìn)行二次渲染。 如何繞過文件上傳檢測 上面我們分析了主流的文件上傳檢測方式,下面我們就來看下如何繞過上面提到的文件上傳檢測方式,本文只討論如何繞過前三種檢測方式。 1.繞過客戶端javascript檢測這種檢測方法是最不安全的,也是最容易被攻擊者繞過的。Web應(yīng)用不應(yīng)只采用這一種手段檢測上傳文件,但可以作為一種輔助手段。因?yàn)椴捎每蛻舳薺avascript檢測可以增強(qiáng)應(yīng)用對用戶的友好度。由于javascript檢測是在客戶端實(shí)現(xiàn)的,所以我們完全能夠控制它??梢栽跒g覽器端禁用js腳本,比如在FireFox上安裝FireBug這一插件就可以實(shí)現(xiàn)這一功能。另外一種是通過代理工具來實(shí)現(xiàn),下面介紹利用Burp Suite來繞過客戶端javascript檢測。Burp Suite不僅僅只是一個(gè)代理工具,更是一款強(qiáng)大的網(wǎng)絡(luò)滲透利器。關(guān)于Burp Suite的詳細(xì)資料請自行百度。 這個(gè)站點(diǎn)(注:由于該網(wǎng)站為真實(shí)站點(diǎn),為了目標(biāo)網(wǎng)站的安全,所以用target來代替真實(shí)域名)的文件上傳功能只采用了客戶端javascript檢測,所以很容易被繞過。下面我們來具體看下操作方法。首先,我們看一下正常情況下上傳一個(gè).asp文件,應(yīng)用會有什么反應(yīng)。 a. 我們訪問這個(gè)URL(/AdvHTML_Popups/upload.asp),會出現(xiàn)一個(gè)上傳文件的頁面 b. 我們先選擇一個(gè).asp文件,這時(shí)會提示不允許上傳這種類型的文件。注意,這時(shí)我們還沒有點(diǎn)擊“件,這時(shí)會提示按鈕,就出現(xiàn)提示信息。我們可以判斷出這個(gè)網(wǎng)站是在客戶端判斷上傳文件類型的合法性的。上面的情況證明在正常情況下是不能成功上傳.asp文件的,那么下面就來看下如何繞過這種檢測吧。 c. 我們先打開Burp Suite代理工具,然后配置瀏覽器使用代理。 d. 我們先把剛才的那個(gè).asp文件擴(kuò)展名改為.gif,然后點(diǎn)擊“然后點(diǎn)擊“為那按鈕。這時(shí)Burp Suite中就會攔截到瀏覽器提交的HTTP數(shù)據(jù)包。我們把filename字段的值webshell.gif修改為webshell.asp,再點(diǎn)擊“再點(diǎn)擊“ell”按鈕,會發(fā)現(xiàn)文件成功上傳到服務(wù)器。 2.繞過服務(wù)端MIME類型檢測服務(wù)端MIME類型檢測是通過檢查http包的Content-Type字段中的值來判斷上傳文件是否合法的。我們來訪問35/upload.html,這是一個(gè)上傳頁面,當(dāng)你選擇上傳文件,點(diǎn)擊“上傳”按鈕后,會跳轉(zhuǎn)到uploadf.php中進(jìn)行處理。先來看下uploadf.php的代碼。那么我們?nèi)绾卫@過這種檢測方式呢?下面來看具體操作,還是用Burp Suite來完成。 我準(zhǔn)備上傳webshell.php到服務(wù)器,這是個(gè)一句話木馬。選擇好文件,然后點(diǎn)擊“上傳”,這時(shí)Burp Suite攔截到發(fā)往服務(wù)器的HTTP請求,我們在Burp Suite修改HTTP數(shù)據(jù)包中的內(nèi)容,然后點(diǎn)擊“據(jù)包中的內(nèi)容,然按鈕把數(shù)據(jù)包再轉(zhuǎn)發(fā)給服務(wù)器。 這時(shí)會提示文件成功上傳,還會顯示文件保存路徑,說明我們成功繞過了服務(wù)端的MIME文件類型檢測。 現(xiàn)在我們用中國菜刀連接一下,可以成功訪問到。 3.繞過服務(wù)端文件擴(kuò)展名檢測 現(xiàn)在我們來看下如何繞過服務(wù)端文件擴(kuò)展名檢測,先來看下這兩段代碼。上面的代碼是一個(gè)上傳表單,在選擇上傳文件,點(diǎn)擊“上傳”按鈕后會跳轉(zhuǎn)到uploadfiles.asp中進(jìn)行處理。我們來看下uploadfiles.asp文件中檢測上傳文件擴(kuò)展名的代碼。 上面代碼的意思是先得到上傳文件的擴(kuò)展名,然后和允許上傳的文件類型對比,如果不符合定義,則提示“上傳的文件格式不對!”。下面具體看下如何繞過這種檢測方式,我們先直接上傳一個(gè).asp的木馬,會提示上傳文件格式不對,這和我們預(yù)期的結(jié)果一致。現(xiàn)在我們將webshell.asp改為webshell.asp;test.jpg,再次上傳,會發(fā)現(xiàn)我們的webshell被成功上傳到服務(wù)器上。 現(xiàn)在我們來訪問下,地址為 05/bookpic/webshell.asp;test.jpg,可以正常訪問,如 注:這里利用了IIS的解析漏洞,當(dāng)文件名為1.asp;1.jpg時(shí),IIS會將此文件解析為1.asp,文件名被截?cái)?,?dǎo)致腳本被執(zhí)行。而且存放上傳文件的目錄要有執(zhí)行腳本的權(quán)限,否則不能執(zhí)行成功。設(shè)計(jì)安全的文件上傳功能 上面我們介紹了主流的文件上傳檢測以及繞過檢測的方式,那么如何設(shè)計(jì)出一個(gè)安全的文件上傳功能呢?下面我們就來總結(jié)一下。 1.設(shè)置保存上傳文件的目錄為不可執(zhí)行 只要Web服務(wù)器無法解析該目錄下的文件,即使攻擊者上傳了腳本文件,服務(wù)器本身也不會受到影響,此點(diǎn)至關(guān)重要。 2.判斷文件類型 在判斷文件類型時(shí),可以結(jié)合使用MIME Type、后綴檢查等方式。在文件類型檢查中,強(qiáng)烈建議采用白名單的方式。此外,對于圖片的處理可以使用壓縮函數(shù)或者resize函數(shù),在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025綜合文化活動中心租賃合同
- 2025訂購茶葉合同模板
- 2025版合同:國內(nèi)許可合同的格式
- 2025年房屋買賣合同
- 2025建筑工程補(bǔ)充合同
- 2024-2025教科版科學(xué)一年級下冊第二單元測試卷及答案
- 2025年供氣合同常用范本
- 小數(shù)的讀法和寫法教學(xué)設(shè)計(jì)
- 2025標(biāo)準(zhǔn)技術(shù)咨詢合同范本
- 雪地里的小畫家
- GB/T 4909.2-2009裸電線試驗(yàn)方法第2部分:尺寸測量
- DB11-T 065-2022電氣防火檢測技術(shù)規(guī)范
- 09S304 衛(wèi)生設(shè)備安裝圖集
- 肌肉注射操作評分標(biāo)準(zhǔn)
- 配電箱驗(yàn)收記錄表
- DB11-T1788-2020技術(shù)轉(zhuǎn)移服務(wù)人員能力規(guī)范
- 建設(shè)項(xiàng)目用地預(yù)審與選址意見課件講解
- GB∕T 23524-2019 石油化工廢鉑催化劑化學(xué)分析方法 鉑含量的測定 電感耦合等離子體原子發(fā)射光譜法
- 寶寶生日祝??蓯劭ㄍ娮酉鄡訮PT模板
- 盜竊案件現(xiàn)場勘查應(yīng)注意的問題
- 用人單位職業(yè)健康監(jiān)護(hù)檔案(一人一檔)
評論
0/150
提交評論