Web滲透文件上傳有哪些漏洞呢簸?

概述

文件上傳漏洞是指用戶上傳了一個(gè)可執(zhí)行的腳本文件,并通過(guò)此腳本文件獲得了執(zhí)行服務(wù)器端命令的能力锰悼。常見場(chǎng)景是web服務(wù)器允許用戶上傳圖片或者普通文本文件保存,而用戶繞過(guò)上傳機(jī)制上傳惡意代碼并執(zhí)行從而控制服務(wù)器团赏。顯然這種漏洞是getshell最快最直接的方法之一箕般,需要說(shuō)明的是上傳文件操作本身是沒(méi)有問(wèn)題的,問(wèn)題在于文件上傳到服務(wù)器后馆里,服務(wù)器怎么處理和解釋文件隘世。

常見校驗(yàn)上傳文件的方法

客戶端校驗(yàn)

1.通過(guò)javascript來(lái)校驗(yàn)上傳文件的后綴是否合法,可以采用白名單鸠踪,也可以采用黑名單的方式

2.判斷方式:在瀏覽加載文件丙者,但還未點(diǎn)擊上傳按鈕時(shí)便彈出對(duì)話框,內(nèi)容如:只允許上傳.jpg/.jpeg/.png后綴名的文件营密,而此時(shí)并沒(méi)有發(fā)送數(shù)據(jù)包械媒。

服務(wù)器端校驗(yàn)

1.校驗(yàn)請(qǐng)求頭 content-type字段,例如用PHP檢測(cè)

2.通過(guò)自己寫正則匹配來(lái)判斷文件幻數(shù)(文件頭)內(nèi)容是否符合要求评汰,一般來(lái)說(shuō)屬于白名單的檢測(cè)纷捞,常見的文件頭(文件頭標(biāo)志位)如下

(1).JPEG;.JPE;.JPG,”JPGGraphicFile”(FFD8FFFE00)

(2).gif被去,”GIF89A”(474946383961)

(3).zip主儡,”ZipCompressed”(504B0304)

(4).doc;.xls;.xlt;.ppt;.apr,”MSCompoundDocumentv1orLotusApproachAPRfile”(D0CF11E0A1B11AE1

3.文件加載檢測(cè):一般是調(diào)用API或函數(shù)去進(jìn)行文件加載測(cè)試惨缆,例如圖像渲染測(cè)試糜值,當(dāng)測(cè)試結(jié)果正常的時(shí)候才允許上傳

1丰捷、一次渲染(代碼注入)

2、二次渲染

4.后綴名黑名單校驗(yàn)

5.后綴名白名單校驗(yàn)

6.自定義

WAF校驗(yàn)寂汇,即使用不同的WAF產(chǎn)品來(lái)進(jìn)行過(guò)濾病往,通常是獨(dú)立與服務(wù)程序的一段中間程序或者硬件

對(duì)應(yīng)校驗(yàn)的繞過(guò)方法

1.客戶端校驗(yàn)繞過(guò):

直接修改js代碼或者使用抓包的方法修改請(qǐng)求內(nèi)容繞過(guò),可以先上傳一個(gè)gif木馬骄瓣,通過(guò)抓包修改為 jsp/php/asp停巷,只用這種方法來(lái)檢測(cè)是肯定可以繞過(guò)的。

2.服務(wù)端繞過(guò)

校驗(yàn)請(qǐng)求頭content-type字段繞過(guò)

通過(guò)抓包來(lái)修改Http頭的content-type即可繞過(guò)榕栏,也肯定是可以繞過(guò)這種檢測(cè)

POST /upload.php HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: localhost
User-Agent: libwww-perl/5.803
Content-Type: multipart/form-data; boundary=xYzZY
Content-Length: 155
--xYzZY
Content-Disposition: form-data; name="userfile"; filename="shell.php"
Content-Type: image/gif (原為 Content-Type: text/plain)
<?php system($_GET['command']);?>
--xYzZY-

文件幻數(shù)(文件頭)檢測(cè)繞過(guò):

在木馬內(nèi)容的前面插入對(duì)應(yīng)的文件頭內(nèi)容畔勤,例如:GIF89a ,更保險(xiǎn)的方法是在可上傳的文件中插入木馬代碼扒磁,然后修改后綴

文件加載檢測(cè):

通過(guò)例如加載文件進(jìn)行圖像渲染的方式來(lái)測(cè)試硼被,這個(gè)時(shí)候就一般需要在正常的文件中插入木馬代碼了,例如圖像渗磅,那么插入的代碼一般會(huì)放在圖像的注釋區(qū)嚷硫,因此不會(huì)影響圖像正常渲染繞過(guò)這種檢測(cè),此時(shí)可以使用工具(稱為插馬器)來(lái)進(jìn)行插入始鱼,例如edjpgcom仔掸,或者直接用copy命令來(lái)合成也可以。當(dāng)然這種檢測(cè)不一定能夠完全繞過(guò)

后綴名檢測(cè)

后綴黑名單檢測(cè):找查blacklist(黑名單列表)的漏網(wǎng)之魚医清,例如

大小寫:如果檢測(cè)的時(shí)候不忽略大小寫起暮,那么可以改變后綴名的大小寫繞過(guò)

擴(kuò)展名:列表中如果忽略了某些后綴

后綴白名單檢測(cè):白名單檢測(cè)還是會(huì)比黑名單強(qiáng)一點(diǎn),常見的繞過(guò)方法有%00截?cái)嗷崂樱€有服務(wù)器的解析漏洞

