Upload-Labs滲透筆記

靶機項目地址:https://github.com/c0ny1/upload-labsphp


Pass-01

1.直接上傳php一句話,報錯html

 

 

 

2.信息回顯速度很快,猜測是前端驗證,能夠在修改前端代碼,刪掉checkFile()函數,或者上傳jpg後綴經過burp抓包修改php後綴繞過前端驗證前端

 

 

 

3.上傳成功git

 

 

 

4.菜刀鏈接成功github

 

 

 

5.分析源碼web

 

Javascript前端語言定義函數,僅在前端判斷文件的後綴。shell

 


 

Pass-02

1.直接上傳,發現提示文件類型不正確apache

 

 

 

2.抓包修改文件類型,改爲image/jpegwindows

 

 

 

3.改爲image/jpeg瀏覽器

 

 

4.發包,上傳成功

 

 

 

 

5.菜刀鏈接成功

 

 

 

 

6.分析源碼

 

僅這條if語句判斷了上傳文件的類型,修改Content-Type便可繞過。

 

 


 

Pass-03

1.直接上傳,提示

 

 

 

 

2.猜測多是黑名單限制,利用其它後綴名進行繞過php3phtml

 

 

 

 

3.上傳成功,菜刀鏈接成功

 

 

 

 

4.分析源碼

 

創建了個黑名單,其中的後綴都不能上傳。可是其它可解析php的後綴能夠上傳並解析。

 


 

Pass-04

1.直接上傳,提示

 

 

 

 

2.嘗試利用apache解析漏洞,apache讀取後綴從右向左,若碰見不認識的後綴名便向前繼續讀取,直到認識的後綴。

 

 

 

 

3.上傳成功,鏈接菜刀成功

 

 

 

 

4.方法二其實這關考察的目的是 .htaccess文件,上傳一個.htaccess內容以下的文件:

SetHandler application/x-httpd-php

 

 

 

 

5.這樣全部文件都會解析爲php,而後再上傳圖片馬,就能夠解析:

 

 

 

 

6.鏈接菜刀成功

 

 

 

 

7.分析源碼

 

這裏把全部的後綴都過濾了,除了.htaccess,因此能夠利用上傳.htaccess規則來進行繞過,把能夠上傳的文件後綴解析成php

 


 

Pass-05

1.直接上傳,提示

 

 

 

 

2.上傳.htaccess失敗,可能也把.htaccess給過濾了,嘗試使用apache解析漏洞繞過

 

 

 

 

3.鏈接菜刀成功

 

 

 

 

4.其實這題考察的是大小寫繞過,

 

 

 

 

5.分析源碼

 

在上一題pass-04的基礎上多了個過濾.htaccess,可是沒有對後綴的大小寫進行統一,這裏因而能夠經過大小寫繞過

 


 

Pass-06

1.直接上傳失敗,加空格繞過

 

 

 

 

2.上傳成功

 

 

 

 

3.菜刀鏈接成功

 

 

 

 

4.源碼分析

 

仍是黑名單,可是沒有對後綴名進行去空處理,可在後綴名中加空繞過

 


 

Pass-07

1.嘗試利用windows特性,會自動去掉後綴名中最後的 . ,抓包,在後綴加 .

 

 

 

 

2.上傳成功

 

 

 

 

3.鏈接菜刀成功

 

 

 

 

4.分析源碼

 

一樣是黑名單,可是沒有對後綴名進行去 . 處理,利用windows特性,會自動去掉後綴名中最後的 . ,可在後綴名中加 . 繞過

 


 

Pass-08

1.嘗試使用 ::$DATA 加在後綴以後進行繞過

 

 

 

 

2.上傳成功

 

 

 

 

3.鏈接菜刀成功

 

 

 

 

4.分析源碼

 

phpwindow的時候若是文件名+"::$DATA"會把::$DATA以後的數據當成文件流處理,不會檢測後綴名.且保持"::$DATA"以前的文件名目的就是不檢查後綴名

 


 

Pass-09

1.經過嘗試構造,加上點空格點繞過

 

 

 

 

2.上傳成功

 

 

 

 

3.鏈接菜刀成功

 

 

 

 

4.分析源碼

 

