任意文件上傳CTF20關(guān)

upload-labs

一個(gè)幫你總結(jié)所有類型的上傳漏洞的靶場

文件上傳靶機(jī)下載地址:https://github.com/c0ny1/upload-labs?

服務(wù)端檢查內(nèi)容 2、? ? 3芦瘾、 4 洋只、需要結(jié)合文件包含漏洞项棠。

黑名單基本都可繞過钢猛。最不安全线定。

pass-01? 客戶端繞過

pass-02? ?把以.php結(jié)尾的小馬改為以.jpg|.png|.gif結(jié)尾崭庸,用burpsuite抓包谍珊,在把.jpg|.png|.gif改回.php即可上傳成功

pass-03 :

設(shè)置了黑名單和刪除兩邊空格。

$deny_ext=array('.asp','.aspx','.php','.jsp');? 這里是黑名單驗(yàn)證 可以試下php3 php5后綴名? 但是Apache默認(rèn)是不允許解析 如果運(yùn)維人員修改配置文件是可以解析的

如果中間件是IIS6.0 2003服務(wù)器的話 可以利用IIS的解析漏洞繞過

直接上傳名為xx.asp:.jpg的文件


pass 04:

先看源碼右犹,集合可以繞過的都設(shè)置了黑名單提澎,刪除文末的點(diǎn)和收尾去空

利用Windows的命名特性 ,先把馬的名字改成xx.jpg抓包 改擴(kuò)展名 改成xx.php:.jpg 上傳念链。? ?Windows系統(tǒng)會(huì)自動(dòng)去掉:.jpg? ? 上傳之后變?yōu)閤x.php盼忌。

但是文件是空的然后再上傳一遍? ?然后將文件名改為x.<或x.<<<或x.>>>或x.>><后再次上傳,重寫x.php文件內(nèi)容掂墓,Webshell代碼就會(huì)寫入原來的x.php空文件中谦纱。

pass-05:

先看源碼。

分析代碼梆暮,發(fā)現(xiàn)以.htaccess為后綴的文件已經(jīng)不允許上傳服协,但是??$file_ext =?strtolower($file_ext);?//轉(zhuǎn)換為小寫??這一句沒有了,我們就可以使用文件名后綴大小寫混合繞過啦粹,把1.php改為1.phP...來上傳

黑名單后綴名:$deny_ext=array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

先將要上傳的木馬改為jpg格式? 偿荷,在抓包 改為 x.phP? ?(windows操作系統(tǒng)不區(qū)分大小寫所以可以執(zhí)行)

pass-06:

先看源碼:沒有收尾去空窘游。

利用Windows系統(tǒng)的文件名特性。文件名最后增加空格和點(diǎn)跳纳,寫成1.php .忍饰,這個(gè)需要用burpsuite抓包修改,上傳后保存在Windows系統(tǒng)上的文件名最后的一個(gè).會(huì)被去掉寺庄,實(shí)際上保存的文件名就是1.php

濾代碼會(huì)刪除文件名后面的點(diǎn)但是過濾時(shí)只過濾.php? 沒過濾.php點(diǎn)

利用Windows字體文件命名特性? 在xx.php后面加空格點(diǎn)? . 直接切掉 .? 只留xx.php

pass-07:
看源碼:

原理同Pass-06艾蓝,文件名后加點(diǎn)和空格

pass-08:

分析代碼,少了????$file_ext =?str_ireplace(‘::$DATA‘, ‘‘,?$file_ext);//去除字符串::$DATA ???這一句斗塘,我們可以采用Windows文件流特性繞過赢织,文件名改成

1.php::$DATA , 上傳成功后保存的文件名其實(shí)是1.php

pass-09:

原理同Pass-06,上傳文件名后加上點(diǎn)+空格+點(diǎn)馍盟,改為1.php. .? ? ?(點(diǎn) 空格? 去了 還有一個(gè)點(diǎn))

pass-10:

pass-11:
白名單繞過于置,跟PHP版本有關(guān)。

重點(diǎn):白名單繞過PHP版本要小于5.3.4? 魔術(shù)符號(hào)要關(guān)閉贞岭。

