国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

上傳漏洞原理及防范

2014-07-02 01:31:27劉仁珩甘肅聯(lián)通蘭州分公司甘肅蘭州730030
江西通信科技 2014年4期
關(guān)鍵詞:文件類型文件名服務(wù)端

劉仁珩 甘肅聯(lián)通蘭州分公司 甘肅蘭州 730030

上傳漏洞原理及防范

劉仁珩 甘肅聯(lián)通蘭州分公司 甘肅蘭州 730030

件名稱,因?yàn)樵S多Web應(yīng)用都會(huì)修改上傳文件的文件名稱,那么這時(shí)就需要結(jié)合其他漏洞去獲取到這些信息。如果不知道上傳文件的存放路徑和文件名稱,即使你上傳了也無(wú)法訪問(wèn)。

通常web 站點(diǎn)會(huì)有用戶注冊(cè)功能,而當(dāng)用戶登錄之后大多數(shù)情況下都會(huì)存在類似頭像上傳、附件上傳一類的功能,這些功能點(diǎn)往往存在上傳驗(yàn)證方式不嚴(yán)格的安全缺陷,是在web 滲透中非常關(guān)鍵的突破口,只要經(jīng)過(guò)仔細(xì)測(cè)試分析來(lái)繞過(guò)上傳驗(yàn)證機(jī)制,往往會(huì)造成被攻擊者直接上傳web 后門,進(jìn)而獲取整個(gè)web業(yè)務(wù)的控制權(quán),復(fù)雜一點(diǎn)的情況是結(jié)合web server 的解析漏洞來(lái)上傳后門獲取權(quán)限的。

2、文件上傳檢測(cè)方法

通常一個(gè)文件以HTTP協(xié)議進(jìn)行上傳時(shí),將以POST請(qǐng)求發(fā)送至web 服務(wù)器,web 服務(wù)器接收到請(qǐng)求并同意后,用戶與web 服務(wù)器將建立連接,并傳輸data。

主流的文件上傳檢測(cè)方式有以下五種:

◎A 客戶端 javascript 檢測(cè)(通常為檢測(cè)文件擴(kuò)展名)

◎B 服務(wù)端 MIME 類型檢測(cè)(檢測(cè)Content-Type內(nèi)容)

◎C 服務(wù)端目錄路徑檢測(cè)(檢測(cè)跟path 參數(shù)相關(guān)的內(nèi)容)

◎D 服務(wù)端文件擴(kuò)展名檢測(cè)(檢測(cè)跟文件extension 相關(guān)的內(nèi)容)

◎E 服務(wù)端文件內(nèi)容檢測(cè)(檢測(cè)內(nèi)容是否合法或含有惡意代碼)

1)客戶端 javascript 檢測(cè)

客戶端檢測(cè)通常在上傳頁(yè)面里含有專門檢測(cè)文件上傳的javascript代碼,在文件被上傳之前進(jìn)行檢測(cè),最常見(jiàn)的就是檢測(cè)上傳文件的文件類型和大小是否合法。

2)服務(wù)端MIME類型檢測(cè)

這類檢測(cè)方法通過(guò)檢查http包的Content-Type字段中的值來(lái)判斷上傳文件是否合法。

3)服務(wù)端文件擴(kuò)展名檢測(cè)

這類檢測(cè)方法通過(guò)在服務(wù)端檢測(cè)上傳文件的擴(kuò)展名來(lái)判斷文件是否合法。

4)服務(wù)端目錄路徑檢測(cè)

這類檢測(cè)一般通過(guò)檢測(cè)路徑是否合法來(lái)判斷。

5)服務(wù)端文件內(nèi)容檢測(cè)

這類檢測(cè)方法相當(dāng)對(duì)上面四種檢測(cè)方法來(lái)說(shuō)是最為嚴(yán)格的一種。它通過(guò)檢測(cè)文件內(nèi)容來(lái)判斷上傳文件是否合法。這里,對(duì)文件內(nèi)容的檢測(cè)主要有兩種方法。A、通過(guò)檢測(cè)上傳文件的文件頭來(lái)判斷。通常情況下,通過(guò)判斷前10個(gè)字節(jié),基本就能判斷出一個(gè)文件的真實(shí)類型。B、文件加載檢測(cè),一般是調(diào)用API或函數(shù)對(duì)文件進(jìn)行加載測(cè)試。常見(jiàn)的是圖像渲染測(cè)試,再嚴(yán)格點(diǎn)的甚至是進(jìn)行二次渲染。

3、上傳繞過(guò)方式

上面我們分析了主流的文件上傳檢測(cè)方式,下面我們就來(lái)看下如何繞過(guò)上面提到的文件上傳檢測(cè)方式。

3.1 客戶端繞過(guò)

在對(duì)上傳文件進(jìn)行文件類型判斷時(shí),如果使用客戶端腳本(javascript)來(lái)檢測(cè)文件合法性,則程序必定會(huì)存在上傳漏洞,由于客戶端腳本僅作用于客戶端環(huán)境,無(wú)法校驗(yàn)最終需要發(fā)送的數(shù)據(jù),導(dǎo)致該種檢測(cè)方法失效。

實(shí)例代碼:

3.2 服務(wù)端繞過(guò)

