白嫩白嫩BBBBBBBBB-_白洁公交车被挺进体内H_白洁被五个人玩一夜_白洁被强后奷高潮了_白洁被邻居灌满精H高清视频_把腿张开老子臊烂你的电视剧

您當前的位置:首頁 > 新聞資訊 > 產(chǎn)品動態(tài) > 正文

【新東網(wǎng)安全大咖帶您走進應用安全】中木馬了?別捉急,我來拯救你!

發(fā)布時間: 2016-10-31 15:25:51  
分享到:

 

 

文/ 邵元明  信息安全部

 

 

 

 

 
專欄介紹

新東網(wǎng)自2001年成立以來,掌握大數(shù)據(jù)、云計算、通信、物聯(lián)網(wǎng)及區(qū)塊鏈等信息技術,擁有一支逾16年經(jīng)驗的強大IT團隊。為沉淀企業(yè)技術實力,繼續(xù)發(fā)揮行業(yè)優(yōu)勢,《東網(wǎng)快訊》特邀新東網(wǎng)技術大咖帶您走進這些先進信息技術,揭秘新東網(wǎng)16年來的技術成果,每周五發(fā)布。

 

在WEB2.0時代,隨著WEB應用與用戶的交互逐漸增多,文件上傳功能作為WEB應用的基本功能也在越來越多的網(wǎng)站中被普遍使用。例如,許多網(wǎng)站都允許用戶自行上傳頭像、一些社交類網(wǎng)站允許用戶上傳照片、一些服務類網(wǎng)站需要用戶上傳證明材料的電子檔、電商類網(wǎng)站允許用戶上傳圖片展示商品情況等。然而,看似不起眼的文件上傳功能如果沒有做好安全防護措施,就存在巨大的安全風險,黑客可以通過上傳WEBSHELL文件來對服務器進行控制。

 

 

 

WEBSHELL又稱網(wǎng)頁木馬文件,根據(jù)開發(fā)語言的不同又分為ASP木馬、PHP木馬、JSP木馬等。如果該類木馬利用腳本語言中的系統(tǒng)命令執(zhí)行、文件讀寫等函數(shù)功能,一旦上傳到服務器被腳本引擎解析,攻擊者就可以實現(xiàn)對服務器的控制。

 


 

稍有經(jīng)驗的開發(fā)者都知道對文件上傳功能進行一些限制,防止用戶上傳網(wǎng)頁木馬文件。但是如果開發(fā)者沒有使用有效的限制手段,就往往不能很好地阻止攻擊者上傳木馬文件。下面,我們對一些常見的限制手段進行分析:

 

一、JavaScript檢測

 

JavaScript檢測是在客戶端瀏覽器上使用JavaScript腳本對上傳的文件進行檢測。由于JavaScript是在客戶端運行的,攻擊者可以通過禁用JavaScript腳本、修改JavaScript腳本、在上傳過程中攔截修改數(shù)據(jù)包等方式輕易地繞過JavaScript檢測。

 

 

二、MIME類型和文件內(nèi)容檢測

 

一些開發(fā)者會在服務端通過上傳文件的MIME類型和文件內(nèi)容對文件進行檢查,如只允許MIME類型為圖片或文件內(nèi)容中包含圖片類型文件頭的文件上傳,以此阻止用戶上傳網(wǎng)頁木馬文件。這種方式也存在缺陷。因為MIME類型是由客戶端提交的可以被篡改,而在網(wǎng)頁木馬文件中添加圖片類型的文件頭并不會影響網(wǎng)頁木馬文件正常執(zhí)行,因此攻擊者可以通過篡改或偽造請求包,發(fā)送MIME類型和文件頭符合要求的木馬文件。

 

 

三、文件擴展名檢測

 

相比較前面兩種檢測模式,在服務端針對文件擴展名的檢測會更加有效。因為正常情況下,如果用戶上傳的網(wǎng)頁木馬文件不是以響應的腳本文件擴展名上傳的,則無法正常運行,達不到控制網(wǎng)站服務器的目的。然而,如果對文件擴展名檢測的實現(xiàn)方式不當?shù)脑捜匀淮嬖陲L險。文件擴展名檢測通常分為黑名單檢測和白名單檢測兩種:

 