%00截?cái)嗦┒矗喝绻嬖谶@類漏洞负懦,那么后綴名的檢測(cè)都可以繞過(guò),此時(shí)我們可以如下命名一個(gè)上傳文件

test.php%00.jpg
解析漏洞:這類漏洞是本身服務(wù)器的中間件產(chǎn)生的柏腻,例如apache纸厉,nginx都被爆出過(guò)存在解析漏洞,存在解析漏洞的話五嫂,上傳的安全性幾乎就完全失去了颗品,下面再詳細(xì)分析。

和其他漏洞結(jié)合的上傳
服務(wù)器解析漏洞
IS5.x-6.x解析漏洞

使用iis5.x-6.x版本的服務(wù)器沃缘,大多為windows server 2003躯枢,網(wǎng)站比較古老,開發(fā)語(yǔ)句一般為asp槐臀;該解析漏洞也只能解析asp文件锄蹂,而不能解析aspx文件。

目錄解析(6.0)

形式:www.xxx.com/xx.asp/xx.jpg 原理: 服務(wù)器默認(rèn)會(huì)把.asp水慨,.asp目錄下的文件都解析成asp文件得糜。

文件解析

形式:www.xxx.com/xx.asp;.jpg 原理:服務(wù)器默認(rèn)不解析;號(hào)后面的內(nèi)容寨昙,因此xx.asp;.jpg便被解析成asp文件了。 解析文件類型

IIS6.0 默認(rèn)的可執(zhí)行文件除了asp還包含這三種 :

/test.asa
/test.cer
/test.cdx
apache解析漏洞
漏洞原理

Apache 解析文件的規(guī)則是從右到左開始判斷解析,如果后綴名為不可識(shí)別文件解析,就再往左判斷掀亩。比如 test.php.qwe.asd “.qwe”和”.asd” 這兩種后綴是apache不可識(shí)別解析,apache就會(huì)把wooyun.php.qwe.asd解析成php。

漏洞形式

www.xxxx.xxx.com/test.php.php123
其余配置問(wèn)題導(dǎo)致漏洞

如果在 Apache 的 conf 里有這樣一行配置 AddHandler php5-script .php 這時(shí)只要文件名里包含.php 即使文件名是 test2.php.jpg 也會(huì)以 php 來(lái)執(zhí)行欢顷。

如果在 Apache 的 conf 里有這樣一行配置 AddType application/x-httpd-php .jpg 即使擴(kuò)展名是 jpg槽棍,一樣能以 php 方式執(zhí)行。

修復(fù)方案

apache配置文件抬驴,禁止.php.這樣的文件執(zhí)行炼七,配置文件里面加入

用偽靜態(tài)能解決這個(gè)問(wèn)題,重寫類似.php.*這類文件布持,打開apache的httpd.conf找到LoadModule rewritemodule modules/modrewrite.so 把#號(hào)去掉豌拙,重啟apache,在網(wǎng)站根目錄下建立.htaccess文件

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php
</IfModule>
nginx解析漏洞
漏洞原理

