文件上传漏洞的介绍及利用
介绍:File Upload,即文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马(如前面提到的一句话木马)获取服务器的 webshell 权限,因此文件上传漏洞带来的危害常常是毁灭性的,Apache、Tomcat、Nginx 等都曝出过文件上传漏洞。
一、dvwa之low级别文件上传漏洞讲解
我们首先写一个php的一句话木马
然后在dvwa靶场选择我们的php一句话木马文件进行上传即可
接下来打开我们的蚁剑工具,右键选择添加数据,输入我们的连接密码和连接类型进行连接即可
在low级别当中完全没有难度可言,重要的是熟悉upload上传漏洞的利用,对蚁剑工具的熟练使用。
二、dvwa之Medium级别文件上传漏洞演示
在中级别当中我们发现对文件类型进行了校验,我们是怎么发现的呢,当然了是通过代码审计(这时候就需要你懂一点PHP代码啦,可以去查看前面的LAMP基础知识里面的PHP内容),我们点击查看源代码即可明白。
解决方法有很多,我们这里通过抓包来分析一下,
我们看到这里有个关于文件类型的描述,我们将其改成 image/jpeg 然后放行数据包即可上传成功。接下来怎么做就不用说啦,参考上一步。
三、dvwa之High级别文件上传漏洞演示
通过对源代码审计我们可以知道加了一些过滤规则。
1.文件名后缀必须是jpeg png jpg其中一个
2.必须是一张有效图片通过函数getimagesize()去判断。
函数getimagesize()通过文件头去检验,而这个文件头有MIME类型,简单来说就是去检验了MIME类型。
![](https://img2022.cnblogs.com/blog/2727822/202204/2727822-20220401155909371-488407932.png)
![](https://img2022.cnblogs.com/blog/2727822/202204/2727822-20220401161539608-1879654287.png)
第二种:
制作图片马
这样就很简单就可以啦。然后上传即可。
接下来的问题就是如何把jpg文件当作php来执行
![](https://img2022.cnblogs.com/blog/2727822/202204/2727822-20220401164716200-1358602123.png)
我们接下来如果想用蚁剑去连接的话,需要一个步骤,那就是蚁剑当中需要填写该网页的cookie,不然的话会提示返回数据为空
然后我们就能连接成功啦,还有一点我们的网址要写 http://49.232.106.183/dvwa-labs/vulnerabilities/fi/?page=file:///var/www/html/dvwa-labs/hackable/uploads/webshell.jpg
2. 通过利用.htaccess文件 (我们这一关无法利用),通过它可以指定文件的解析方式