修復(fù)建設(shè):?php版本要小于5.3.4八毯,5.3.4及以上已經(jīng)修復(fù)該問題;magic_quotes_gpc需要為OFF狀態(tài))(有可能會(huì)上傳失敗瞄桨,將版本改為5.3.4以下版本后话速,開啟魔術(shù)符號(hào),在關(guān)閉芯侥,在重啟就好啦)

分析代碼泊交,這是以時(shí)間戳的方式對(duì)上傳文件進(jìn)行命名,使用上傳路徑名%00截?cái)嗬@過柱查,不過這需要對(duì)文件有足夠的權(quán)限活合,比如說創(chuàng)建文件夾,上傳的文件名寫成1.jpg, save_path改成../upload/1.php%00(1.php%00.jpg經(jīng)過url轉(zhuǎn)碼后會(huì)變?yōu)?.php\000.jpg)物赶,最后保存下來的文件就是1.php

pass-12:

原理同Pass-11,上傳路徑0x00繞過留晚。利用Burpsuite的Hex功能將save_path改成../upload/1.php【二進(jìn)制00】形式??

.

pass-13:? (需要在看一遍)
先上傳jpg酵紫,抓包改為PHP,空格? 繞過文件頭檢查错维,添加GIF圖片的文件頭GIF89a奖地,繞過GIF圖片檢查。

或者我們使用命令copy 1.jpg /b + shell.php /awebshell.jpg赋焕,將php一句話追加到j(luò)pg圖片末尾参歹,代碼不全的話,人工補(bǔ)充完整隆判。形成一個(gè)包含Webshell代碼的新jpg圖片犬庇,然后直接上傳即可僧界。但是我們沒有辦法拿到shell,應(yīng)為我們上傳的圖片馬無法被解析成php形式臭挽,通常圖片馬配合%00或者0x00截?cái)嗌蟼魑娼螅蛘吲浜辖馕雎┒?/p>

pass-14:
源碼:

getimagesize()?函數(shù)用于獲取圖像尺寸?,索引 2 給出的是圖像的類型欢峰,返回的是數(shù)字葬荷,其中1 = GIF,2 = JPG纽帖,3 = PNG宠漩,4 = SWF,5 = PSD懊直,6 = BMP扒吁,7 = TIFF(intel byte order),8 = TIFF(motorola byte order)吹截,9 = JPC瘦陈,10 = JP2,11 = JPX波俄,12 = JB2晨逝,13 = SWC,14 = IFF懦铺,15 = WBMP捉貌,16 = XBM

這里有詳解:https://blog.csdn.net/sanbingyutuoniao123/article/details/52166617

image_type_to_extension()?函數(shù)用于獲取圖片后綴

做法同上。? (很多函數(shù)都可用圖片頭繞過)

pass-15:

源碼:

exif_imagetype()? 此函數(shù)是php內(nèi)置函數(shù)冬念,用來獲取圖片類型趁窃。

做法同上。用圖片頭繞過急前。

pass-16:

1醒陆、生成新的圖片(相當(dāng)于直接干掉圖片里的木馬)2、給圖片重命名裆针,這是最安全的一種方式刨摩。

? ? ? ? 原理:將一個(gè)正常顯示的圖片,上傳到服務(wù)器世吨。尋找圖片被渲染后與原始圖片部分對(duì)比仍然相同的數(shù)據(jù)塊部分澡刹,將Webshell代碼插在該部分,然后上傳耘婚。具體實(shí)現(xiàn)需要自己編寫Python程序罢浇,人工嘗試基本是不可能構(gòu)造出能繞過渲染函數(shù)的圖片webshell的。

這里提供一個(gè)包含一句話webshell代碼并可以繞過PHP的imagecreatefromgif函數(shù)的GIF圖片示例

php圖像二次渲染:

https://blog.csdn.net/hitwangpeng/article/details/48661433

https://blog.csdn.net/hitwangpeng/article/details/46548849????

https://xz.aliyun.com/t/2657

這兩個(gè)講的還可以

(試哪個(gè)木馬經(jīng)過二次渲染之后還在嚷闭,留下那個(gè)木馬攒岛。在 上傳文件夾里有可留下來的webshell木馬)

pass-17:

原理(自己理解):其實(shí)圖片是有到過對(duì)方服務(wù)器的,只是以處理速度極快的方式被處理掉了凌受,我么需要在被處理之前讓他不被處理阵子,這就是時(shí)間競爭。

