首页 > 技术文章 > DVWA- File Upload

my-boke 2021-01-31 18:16 原文

文件上传漏洞:

  * 在实现文件上传时,如果后端没有对用户上传的文件做好处理,会导致非常严重的安全问题:
  * 如服务器被上传恶意代码,或者垃圾文件。

1.查看源代码:

$target_path = DVWA_WEB_PAGE_TO_ROOT.“hackable/uploads/”;
//含义:
**DVWA_WEB_PAGE_TO_ROOT=D:\phpstudy\WWW\DVWA
**$target_path=D:\phpstudy\WWW\DVWA/hackable/uploads/

target_path = target_path . basename($_FILES[‘uploaded’][‘name’]);
含义:
basename()函数:
      显示文件上传的扩展名;
因此最终你上传的文件的最终路径为:
$target_path=D:\phpstudy\WWW\DVWA/hackable/uploads/123.jpg

  之后我们看到它对上传的文件没有任何的要求,文件类型或是文件大小都没有做规定,
  于是我们可以轻松的传我们的木马上去。

  这里简单的传了一个文本文件;

2.中等版:

  1.查看源代码:

  * 这次相比上次规范许多;
  * 而这个问题我们抓包就可以解决。
  * 打开burpsuit, 我们拦一下上传包,改一下他的上传格式,绕过拦截。

  * 扔到reapter,点go:

3.高等版:

  strrpos(string,find,start)函数:
        返回字符串find在另一字符串string中最后一次出现的位置,如果没有找到字符串则返回false,可选参数start规定在何处开始搜索。
  getimagesize(string filename)函数:
        会通过读取文件头,返回图片的长、宽等信息,如果没有相关的图片文件头,函数会报错。可以看到,
  High级别的代码读取文件名中最后一个”.”后的字符串,期望通过文件名来限制文件类型,
  因此要求上传文件名形式必须是”*.jpg”、”*.jpeg” 、”*.png”之一。
  同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型。

2.通过构造一句话图片木马,然后上传来绕过防御,然后结合php文件解析漏洞或者web中间件解析漏洞或者文件包含漏洞来达到解析含有php代码的png文件

2.1构造图片马 #本实验由于DVWA版本自身原因,无法利用文件包含结合文件上传

方法一:找个图片,用记事本打开,添加一句话

然后成功上传:

推荐阅读