Upload-labs通關手冊

Upload-labs是一個幫你總結所有類型的上傳漏洞的靶場,包括常見的文件上傳漏洞:

項目地址:https://github.com/c0ny1/upload-labs

運行環境

操作系統:windows、Linux
php版本:推薦5.2.17(其他版本可能會導致部分Pass無法突破)
php組件:php_gd2,php_exif(部分Pass需要開啓這兩個組件)
apache:以moudel方式連接

第一關

直接上傳php木馬,發現前端報錯:

嘗試前端繞過,在前端js判斷函數中加上可以上傳php文件:

即可上傳成功:


訪問:

第二關

查看源代碼:


發現僅僅判斷content-type,於是修改content-type繞過:


上傳成功:

第三關

查看源代碼:


發現是黑名單判斷,於是嘗試用php3,phtml繞過

成功上傳:

第四關

查看源代碼:

雖然還是黑名單,但幾乎過濾了所有有問題的後綴名,除了.htaccess,於是首先上傳一個.htaccess內容如下的文件:

SetHandler application/x-httpd-php

這樣所有文件都會解析爲php,然後再上傳圖片馬,就可以解析:

訪問:

第五關

查看源代碼:

還是黑名單,加上了.htaccess,但是沒有將後綴進行大小寫統一,於是可以通過大小寫繞過:

訪問:

第六關

查看源代碼:

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

訪問:

第七關

查看源代碼:

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

訪問:

第八關

查看源代碼:

還是黑名單,但是沒有對後綴名進行去”::$DATA”處理,利用windows特性,可在後綴名中加” ::$DATA”繞過:

訪問:

第九關

查看代碼:

黑名單過濾,注意第15行和之前不太一樣,路徑拼接的是處理後的文件名,於是構造info.php. . (點+空格+點),經過處理後,文件名變成info.php.,即可繞過。

訪問:

第十關

查看源代碼:

依舊是黑名單過濾,注意到,這裏是將問題後綴名替換爲空,於是可以利用雙寫繞過:

訪問:

第十一關

查看代碼:

看到是白名單判斷,但是$img_path直接拼接,因此可以利用%00截斷繞過:

訪問:

第十二關

查看代碼:

和十一關不同的是這次的save_path是通過post傳進來的,還是利用00截斷,但這次需要在二進制中進行修改,因爲post不會像get對%00進行自動解碼。

訪問:

第十三關

本關要求上傳圖片馬即可,查看代碼:

通過讀文件的前2個字節判斷文件類型,因此直接上傳圖片馬即可,製作方法:
copy normal.jpg /b + shell.php /a webshell.jpg
上傳圖片馬

成功繞過:

接下來利用的話,還需要結合文件包含漏洞。

第十四關

本關還是要上傳一個圖片馬,查看代碼:

這裏用getimagesize獲取文件類型,還是直接就可以利用圖片馬就可進行繞過:

第十五關

本關還是要上傳一個圖片馬,查看代碼:

這裏用到php_exif模塊來判斷文件類型,還是直接就可以利用圖片馬就可進行繞過:

第十六關

本關還是要上傳一個圖片馬,查看代碼:

本關綜合判斷了後綴名、content-type,以及利用imagecreatefromgif判斷是否爲gif圖片,最後再做了一次二次渲染,繞過方法:

成功上傳:

第十七關

本關考察的是條件競爭,查看代碼:

這裏先將文件上傳到服務器,然後通過rename修改名稱,再通過unlink刪除文件,因此可以通過條件競爭的方式在unlink之前,訪問webshell。
首先在burp中不斷髮送上傳webshell的數據包:

然後不斷在瀏覽器中訪問,發現通過競爭可以訪問到:

第十八關

本關需要上傳圖片馬,查看代碼

本關對文件後綴名做了白名單判斷,然後會一步一步檢查文件大小、文件是否存在等等,將文件上傳後,對文件重新命名,同樣存在條件競爭的漏洞。可以不斷利用burp發送上傳圖片馬的數據包,由於條件競爭,程序會出現來不及rename的問題,從而上傳成功:

第十九關

本關考察CVE-2015-2348 move_uploaded_file() 00截斷,上傳webshell,同時自定義保存名稱,直接保存爲php是不行的

查看代碼:

發現move_uploaded_file()函數中的img_path是由post參數save_name控制的,因此可以在save_name利用00截斷繞過:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章