解析文件上傳漏洞 從FCKEditor文件上傳漏洞談起

客戶端繞過
可以利用burp抓包改包,先上傳一個(gè)gif類型的木馬,然后通過burp將其改為asp/php/jsp后綴名即可。
2.服務(wù)端校驗(yàn)
2.1 content-type字段校驗(yàn)
文件類型繞過
我們可以通過抓包,將content-type字段改為image/gif
2.2 文件頭校驗(yàn)
可以通過自己寫正則匹配,判斷文件頭內(nèi)容是否符合要求,這里舉幾個(gè)常見的文件頭對(duì)應(yīng)關(guān)系:
(1) .JPEG;.JPE;.JPG,”JPGGraphic File”
(2) .gif,”GIF 89A”
(3) .zip,”Zip Compressed”
(4) .doc;.xls;.xlt;.ppt;.apr,”MS Compound Document v1 or Lotus Approach APRfile”
文件頭繞過
在木馬內(nèi)容基礎(chǔ)上再加了一些文件信息,有點(diǎn)像下面的結(jié)構(gòu)
GIF89a
2.3 擴(kuò)展名驗(yàn)證
MIME驗(yàn)證
MIME(Multipurpose Internet Mail Extensions)多用途互聯(lián)網(wǎng)郵件擴(kuò)展類型。是設(shè)定某種擴(kuò)展名的文件用一種應(yīng)用程序來打開的方式類型,當(dāng)該擴(kuò)展名文件被訪問的時(shí)候,瀏覽器會(huì)自動(dòng)使用指定應(yīng)用程序來打開。多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
它是一個(gè)互聯(lián)網(wǎng)標(biāo)準(zhǔn),擴(kuò)展了電子郵件標(biāo)準(zhǔn),使其能夠支持:
非ASCII字符文本;非文本格式附件(二進(jìn)制、聲音、圖像等);由多部分(multiple parts)組成的消息體;包含非ASCII字符的頭信息(Header information)。
這個(gè)標(biāo)準(zhǔn)被定義在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 MIME改善了由RFC 822轉(zhuǎn)變而來的RFC 2822,這些舊標(biāo)準(zhǔn)規(guī)定電子郵件標(biāo)準(zhǔn)并不允許在郵件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英語字符消息和二進(jìn)制文件,圖像,聲音等非文字消息原本都不能在電子郵件中傳輸(MIME可以)。MIME規(guī)定了用于表示各種各樣的數(shù)據(jù)類型的符號(hào)化方法。 此外,在萬維網(wǎng)中使用的HTTP協(xié)議中也使用了MIME的框架,標(biāo)準(zhǔn)被擴(kuò)展為互聯(lián)網(wǎng)媒體類型。
MIME的作用
使客戶端軟件區(qū)分不同種類的數(shù)據(jù),例如web瀏覽器就是通過MIME類型來判斷文件是GIF圖片,還是可打印的PostScript文件。 Web服務(wù)器使用MIME來說明發(fā)送數(shù)據(jù)的種類,Web客戶端使用MIME來說明希望接收到的數(shù)據(jù)種類。
一個(gè)普通的文本郵件的信息包含一個(gè)頭部分(To: From: Subject: 等等)和一個(gè)體部分(Hello Mr.,等等)。在一個(gè)符合MIME的信息中,也包含一個(gè)信息頭并不奇怪,郵件的各個(gè)部分叫做MIME段,每段前也綴以一個(gè)特別的頭。MIME郵件只是基于RFC 822郵件的一個(gè)擴(kuò)展,然而它有著自己的RFC規(guī)范集。
頭字段:MIME頭根據(jù)在郵件包中的位置,大體上分為MIME信息頭和MIME段頭。(MIME信息頭指整個(gè)郵件的頭,而MIME段頭只每個(gè)MIME段的頭。)
常見MIME類型
mimntype判斷
一般先判斷內(nèi)容的前十個(gè)字節(jié),來判斷文件類型,然后再判斷后綴名。
文件擴(kuò)展名繞過
前提:黑名單校驗(yàn)
黑名單檢測(cè):一般有個(gè)專門的 blacklist 文件,里面會(huì)包含常見的危險(xiǎn)腳本文件。
繞過方法:
(1)找黑名單擴(kuò)展名的漏網(wǎng)之魚 - 比如 asa 和 cer 之類
(2)可能存在大小寫繞過漏洞 - 比如 aSp 和 pHp 之類
能被解析的文件擴(kuò)展名列表:
jsp jspx jspf
asp asa cer aspx
三、配合文件包含漏洞
前提:校驗(yàn)規(guī)則只校驗(yàn)當(dāng)文件后綴名為asp/php/jsp的文件內(nèi)容是否為木馬。
繞過方式:(這里拿php為例,此漏洞主要存在于PHP中)
(1)先上傳一個(gè)內(nèi)容為木馬的txt后綴文件,因?yàn)楹缶Y名的關(guān)系沒有檢驗(yàn)內(nèi)容;
(2)然后再上傳一個(gè).php的文件,內(nèi)容為“上傳的txt文件路徑”);?>
此時(shí),這個(gè)php文件就會(huì)去引用txt文件的內(nèi)容,從而繞過校驗(yàn),下面列舉包含的語法:
(2)linux下后綴名大小寫
在linux下,如果上傳php不被解析,可以試試上傳pHp后綴的文件名。
CMS、編輯器漏洞
(1)CMS漏洞:比如說JCMS等存在的漏洞,可以針對(duì)不同CMS存在的上傳漏洞進(jìn)行繞過。
(2)編輯器漏洞:比如FCK,ewebeditor等,可以針對(duì)編輯器的漏洞進(jìn)行繞過。
這兩方面的漏洞以后單獨(dú)成文匯總,這里點(diǎn)到為止。
配合其他規(guī)則
(1)0x00截?cái)啵夯谝粋€(gè)組合邏輯漏洞造成的,通常存在于構(gòu)造上傳文件路徑的時(shí)候
test.php(0x00).jpg
test.php%00.jpg
路徑/upload/1.php(0x00),文件名1.jpg,結(jié)合/upload/1.php(0x00)/1.jpg
四、WAF繞過
1、 垃圾數(shù)據(jù)
有些主機(jī)WAF軟件為了不影響web服務(wù)器的性能,會(huì)對(duì)校驗(yàn)的用戶數(shù)據(jù)設(shè)置大小上限,比如1M。此種情況可以構(gòu)造一個(gè)大文件,前面1M的內(nèi)容為垃圾內(nèi)容,后面才是真正的木馬內(nèi)容,便可以繞過WAF對(duì)文件內(nèi)容的校驗(yàn)
當(dāng)然也可以將垃圾數(shù)據(jù)放在數(shù)據(jù)包最開頭,這樣便可以繞過對(duì)文件名的校驗(yàn)。
2、 filename
針對(duì)早期版本安全狗,可以多加一個(gè)filename
POST/GET
有些WAF的規(guī)則是:如果數(shù)據(jù)包為POST類型,則校驗(yàn)數(shù)據(jù)包內(nèi)容。
此種情況可以上傳一個(gè)POST型的數(shù)據(jù)包,抓包將POST改為GET。
以上方式針對(duì)WAF,以上介紹的服務(wù)器解析漏洞、文件包含漏洞等都可以嘗試?yán)@過。
五、設(shè)計(jì)安全的文件上傳功能
1、文件上傳的目錄設(shè)置為不可執(zhí)行
2、判斷文件類型:強(qiáng)烈推薦白名單方式。此外,對(duì)于圖片的處理,可以使用壓縮函數(shù)或者resize函數(shù),在處理圖片的同時(shí)破壞圖片中可能包含的HTML代碼。
3、使用隨機(jī)數(shù)改寫文件名和文件路徑:一個(gè)是上傳后無法訪問;再來就是像shell.php.rar.rar和crossdomain.xml這種文件,都將因?yàn)橹孛鵁o法攻擊。
4、單獨(dú)設(shè)置文件服務(wù)器的域名:由于瀏覽器同源策略的關(guān)系,一系列客戶端攻擊將失效,比如上傳crossdomain.xml、上傳包含Javascript的XSS利用等問題將得到解決。
以上就是腳本之家小編為大家具體的講解的文件上傳漏洞及解析漏洞總結(jié),需要的用戶快來看看吧,想了解更多精彩教程請(qǐng)繼續(xù)關(guān)注腳本之家網(wǎng)站!
相關(guān)文章
- 偶爾在網(wǎng)上看到這些,拿來和大家一塊看看,也好讓各個(gè)站長(zhǎng)懂得保護(hù)自己的網(wǎng)站2012-10-16
- 安全狗是一款大家熟悉的服務(wù)器安全加固產(chǎn)品,據(jù)稱已經(jīng)擁有50W的用戶量。最近經(jīng)過一些研究,發(fā)現(xiàn)安全狗的一些防護(hù)功能,例如SQL注入、文件上傳、防webshell等都可以被繞過2014-07-17
中國(guó)移動(dòng)mas2.0平臺(tái)系統(tǒng)漏洞暴光 附修復(fù)方法
MAS是中國(guó)移動(dòng)的短信代理網(wǎng)關(guān)(平臺(tái))。MAS是Mobile Agent Server的簡(jiǎn)稱。目前多個(gè)政府部門、國(guó)有大型企業(yè)部門、運(yùn)營(yíng)商、金融部門都采用該平臺(tái)。MAS2.0是中國(guó)新一代的代理2012-05-11查找Centos Linux服務(wù)器上入侵者的WebShell后門
服務(wù)器被掛馬或被黑的朋友應(yīng)該知道,黑客入侵web服務(wù)器的第一目標(biāo)是往服務(wù)器上上傳一個(gè)webshell,有了webshell黑客就可以干更多的事 情2012-07-10- PHP網(wǎng)頁(yè)的安全性問題,針對(duì)PHP的網(wǎng)站主要存在下面幾種攻擊方式2011-03-11
- 我們的服務(wù)器又出入侵事故了。有客戶的html 網(wǎng)頁(yè)底部被插入了一段js 腳本, 導(dǎo)致訪客打開網(wǎng)頁(yè)時(shí)被殺毒軟件警告網(wǎng)站上有惡意代碼2012-07-10
- 漏洞說明: php是一款被廣泛使用的編程語言,可以被嵌套在html里用做web程序開發(fā)。phpinfo()是用來顯示當(dāng)前php環(huán)境的一個(gè)函數(shù),許多站點(diǎn)和程序都會(huì)將phpinfo放在自己2008-10-08
最新win2003 II6解析漏洞實(shí)戰(zhàn)及應(yīng)用
新 win2003 IIS6 解析漏洞,大家可以參考下,注意防范。2009-11-23服務(wù)器上網(wǎng)站被掛Iframe木馬的解決方法
今天訪問公司的一個(gè)網(wǎng)站,突然發(fā)現(xiàn)網(wǎng)頁(yè)顯示不對(duì),右鍵查看HTML代碼,發(fā)現(xiàn)iframe了一個(gè)網(wǎng)站的js文件,不用說,肯定被掛馬了2014-07-31- 本文介紹了使用CSRF漏洞攻擊D-link路由器全過程,主要目的是如何通過CSRF漏洞實(shí)現(xiàn)遠(yuǎn)程管理訪問D-link路由器,需要的朋友可以參考下2014-04-25