在對(duì)上傳文件類型使用服務(wù)端驗(yàn)證時(shí),由于驗(yàn)證方式及代碼邏輯存在漏洞,也會(huì)導(dǎo)致上傳繞過(guò)。例如,在如下php文件類型檢測(cè)腳本中,服務(wù)端通過(guò)MIME類型來(lái)檢測(cè)文件合法性,則攻擊者可以通過(guò)偽造MIME類型來(lái)達(dá)到欺騙應(yīng)用程序上傳非法文件的目的。

實(shí)例代碼:

得到服務(wù)端的應(yīng)答,服務(wù)端MIME檢測(cè)方式被成功繞過(guò)。

在實(shí)際編碼過(guò)程中,服務(wù)端繞過(guò)的例子不僅僅局限于MIME繞過(guò),此處不做一一例舉。

4、文件解析漏洞

文件解析漏洞是指,由于文件自身在文件名解析方面存在的bug,導(dǎo)致正常合法文件被當(dāng)作腳本文件來(lái)解析。如IIS解析漏洞、NGINX解析漏洞等。攻擊者通常會(huì)利用上傳模塊上傳一個(gè)文件名合法的webshell腳本,然后利用解析漏洞去執(zhí)行。

4.1 1IIS 解析漏洞

IIS6.0 在解析asp 格式的時(shí)候有兩個(gè)解析漏洞,一個(gè)是如果目錄名包含".asp"字符串,那么這個(gè)目錄下所有的文件都會(huì)按照asp 去解析,另一個(gè)是只要文件名中含有".asp;"會(huì)優(yōu)先按asp 來(lái)解析。

IIS7.0/7.5 是對(duì)php 解析時(shí)有一個(gè)類似于Nginx 的解析漏洞,對(duì)任意文件名只要在URL后面追加上字符串"/任意文件名.php"就會(huì)按照php 的方式去解析。

4.2 Nginx 解析漏洞

nginx是一款高性能的web服務(wù)器,使用非常廣泛,其不僅經(jīng)常被用做反向代理,也可以非常好的支持PHP的運(yùn)行。80sec發(fā)現(xiàn)其中存在一個(gè)較為嚴(yán)重的安全問(wèn)題,默認(rèn)情況下可能導(dǎo)致服務(wù)器錯(cuò)誤的將任何類型的文件以PHP的方式進(jìn)行解析,這將導(dǎo)致嚴(yán)重的安全問(wèn)題,使得惡意的攻擊者可能攻陷支持php的Nginx服務(wù)器。

目前Nginx 主要有這兩種漏洞,一個(gè)是對(duì)任意文件名在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加為test.jpg/x.php 進(jìn)行解析攻擊。還有一種是對(duì)低版本的Nginx 可以在任意文件名后面添加%00.php 進(jìn)行解析攻擊。

5、上傳漏洞防護(hù)

通過(guò)對(duì)上傳漏洞原理的了解,我們將從以下幾個(gè)層面著手對(duì)其進(jìn)行防護(hù):

5.1 棄用客戶端檢測(cè)

由于客戶端檢測(cè)方式自身缺陷導(dǎo)致該檢測(cè)方式容易被繞過(guò),因此,在對(duì)上傳文件類型進(jìn)行驗(yàn)證時(shí)應(yīng)避免使用客戶端檢測(cè)方式。

5.2 棄用MIME檢測(cè)

由于MIME檢測(cè)中MIME數(shù)據(jù)容易被偽造,因此,在對(duì)上傳文件類型進(jìn)行檢測(cè)時(shí)應(yīng)該棄用MIME檢測(cè)。

5.3 文件名檢測(cè)

使用白名單規(guī)定上傳文件類型檢測(cè)時(shí)應(yīng)注意區(qū)分大小寫(xiě)。

5.4 文件內(nèi)容檢測(cè)

對(duì)所要上傳的文件內(nèi)容進(jìn)行檢測(cè),判斷其內(nèi)容是否合法,是否符合上傳文件類型要求。

[1] 王江為.基于ASP上傳源碼的漏洞分析及解決策略研究[M].安徽:電腦知識(shí)與技術(shù),2012

[2] 張新杰.網(wǎng)絡(luò)編程文件的上傳漏洞以及解決方法[M].河北:價(jià)值工程,2012

[3] 白興瑞.高校WEB站點(diǎn)的上傳漏洞分析及防范[M].河北:衡水學(xué)院學(xué)報(bào),2011

猜你喜歡
文件類型文件名服務(wù)端
基于文件簽名的FAT32文件恢復(fù)技術(shù)原理與實(shí)踐
右鍵調(diào)用多重更名更方便
Excel輕松提取文件名
把我的秘密藏起來(lái)
云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
在Windows Server 2008上創(chuàng)建應(yīng)用
HDFS小文件讀寫(xiě)優(yōu)化策略*
不讓長(zhǎng)文件名成為“絆腳石”
電腦迷(2014年8期)2014-04-29 07:37:40
“鴿子”玩升級(jí) 黑你沒(méi)商量
广安市| 阿拉善左旗| 温泉县| 河西区| 渭源县| 三门峡市| 和林格尔县| 治多县| 宜城市| 肃北| 长岛县| 平塘县| 藁城市| 新余市| 陆良县| 攀枝花市| 洛南县| 叶城县| 吴堡县| 清水县| 松桃| 新宁县| 嵊泗县| 榆林市| 湘乡市| 泊头市| 石泉县| 明光市| 突泉县| 瑞丽市| 土默特左旗| 海城市| 惠水县| 建平县| 万年县| 德令哈市| 泰和县| 嘉禾县| 汝城县| 太仓市| 太谷县|