仍是黑名單過濾,並刪掉了文件名末尾的點,路徑拼接的是處理後的文件名經過構造 +空格+ 繞過過濾。

 


 

Pass-10

1.直接上傳發現把後綴php替換爲空

 

 

 

 

2.這樣能夠使用雙寫繞過

 

 

 

 

3.上傳成功

 

 

 

 

4.鏈接菜刀成功

 

 

 

 

5.分析源碼

 

設置黑名單,把有問題的後綴名都替換爲空,可是能夠利用雙寫繞過。

 


 

Pass-11

1.直接上傳,提示

 

 

 

 

2.應該是用到了白名單,抓包查看,嘗試使用%00截斷進行繞過

 

 

 

 

3.上傳成功

 

 

 

 

4.菜刀鏈接成功

 

 

 

 

5.分析源碼

 

 

 

 

白名單機制,可是$img_path直接拼接,所以能夠利用%00截斷繞過

 


 

Pass-12

1.上傳抓包查看,能夠使用00截斷,php後空格十六進制的20改成00

 

 

 

 

2.上傳成功

 

 

 

 

3.菜刀鏈接成功

 

 

 

 

4.源碼分析

 

一樣是白名單,此次的save_path是經過post傳進來的,仍是利用00截斷,但此次須要在二進制中進行修改,由於post不會像get%00進行自動解碼

 


 

Pass-13

1.製做圖片馬,copy 1.jpg /b + shell.php /a webshell.jpg

 

 

 

 

2.上傳圖片馬

 

 

 

 

3.上傳成功

 

 

 

 

4.分析源碼

 

經過讀文件的前2個字節判斷文件類型,所以直接上傳圖片馬便可。也能夠在一句話文件內容前面加圖片的標識例如GIF89a。

 


 

Pass-14

1.一樣直接上傳圖片馬

 

 

 

 

2.上傳成功

 

 

 

 

3.分析源碼

 

這裏使用getimagesize函數獲取文件類型仍是直接就能夠利用圖片馬就可進行繞過。也能夠在一句話文件前加圖片標識碼例如GIF89a。

 


 

Pass-15

1.一樣能夠使用圖片立刻傳

 

 

 

 

2.上傳成功

 

 

 

 

3.源碼分析

 

這裏是用php_exif模塊來判斷文件類型,仍是直接就能夠利用圖片馬就可進行繞過

 


 

Pass-16

1.直接上傳圖片馬

 

 

 

 

2.成功上傳

 

 

 

 

3.分析源碼

 

 

 

 

綜合判斷了後綴名、content-type,以及利用imagecreatefrompng

判斷是否爲png圖片,最後再作了一次二次渲染

 


 

Pass-17

1.提示代碼審計,因此先分析下源碼

 

這裏先將文件上傳到服務器,而後判斷文件後綴是否在白名單裏,若是在則重命名,不然刪除,所以咱們能夠上傳1.php只須要在它刪除以前訪問便可,能夠利用burpintruder模塊不斷上傳,而後咱們不斷的訪問刷新該地址便可

 

2.抓包轉到intruder模塊,進行不斷上傳

 

 

 

 

3.在不斷上傳的中,不停刷新瀏覽器地址,便可訪問到文件內容

 

 

 

 


 

Pass-18

1.經過代碼審計,這個對文件後綴名作了白名單判斷,而後會一步一步檢查文件大小、文件是否存在等等,將文件上傳後,對文件從新命名,一樣存在條件競爭的漏洞。能夠不斷利用burp發送上傳圖片馬的數據包,因爲條件競爭,程序會出現來不及rename的問題,從而上傳成功

 

 

 

 

2.經過條件競爭,圖片馬來不及更名就上傳了

 

 

 

 

3.用文件包含查看文件

 

 

 

 


 

Pass-19

1.源碼審計,發現move_uploaded_file()函數中的img_path是由post參數save_name控制的,所以能夠在save_name利用00截斷繞過

 

 

 

 

2.上傳成功

 

 

 

 

3.文件執行成功

 

 

 

 


 

Pass-20

1.代碼審計

 

 

 

 

2.經過上傳一個php文件,改包

 

 

 

 


 

完。

相關文章
相關標籤/搜索