upload-labs

0X00 前言

        看到了一個總結上傳漏洞的靶場感受不錯,記錄一下過程。項目地址 https://github.com/c0ny1/upload-labsphp

        當我搭建好環境,準備開始第一關時,小z看了我屏幕一眼說你這樣很危險啊。我還沒明白怎麼回事,他看了下個人局域網IP地址,直接在他電腦上就能訪問我搭建的項目。而後上傳了一句話,用菜刀鏈接就能訪問了。原來搭建環境時,apache默認開啓了80端口,使得局域網內都能訪問。在入站規則裏添加一條禁止80端口訪問便可。html

0X01 Pass-01

    前端繞過,可禁用js,也可抓包修改。前端

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上傳寫好的a.jpg抓包修改爲a.php 繞過成功。git

0X02 Pass-02

    Content-Type繞過,可上傳php文件抓包修改 Content-Type: image/jpeg 便可,或者利用Pass-01的方式也可繞過。github

0X03 Pass-03

    看源碼是黑名單繞過,能夠看下apache能解析php類型有哪些apache

能夠看到能解析的有.php3 .phtml     嘗試上傳圖片把後綴名改成php3 windows

根據返回的結果看到後綴名已經發生了改變,而後鏈接發現可以訪問,繞過成功。app

0X04 Pass-04

    看源碼發現也是黑名單並且比上一關要多不少後綴名,可是沒有禁止上傳.htaccess文件,這樣就能夠指定特殊文件名或者文件以特定的方式解析。post

<FilesMatch "abcde.*">
SetHandler application/x-httpd-php
</FilesMatch>

將上面寫入.htaccess文件,凡是以abcde(能夠隨便改)開頭命名的文件都以php解析,構造好一張圖片命名爲abcdef.jpg 。url

先上傳.htaccess文件,再上傳構造好的文件,不用抓包修改,直接鏈接就可訪問。

0X05 Pass-05

    這一關看源碼發現把.htaccess也加入了黑名單,可是發現比以前少了大小寫繞過。刪除了把文件名變成小寫,可用大寫繞過。

構造好圖片命名爲a.jpg,上傳文件,抓包並把文件名改成a.PHP 上傳成功後發現可以訪問並鏈接。

0X06 Pass-06

    看源碼依舊是黑名單處理,相比以前少了首尾去空處理,能夠在後綴名後面加空格繞過,由於windows下會自動去除後綴名後面的點和空格。

根據返回結果上傳成功。

0X07 Pass-07

    看源碼發現沒有作去處理後綴名後面的點,可利用後綴名加點繞過。

上傳成功,且能鏈接訪問。

0X08 Pass-08

    看源碼發現少了去除::$DATA處理。php在Windows下文件名+::$DATA 會和後面的數據做爲文件流處理,且不檢測前面的後綴名。可利用這一特性繞過。

 返回的狀態碼是403,可是可以上傳成功,且可以鏈接訪問。

0X09 Pass-09

    看源碼發現對後綴名的處理是先trim去空格再deldot去點,上傳時路徑拼接的是$file_name  故能夠構造a.php. .(點空格點)繞過,處理後文件名變成a.php. 結合Windows特性變成了a.php

0X0A Pass-10

    看源碼str_ireplace:替換字符串中的一些字符(不區分大小寫)能夠利用雙拼繞過。

0X0B Pass-11

    這關開始用了白名單,看源碼路徑可控用%00截斷。php版本要在小於5.3.4 。

0X0C Pass-12

    此次用post獲取路徑,不會像get那樣自動url解碼,在hex裏改爲00,也能夠加%00而後右鍵url decode

0X0D Pass-13

待續

本站公眾號
   歡迎關注本站公眾號,獲取更多信息