文件上傳漏洞的練習(xí)(upload-labs)

實(shí)驗(yàn)環(huán)境:upload-labs靶場

靶場環(huán)境使用phpstudy和xampp搭建轩拨,因?yàn)閮蛇叾几饔幸徊糠稚蟼鳈C(jī)制無法正常運(yùn)作拇派。

這種機(jī)制的繞過需要大量的經(jīng)驗(yàn)與時(shí)間牺陶,在不知道后臺(tái)代碼的情況下只能根據(jù)情況進(jìn)行合理嘗試。

Pass-01

一般的題目最開始的都是最簡單的凡蜻,考慮前端限制文件類型。

查看頁面源碼垢箕,果然在前端進(jìn)行了限制划栓。

前端代碼

那么我們把準(zhǔn)備好的php文件后綴改為.jpg,這樣就能繞過前端的檢測条获。

修改后的文件

然后上傳的時(shí)候使用burp suite攔截忠荞,并把文件后綴改回.php,成功上傳php文件帅掘。

修改前
修改后
成功上傳

上傳成功的結(jié)果基本都一樣委煤,后面不再贅述。

Pass-02

猜測服務(wù)器校驗(yàn)content-type修档,因?yàn)橐笊蟼鞯奈募菆D片碧绞,所以校驗(yàn)會(huì)要求這個(gè)參數(shù)的值是image/jpeg,image/png吱窝,image/gif等

嘗試修改content-type讥邻,將其修改為gif,這樣如果服務(wù)器校驗(yàn)了content-type院峡,就會(huì)認(rèn)為它是合法的兴使。

修改Content-type

成功上傳php文件!

Pass-03

服務(wù)器采用黑名單判斷(當(dāng)然如果是黑盒測試我們是不知道的)

我們嘗試使用如.php3,.php5照激,.phtml這樣的文件后綴來繞過发魄。

因?yàn)檫@樣的后綴名依然可以被php解析,而且可以繞過一些簡單的黑名單過濾俩垃。

php3

上傳成功励幼!但是可能因?yàn)榉?wù)器配置原因,沒有成功解析php文件吆寨。

所以為了說明問題赏淌,這里引入另一個(gè)實(shí)驗(yàn)環(huán)境:墨者學(xué)院平臺(tái)題目

鏈接:https://www.mozhe.cn/bug/detail/UjV1cnhrbUxVdmw5VitBdmRyemNDZz09bW96aGUmozhe

在此題中上傳一句話木馬,并將后綴修改為.php3啄清。成功上傳!

文件保存路徑

然后我們打開中國菜刀俺孙,去連接我們上傳的木馬文件辣卒。

連接成功!說明后綴為.php3的文件確實(shí)被正確解析了睛榄。

image.png

Pass-04

此題需要使用xampp環(huán)境荣茫。

此題幾乎過濾了所有有問題的后綴名,修改后綴變得不可用了场靴。

但是還有一個(gè)后綴名可以用啡莉,就是.htaccess港准。

這屬于Apache的一種配置文件,我們創(chuàng)建一個(gè)名為.htaccess的文件咧欣,在里面寫入如下內(nèi)容浅缸。

配置文件

意思是令所有的文件后綴都以php進(jìn)行解析。

比如我們上傳一個(gè)圖片文件魄咕,服務(wù)器也會(huì)把圖片文件當(dāng)成php文件進(jìn)行解析衩椒。

所以我們先把寫好的.htaccess上傳。

沒有問題哮兰,成功上傳毛萌。

然后我們把php文件后綴修改成.jpg,然后上傳喝滞。

上傳成功阁将,此時(shí)兩個(gè)文件在同一目錄下。

目錄

我們嘗試解析jpg文件右遭。

解析結(jié)果

可以看到成功被解析為php文件做盅!

Pass-05

此題使用xampp環(huán)境。

后臺(tái)過濾了幾乎所有有問題的后綴狸演,包括.htaccess言蛇。

我們嘗試用大小寫繞過。

在上傳文件的時(shí)候修改文件后綴名的大小寫宵距。

修改為大寫

成功上傳腊尚,我們嘗試解析這個(gè)文件。

成功

解析成功满哪,沒有問題婿斥!

Pass-06

依舊是黑名單機(jī)制,但是過濾更全面哨鸭。

這里利用windows的機(jī)制:文件名中不能出現(xiàn)點(diǎn)民宿,冒號,空格等符號的特性像鸡,否則會(huì)直接消除活鹰。

這樣我們在上傳文件過程中,在文件后綴名后面加上一個(gè)空格只估。

加空格

成功上傳志群!而且可以看到上傳后的文件名,后綴中自然是沒有空格的蛔钙,可以正常解析锌云。

成功

Pass-07

還是黑名單,但是這次變成了點(diǎn)吁脱。

與第六題相似桑涎,在文件后綴名后面加上一個(gè).即可成功繞過限制上傳彬向。

Pass-08

依然是利用windows特性,在文件名后綴后面加上::$DATA攻冷。

感覺挺生僻的娃胆,先作為一種知識(shí)儲(chǔ)備吧。

添加后綴

Pass-09

在這題里面刪除了文件名末尾的點(diǎn)讲衫,而且去掉了空格缕棵。

那么我們可以構(gòu)造一下,在文件名后綴末尾加上. .(點(diǎn)空格點(diǎn))

這樣去掉點(diǎn)涉兽,再去掉空格招驴,剩下的部分就是filename.