官方解釋:這關(guān)利用的是競爭條件胜蛉,服務(wù)器先允許你上傳文件挠进,然后檢測是否合法,不合法再刪除誊册,我們要利用的就是在服務(wù)器刪除前领突,訪問到我們上傳的php。

舉個(gè)例子:

第一步:

選擇準(zhǔn)備好的tj.php案怯。

tj.php作用君旦,創(chuàng)建一個(gè)文件,再往這個(gè)文件里寫入一句話木馬(代碼) 嘲碱。

只針對(duì)上傳的文件進(jìn)行檢測金砍,重新寫入的文件是不會(huì)被刪的。

抓包:

開始上傳麦锯,抓包恕稠,發(fā)到測試器里,做如下設(shè)置:

有效載荷數(shù)設(shè)為扶欣,沒有負(fù)載鹅巍,生成3000有效負(fù)載

線程數(shù)設(shè)為100。

最后開始攻擊料祠。

我們可以在upload里看到骆捧,文件可以上傳只是在很短的時(shí)間內(nèi)被刪除。

第二步:

在創(chuàng)建一個(gè)包髓绽,訪問tj.php敛苇,在被刪除之前訪問到,就會(huì)重新寫入一句話木馬(代碼)顺呕,時(shí)間競爭接谨。訪問tj.php,再開一個(gè)brup suite,抓包

進(jìn)行同上設(shè)置塘匣,兩個(gè)測試器同時(shí)開始攻擊,

巷帝,在被刪除之前訪問到忌卤,就會(huì)重新寫入一句話木馬(代碼)擂送,時(shí)間競爭。

pass-18:

看源碼:7z沒有加入黑名單贫奠,所以講下面文件命名為7z惦银。

剛開始沒有找到繞過方法,最后下載作者Github提供的打包環(huán)境棍厂,利用上傳重命名競爭+Apache解析漏洞颗味,成功繞過。

上傳名字為1.php.7Z的文件牺弹,快速重復(fù)提交該數(shù)據(jù)包浦马,會(huì)提示文件已經(jīng)被上傳,但沒有被重命名张漂。

(阿帕奇從右往左解析晶默,當(dāng)遇到不認(rèn)識(shí)的擴(kuò)展名就會(huì)往前解析,所以會(huì)當(dāng)成php解析航攒。)

快速提交上面的數(shù)據(jù)包磺陡,可以讓文件名字不被重命名上傳成功。

然后利用Apache的解析漏洞漠畜,即可獲得shell

pass-19 :同上币他。

pass-20:

上傳1.jpg

抓包做如下更改。發(fā)送憔狞。

雙文件上傳蝴悉,后者jpg起到一個(gè)欺騙的作用,實(shí)際上傳的是前面的111.php躯喇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辫封,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子廉丽,更是在濱河造成了極大的恐慌倦微,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件正压,死亡現(xiàn)場離奇詭異欣福,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)焦履,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門拓劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嘉裤,你說我怎么就攤上這事郑临。” “怎么了屑宠?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵厢洞,是天一觀的道長。 經(jīng)常有香客問我,道長躺翻,這世上最難降的妖魔是什么丧叽? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮公你,結(jié)果婚禮上踊淳,老公的妹妹穿的比我還像新娘。我一直安慰自己陕靠,他們只是感情好迂尝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著懦傍,像睡著了一般雹舀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粗俱,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天说榆,我揣著相機(jī)與錄音,去河邊找鬼寸认。 笑死签财,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的偏塞。 我是一名探鬼主播唱蒸,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼灸叼!你這毒婦竟也來了神汹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤古今,失蹤者是張志新(化名)和其女友劉穎屁魏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捉腥,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氓拼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抵碟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桃漾。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拟逮,靈堂內(nèi)的尸體忽然破棺而出撬统,到底是詐尸還是另有隱情,我是刑警寧澤敦迄,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布恋追,位于F島的核電站粒竖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏几于。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一沿后、第九天 我趴在偏房一處隱蔽的房頂上張望沿彭。 院中可真熱鬧,春花似錦尖滚、人聲如沸喉刘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睦裳。三九已至,卻和暖如春撼唾,著一層夾襖步出監(jiān)牢的瞬間廉邑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國打工倒谷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛛蒙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓渤愁,卻偏偏與公主長得像牵祟,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抖格,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354