Nginx默認(rèn)是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通過(guò)正則匹配設(shè)置 SCRIPT_FILENAME题暖。當(dāng)訪問(wèn) www.xx.com/phpinfo.jpg/1.php這個(gè)URL時(shí)按傅, $fastcgi_script_name會(huì)被設(shè)置為 “phpinfo.jpg/1.php”,然后構(gòu)造成 SCRIPT_FILENAME傳遞給PHP CGI胧卤,但是PHP為什么會(huì)接受這樣的參數(shù)唯绍,并將phpinfo.jpg作為PHP文件解析呢?這就要說(shuō)到fix_pathinfo這個(gè)選項(xiàng)了。 如果開啟了這個(gè)選項(xiàng)枝誊,那么就會(huì)觸發(fā)在PHP中的如下邏輯:

PHP會(huì)認(rèn)為SCRIPTFILENAME是phpinfo.jpg况芒,而1.php是PATHINFO,所以就會(huì)將phpinfo.jpg作為PHP文件來(lái)解析了

漏洞形式

www.xxxx.com/UploadFiles/image/1.jpg/1.php
www.xxxx.com/UploadFiles/image/1.jpg %00.php
www.xxxx.com/UploadFiles/image/1.jpg/ %20.php
另外一種手法:上傳一個(gè)名字為test.jpg叶撒,然后訪問(wèn)test.jpg/.php,在這個(gè)目錄下就會(huì)生成一句話木馬shell.php绝骚。

IIS7.5解析漏洞
IIS7.5的漏洞與nginx的類似,都是由于php配置文件中祠够,開啟了 cgi.fix_pathinfo压汪,而這并不是nginx或者iis7.5本身的漏洞。

操作系統(tǒng)相關(guān)
上傳不符合windows文件命名規(guī)則的文件名

test.asp.
test.asp(空格)
test.php:1.jpg
test.php::DATA shell.php::DATA…….
會(huì)被某些版本的windows系統(tǒng)自動(dòng)去掉不符合規(guī)則符號(hào)后面的內(nèi)容古瓤。

linux下后綴名大小寫

linux是大小寫敏感的蛾魄,因此一般檢測(cè)也會(huì)區(qū)分大小寫,但某些解析器是不區(qū)分大小寫的湿滓,例如PHP滴须,上傳php不被解析,可以試試上傳pHp后綴的文件名叽奥。

CMS扔水、編輯器漏洞

CMS漏洞: 可以針對(duì)不同CMS存在的上傳漏洞進(jìn)行繞過(guò)。

編輯器漏洞:比如FCK朝氓,ewebeditor等魔市,可以針對(duì)編輯器的漏洞進(jìn)行繞過(guò)主届。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市待德,隨后出現(xiàn)的幾起案子君丁,更是在濱河造成了極大的恐慌,老刑警劉巖将宪,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绘闷,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡较坛,警方通過(guò)查閱死者的電腦和手機(jī)印蔗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丑勤,“玉大人华嘹,你說(shuō)我怎么就攤上這事》ň海” “怎么了耙厚?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)岔霸。 經(jīng)常有香客問(wèn)我颜曾,道長(zhǎng),這世上最難降的妖魔是什么秉剑? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任泛豪,我火速辦了婚禮,結(jié)果婚禮上侦鹏,老公的妹妹穿的比我還像新娘诡曙。我一直安慰自己,他們只是感情好略水,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布价卤。 她就那樣靜靜地躺著,像睡著了一般渊涝。 火紅的嫁衣襯著肌膚如雪慎璧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天跨释,我揣著相機(jī)與錄音胸私,去河邊找鬼。 笑死鳖谈,一個(gè)胖子當(dāng)著我的面吹牛岁疼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缆娃,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼捷绒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瑰排!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起暖侨,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤椭住,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后字逗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體京郑,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年扳肛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乘碑。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挖息,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兽肤,到底是詐尸還是另有隱情套腹,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布资铡,位于F島的核電站电禀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏笤休。R本人自食惡果不足惜尖飞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望店雅。 院中可真熱鬧政基,春花似錦、人聲如沸闹啦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)窍奋。三九已至荐健,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間琳袄,已是汗流浹背江场。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窖逗,地道東北人扛稽。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像滑负,于是被迫代替她去往敵國(guó)和親在张。 傳聞我的和親對(duì)象是個(gè)殘疾皇子用含,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容