又因?yàn)閣indows特性,最后剩下的就是filename了枷畏。

添加后綴

OK别厘,成功上傳!

Pass-10

本題會(huì)去除所有腳本后綴拥诡。

所以很容易想到雙寫繞過触趴。

我們把文件名寫成test.pphphp。

雙寫

這樣去除了中間的php之后渴肉,剩下的部分組合起來依然是php冗懦。

成功上傳!

Pass-11

有php版本要求仇祭,所以使用phpstudy的環(huán)境(php5.2.17)披蕉,高版本的php已經(jīng)修復(fù)此問題。

還要注意有一個(gè)參數(shù)需要修改乌奇,否則無法上傳成功没讲。打開php目錄下的php.ini文件。

將其中的magic_quotes_gpc修改為OFF狀態(tài)即可礁苗。

我們在上傳時(shí)發(fā)現(xiàn)文件的保存路徑是可控的爬凑。

路徑

考慮使用%00截?cái)辔募缶Y。

%00在處理時(shí)會(huì)被當(dāng)成一種結(jié)束符试伙,也就是說處理到這里碰到%00嘁信,后面的就不繼續(xù)處理了。

我們可以利用這個(gè)原理來截?cái)喽嘤嗟暮缶Y疏叨。

如圖吱抚,我們修改一下保存路徑,把上傳文件名后綴修改為.jpg考廉,這樣可以繞過擴(kuò)展名檢測。

修改擴(kuò)展名

這樣在保存文件的時(shí)候携御,%00后面的多余內(nèi)容全部被截?cái)嗖粒皇O聇est.php既绕。

這樣就成功上傳了php文件。

Pass-12

依然是00截?cái)噤套俏覀冇^察數(shù)據(jù)包發(fā)現(xiàn)路徑變成了post方式提交凄贩。

數(shù)據(jù)包

Get方式提交的路徑會(huì)自動(dòng)解碼%00,但是post方式不會(huì)自動(dòng)解碼袱讹,所以不能直接修改路徑疲扎。

因此我們要通過二進(jìn)制的方式來修改路徑。

修改擴(kuò)展名

如圖捷雕,我們先將文件后綴修改為.jpg來繞過后綴檢測椒丧。

然后在路徑后面加上test.php+。

為什么加上一個(gè)+呢救巷,因?yàn)槲覀円?的二進(jìn)制編碼修改成00的編碼壶熏,而+的編碼(2b)比較方便查找。

我們點(diǎn)開Hex浦译,在里面查找+的編碼并將其修改為00棒假。

Hex

然后將數(shù)據(jù)包放出,php文件成功上傳精盅!

Pass-13

要求上傳一個(gè)圖片馬帽哑,并執(zhí)行文件包含漏洞。

首先我們制作圖片馬:copy 2.jpg+2.php 3.jpg

制作完成之后將圖片馬上傳叹俏。

注意站點(diǎn)本身必須要有文件包含漏洞妻枕,才能利用圖片馬。

我們找到站點(diǎn)下的include.php文件她肯。使用這個(gè)文件包含漏洞打開圖片馬佳头。

圖片馬

看文件底部,這里我們拼接了php語句晴氨,但是沒有顯示出來康嘉,說明已經(jīng)被執(zhí)行了。

但是用中國菜刀連接圖片馬的時(shí)候出了問題籽前。

基本能確定木馬是被執(zhí)行了的亭珍,可能是服務(wù)器的一些配置或者權(quán)限原因,讓菜刀連接失敗枝哄。

我用了另一種方法證明php腳本確實(shí)被執(zhí)行了肄梨。

重新制作一個(gè)圖片馬,這次將php腳本里的內(nèi)容替換成一個(gè)js腳本挠锥。

js腳本

如果這個(gè)腳本被執(zhí)行众羡,瀏覽器會(huì)彈窗顯示一串1。

重新上傳這個(gè)圖片馬蓖租,并且用文件包含漏洞打開粱侣。

網(wǎng)頁彈窗

可以看到腳本確實(shí)被執(zhí)行了羊壹,圖片馬上傳+文件包含漏洞利用成功。

之后的題目基本都是圖片馬或者00截?cái)嗥胗ぃ辉儋樖觥?/p>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末油猫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子柠偶,更是在濱河造成了極大的恐慌情妖,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诱担,死亡現(xiàn)場離奇詭異毡证,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)该肴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門情竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匀哄,你說我怎么就攤上這事秦效。” “怎么了涎嚼?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵阱州,是天一觀的道長。 經(jīng)常有香客問我法梯,道長苔货,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任立哑,我火速辦了婚禮夜惭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘铛绰。我一直安慰自己诈茧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布捂掰。 她就那樣靜靜地躺著敢会,像睡著了一般。 火紅的嫁衣襯著肌膚如雪这嚣。 梳的紋絲不亂的頭發(fā)上鸥昏,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機(jī)與錄音姐帚,去河邊找鬼吏垮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惫皱。 我是一名探鬼主播像樊,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼旅敷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颤霎,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤媳谁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后友酱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晴音,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年缔杉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锤躁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡或详,死狀恐怖系羞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霸琴,我是刑警寧澤椒振,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站梧乘,受9級特大地震影響澎迎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜选调,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一夹供、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仁堪,春花似錦哮洽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至横浑,卻和暖如春剔桨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背徙融。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工洒缀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓树绩,卻偏偏與公主長得像萨脑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子饺饭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

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