pass-01
嘗試上傳一個php彩掐,發(fā)現(xiàn)提示不行。
前端js攔截了枫匾,先將php文件后綴改為允許的格式架诞,比如jpg,burp抓包改一下就好了干茉。后綴改為php成功上傳谴忧。
訪問發(fā)現(xiàn)上傳成功。
pass-02
觀察第二關(guān)的源碼角虫,發(fā)現(xiàn)判斷content-type沾谓。
依舊burp抓包,修改content-type戳鹅。
訪問發(fā)現(xiàn)上傳成功均驶。
pass-03
查看源碼,發(fā)現(xiàn)是設(shè)置了文件后綴名黑名單枫虏,禁止上傳后綴名為php的文件妇穴,這里利用php2爬虱、php3、php4伟骨、php5一樣會解析饮潦,直接修改后綴名為php2上傳。
由于我這里是用phpstudy搭建的携狭,所以沒辦法解析继蜡,只能放一張圖以示抱歉。
pass-04
觀察源碼逛腿,這次的黑名單更多基本所有的都包括了稀并,而且還將全部都轉(zhuǎn)換為小寫。
這里網(wǎng)上百度的方法单默,上傳.htaccess文件
方法一碘举、.htaccess內(nèi)容為
<FilesMatch "文件名">
? SetHandler application/x-httpd-php
</FilesMatch>
按情況修改文件名
方法二、.htaccess內(nèi)容為
AddType application/x-httpd-php .jpg
不過兩種方法均為成功搁廓,很尷尬- -引颈!
pass-05
觀察第五關(guān)源碼,發(fā)現(xiàn)將.htaccess也加入了黑名單境蜕,可是去掉了大寫轉(zhuǎn)換成小寫蝙场,直接將后綴名改為大寫上傳成功。
pass-06
觀察源碼粱年,發(fā)現(xiàn)一樣的黑名單售滤,也加上了大寫轉(zhuǎn)換成小寫,但是沒有了首位去空台诗,這里可以最后加空格繞過完箩。
burp抓包,后綴名添加空格拉队。
訪問上傳成功弊知。
pass-07
觀察源碼,這次和第六關(guān)相比氏仗,首位去空回來了吉捶,但是少了去“.”,利用windwos特性皆尔,會自動去掉文件后綴名最后的“.”進行上傳。
burp抓包修改币励,進行上傳慷蠕。
訪問發(fā)現(xiàn)上傳成功。
pass-08
這是一個漲姿勢的關(guān)食呻,第八關(guān)這個繞過方式我之前是不知道的流炕,就是在php+windows的情況下:如果文件名+"::$DATA"會把::$DATA之后的數(shù)據(jù)當(dāng)成文件流處理,不會檢測后綴名.且保持"::$DATA"之前的文件名澎现。觀察源碼,巧了沒有這個每辟。
burp抓包剑辫,修改后綴。
發(fā)現(xiàn)成功上傳渠欺。
pass-09
又是漲姿勢的一關(guān)妹蔽,程序先是去除文件名前后的空格,再去除文件名最后所有的.挠将,再通過strrchar來尋找.來確認文件名的后綴胳岂,但是最后保存文件的時候沒有重命名而使用的原始的文件名,導(dǎo)致可以利用類似one.php. .(兩個點號之間有一個空格)繞過舔稀,如果重名名了文件的話應(yīng)該會用$file_ext來進行拼湊文件乳丰,這樣保存在服務(wù)器中的文件將沒有后綴(去除了.空格)
pass-10
觀察源碼,發(fā)現(xiàn)是黑名單+去掉后綴名内贮,雙寫后綴名繞過产园。
pass-11
觀察源碼,這次變成了白名單判斷夜郁,當(dāng)有php環(huán)境中有兩個截斷條件: 1.php版本小于5.3.4 詳情關(guān)注CVE-2006-7243 2.php的magic_quotes_gpc為OFF狀態(tài)什燕,便會有00截斷,利用00截斷上傳拂酣。
burp抓包修改秋冰,上傳成功。
pass-12
觀察源碼婶熬,這里保存用了post方法剑勾,所以要用burp再16進制里面改,因為post不會像get對%00進行自動解碼赵颅。
burp抓包找到然后修改虽另。
查看發(fā)現(xiàn)上傳成功。
pass-13 -- pass-16
上傳圖片馬即可饺谬。copy normal.jpg /b + shell.php /a webshell.jpg
十三關(guān)是對比文件的前兩個字節(jié)
十四關(guān)是用了getimagesize函數(shù)來對文件類型做判斷
十五關(guān)是用的exif_imagetype函數(shù)
十六關(guān)是用的二次渲染
pass-17
觀察源碼捂刺,發(fā)現(xiàn)是條件競爭,上傳之后就會刪掉募寨。
這里可以通過burp的intruder模塊來實現(xiàn)族展。我又一次失敗。
pass-18
一樣失敗拔鹰,但看大佬的說是本關(guān)對文件后綴名做了白名單判斷仪缸,然后會一步一步檢查文件大小、文件是否存在等等列肢,將文件上傳后恰画,對文件重新命名宾茂,同樣存在條件競爭的漏洞∷┗梗可以不斷利用burp發(fā)送上傳圖片馬的數(shù)據(jù)包跨晴,由于條件競爭,程序會出現(xiàn)來不及rename的問題片林,從而上傳成功端盆。
pass-19
觀察源碼,CVE-2015-2348 move_uploaded_file() 00截斷拇厢。
上傳成功爱谁。
到這里就結(jié)束了,好多都還沒有吸收孝偎,都需要再回頭復(fù)習(xí)访敌。
鏈接:https://pan.baidu.com/s/1dne-3fR5M1VylcjhhZQLCw
提取碼:ij7r
Github上也有。