文件上傳之靶場upload-labs (1-10)


第一關 js 繞過

源碼如下:

 

lasIndexOf是返回函數最后一次出現的地方(從右到左)

substring是用來截取函數的

indexOf是返回

表示從.出現的地方開始截取並判斷是否在允許的字符串內

繞過方法:

直接burp捉包修改參數

把小馬php文件后綴修改成jpg,在從burp修改php

 

 

 

 

訪問路徑

 

 

 第二關

 

 判斷文件類型是否為圖片

繞過方法

通過burp捉包修改Content-Type:

上傳php文件

 

 

 

 

第三關

采用黑名單限制

上傳后文件保存為路徑加時間加隨機數加后綴

 

 繞過方法

使用別名php3,php5,phtml進行繞過

首先打開phpstudy工具中的httpd.conf文件進行修改使他解析別名

 

 上傳php文件並修改后綴

 

第四關

增加了對別名的過濾

文件保存為路徑加上傳文件名

 

 繞過方法

上傳.htaccess文件(注: .htaccess文件生效前提條件為1.mod_rewrite模塊開啟。2.AllowOverride All

.htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。通過htaccess文件,可以實現:網頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能IIS平台上不存在該文件,該文件默認開啟,啟用和關閉在httpd.conf文件中配置。
文件內容為AddType application/x-httpd-php .jpg使jpg文件用解析成php
 

 

 

 

 

 

 第二種方法:Apache解析漏洞

在Apache 2.x中存在一個解析漏洞,如果我們將 lyshark.php 修改為 lyshark.php.shtml這樣的格式,正常情況下會彈出文件下載提示框,但是由於Apache 2.x存在解析漏洞所以,會默認將其當作PHP腳本文件進行展開並執行。 Apache在解析文件時有一個原則,當碰到不認識的擴展名時,會從后向前解析,直到碰到認識的擴展名為止,如果不認識則會爆露其源代碼,此時我們如果上傳 lyshark.php.shtml的話,很明顯.rar 他不認識,則會先前遞增,會看到.php 默認就會使用.php 解析啦

 

 


 

 

第五關
與前面相比這一關的過濾代碼缺少了將后綴轉換成小寫的代碼

 

 繞過方法

后綴使用大小寫繞過

 

 

 

 第六關

這一關少了首位去空的代碼

 

繞過方法

在window下1.jpg[空格] 和1.jpg.是不允許存在的,會強制刪除空格和.

 

 第七關

少了刪除文件名末尾的點

 

 

 繞過方法

和第六關差不多不過這次換成了點

 

 

 

 第八關

少了去除::$data的代碼

 

 繞過方法

這道題利用的是Windows下NTFS文件系統的一個特性,即NTFS文件系統的存儲數據流的一個屬性 a.asp::DATA 時,就是請求 a.asp 本身的數據,如果a.asp 還包含了其他的數據流,比如 a.asp:lake2.asp,請求 a.asp:lake2.asp::$DATA,則是請求a.asp中的流數據lake2.asp的流數據內容。
簡單講就是在php+windows的情況下:如果文件名+"::$DATA"會把::$DATA之后的數據當成文件流處理,不會檢測后綴名.且保持"::$DATA"之前的文件名。

 

 

 

 第九關

這里的代碼邏輯是先刪除末尾點,在截取點后面的字符串,將字符串轉換成小寫並首尾去空

 

 繞過方法

這里我們可以使用點空格點的形式,同樣利用了window下的特性,如果我們是在window下的環境那么3-9都可以利用點空格點

burp修改后綴為1.php為1.php. .  過濾后為1.php.

瀏覽器訪問1.php.實際訪問的是1.php可以直接訪問1.php

 

 第十關

代碼中只是對敏感后綴進行了一次替換

 

 繞過方法

對后綴進行雙寫如 pphphp

 

 

 

 

 



 

 

 

 

 



 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM