upload-labs靶場打卡

一、靶場介紹

  PHP語言編寫,持續收集滲透測試和CTF中針對文件上傳漏洞的靶場,總共21關,每一關都包含着不同的上傳繞過方式。

(繞過點腦圖總結:)
在這裏插入圖片描述

二、靶場搭建

2.1 靶機環境

  • Win2008R2 + PHPStudy2018(php5.2.17) + upload-labs源碼
    在這裏插入圖片描述
    在這裏插入圖片描述

2.2 搭建過程

  • GitHub項目地址:https://github.com/c0ny1/upload-labs
    》》下載
    在這裏插入圖片描述
    》》將文件解壓到PHPStudy站點目錄下,並設置建議的php版本5.2.x
    在這裏插入圖片描述
    》》瀏覽器訪問,如下所示安裝成功
    在這裏插入圖片描述

三、關卡挑戰

Pass-01(前端JS繞過/客戶端校驗繞過)

限制演示

》》判斷站點開發語言(PHP,也可以參考開發語言的其它判斷方法
在這裏插入圖片描述
(我們先通過操作和抓取數據包方式走一邊正常的上傳流程)
》》正常上傳一圖片文件上傳成功
在這裏插入圖片描述
》》上傳成功,服務器的upload目錄下會存放上傳的對應文件(操作過程中用戶看不到此目錄,這裏用於理解)
在這裏插入圖片描述
》》前端會和後端進行交互,抓取的上傳數據包流量
在這裏插入圖片描述
》》我們上傳一個小馬文件,提示該文件不允許上傳,需要特定後綴類型文件
在這裏插入圖片描述

一句話php小馬文件內容
在這裏插入圖片描述


源碼分析
在這裏插入圖片描述
》》通過上邊源碼和網頁源代碼可看到JS腳本,判斷使用文件類型在前端進行了限制
在這裏插入圖片描述
》》因此只要繞過了前端的JS校驗就可以直接提給後端


繞過方法

  • 方法一:數據包文件後綴繞過
    》》查看服務器允許上傳類型
    在這裏插入圖片描述
    》》將一句話木馬後綴改爲服務器允許上傳的類型(以上三種皆可)
    在這裏插入圖片描述
    》》點擊上傳,先截取到請求數據包
    在這裏插入圖片描述
    》》將原來已經繞過前端的“common_php.jpg”文件改爲“common_php.php”文件,向服務器發送篡改後的數據包,發送成功
    在這裏插入圖片描述

現在小馬文件已經上傳至服務器,現在我們拿到小馬的執行路徑就完好了(後端允許解析執行的情況下)

》》通過瀏覽器檢查頁面元素即可拿到上傳文件的相對路徑(->網頁右擊 ->檢查)
在這裏插入圖片描述
》》也可以通過返回數據包中查看上傳的地址,這兩個一樣的
在這裏插入圖片描述
》》拼接得到上傳文件的主目錄
在這裏插入圖片描述

Q&A
Q1:只要上傳完文件都會在返回包中拿到文件的相對/絕對路徑嗎?
A1:非也,需要看開發人員安全意識是否足夠,後端代碼中是否回顯出路徑
在這裏插入圖片描述


Q2:怎麼通過返回的相對路徑拼接成文件的絕對路徑?
A2:根據經驗!
》》如這裏返回的絕對路徑爲:
在這裏插入圖片描述
》》暫且將返回的路徑和當前地址的路徑copy到編輯器中
在這裏插入圖片描述》》對網頁目錄進行分析

》》通過點擊不同的網頁目錄,我們發現綠色部分是不變/相同的,當我們點擊目錄時只有後邊的內容在變,因此可判斷upload-labs是站點www目錄下的主目錄文件
在這裏插入圖片描述
(網站站點目錄和URL地址圖)
在這裏插入圖片描述
(上傳文件地址和. ./上級目錄圖)在這裏插入圖片描述

由上可拼接出上傳文件的絕對路徑
在這裏插入圖片描述


Q3:如何判斷上傳的腳本被成功解析?
A3:腳本被解析代碼會運行!
》》我們在站點目錄下新建一個普通文本的文件
在這裏插入圖片描述
》》瀏覽器訪問php文件會被解析執行因此什麼都不顯示
在這裏插入圖片描述


判斷技巧
  查看網頁源代碼是否有限制的JS代碼,點擊上傳後直接彈框提示,但是沒有發送數據包,即用了客戶端認證方法
在這裏插入圖片描述

Pass-02

Pass-03

Pass-04

Pass-05

Pass-06

Pass-07

Pass-08

Pass-09

Pass-10

Pass-11

Pass-12

Pass-13

Pass-14

Pass-15

Pass-16

Pass-17

Pass-18

Pass-19

Pass-20

Pass-21

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