黑名單檢測:黑名單定義了一系列不安全的擴展名。服務器端在接受文件后,與黑名單擴展名對比,如果文件擴展名與黑名單里的擴展名匹配,則認為文件不合法。例如,可以將ASP、PHP、JSP等常見的腳本文件擴展名列入黑名單禁止上傳。黑名單主要存在的問題是黑名單的完整性問題,如asa、cer、cdx、php3等一些不常用的擴展名可能沒有加入黑名單;在進行黑名單匹配前沒有文件擴展名進行大小寫轉(zhuǎn)換操作,且黑名單擴展名全部為小寫,那就意味著php、asp這樣的擴展名,只要換成PHP、ASP就能正常上傳;在Windows系統(tǒng)下,如果文件名以小數(shù)點、下劃線或空格作為結(jié)尾,系統(tǒng)保存文件時會自動去除將這些字符,因此如果黑名單中沒有包括類似“asp.”或者“asp_”這樣的擴展名,攻擊者可以通過上傳這些擴展名的網(wǎng)頁木馬文件繞過黑名單檢測實現(xiàn)上傳木馬。

 

 

白名單檢測的機制恰恰相反,通常是根據(jù)業(yè)務實際需要事先定義好上傳的文件擴展名只能為JPG、PNG、GIF、7Z等無安全風險的擴展名,當攻擊者上傳其他擴展名的文件就會被拒絕。相比之下,白名單檢測機制的可靠性會更強一些,不像黑名單檢測機制一樣容易被繞過,但在一些特殊情況下攻擊者仍有一些方法可以繞過檢測機制進行攻擊:

 

1、對于IIS6.0而言,若文件目錄名以.ASP或.ASA等腳本文件擴展名形式結(jié)尾,則該文件目錄下的所有文件都會被當做ASP文件解析。因此,如果上傳功能允許用戶自定義上傳的文件路徑,則可以通過將文件路徑設置為以.ASP結(jié)尾的形式進行攻擊,此時即使上傳的網(wǎng)頁木馬文件符合擴展名白名單仍會被作為腳本解析。此外,在IIS6.0的環(huán)境下如果上傳類似于1.php;1.jpg形式的網(wǎng)頁木馬文件,也會被當做腳本解析。

 

 

2、在windows環(huán)境下,/x00是終止符,如果文件路徑或文件名包含/x00則在保存文件的時候系統(tǒng)會自動將/x00后的內(nèi)容略去,因此可以上傳類似于1.php/x001.jpg這樣的文件或?qū)⑽募蟼髂夸浽O置為1.php/x00。系統(tǒng)在保存文件時都會將文件保存為1.php這樣的腳本文件,從而達到攻擊目的。

 

 

 

3、Apache在解析文件時如果遇到無法識別的擴展名,將會從后向前解析,直到碰到認識的擴展名為止。如果擴展名白名單中包含Apache無法解析的擴展名(以.7z為例),則可以構造類似于:1.php.7z這樣的文件名進行上傳。由于7z文件Apache無法解析,Apache最終會將該文件作為PHP腳本解析。

 

 

4、Nginx在早期的版本中,如果用戶在URL后加上類似于/1.php這樣的字符串進行訪問,URL中的文件就會被按照字符串中的腳本類型進行解析。因此可以通過上傳一個擴展名符合白名單要求的網(wǎng)頁木馬文件,訪問時在URL后加上上述字符串將該文件解析為網(wǎng)頁木馬。

 

 

綜上所述,要保障文件上傳功能的安全性就需要限制用戶上傳的文件類型,防止用戶上傳網(wǎng)頁木馬文件。在服務端對擴展名進行白名單檢測是相對安全的做法,但如果處理不當仍然存在風險。建議對文件上傳功能進行如下處置,可以避免本文中各種文件上傳漏洞:

 

1、在服務端對擴展名進行白名單校驗,擴展名不符合白名單的不允許上傳;

 

2、上傳過程不允許用戶直接設置文件路徑,必要時可以使用預先設置路徑列表中的匹配索引值,嚴禁泄露文件絕對路徑;

 

3、對文件進行重命名,使用隨機性好的文件目錄和文件名進行保存;

 

4、對文件的上傳目錄和臨時文件目錄設置不解析和執(zhí)行;

 

5、有條件時可以將文件以數(shù)據(jù)的形式保存和讀取。

 

分享到:
地址:福建省福州市銅盤路軟件大道89號軟件園A區(qū)26號樓 電話:0591-83519233 傳真:0591-87882335 E-mail:doone@doone.com.cn
版權所有 新東網(wǎng)科技有限公司 閩ICP備07052074號-1 閩公網(wǎng)安備 35010202001006號
建水县| 承德县| 仲巴县| 兰州市| 方城县| 鹤壁市| 延庆县| 宜春市| 衡阳市| 定边县| 阿拉善左旗| 柞水县| 嘉义市| 新建县| 南部县| 西吉县| 临泉县| 汤原县| 枣阳市| 卫辉市| 华亭县| 尚志市| 昌江| 长治县| 屏边| 五河县| 拉孜县| 玉溪市| 武乡县| 咸阳市| 读书| 丹巴县| 仁化县| 高陵县| 洪湖市| 长治市| 新化县| 容城县| 澄江县| 青铜峡市| 浑源县|