WEB应用(十四)---文件上传

什么是文件上传漏洞

文件上传是Web应用的常见功能,允许用户上传图片、视频及其他文件类型文件。如果用户上传的是木马文件,则服务器就会收到攻击。

对于这个漏洞的练习有一个专门的靶场,即upload-labs,这个的安装可以在windows中使用phpstudy,linux中使用docker,当然使用phpstudy更加方便快捷,使用docker会比较麻烦,如果有需要的话,你们私信我,人多的话,我可以教大家使用docker安装,并且安装后的配置怎么改等问题。windows中安装很简单

upload-labs下载地址https://github.com/c0ny1/upload-labs,访问会有点慢,挂个梯子就行,没有的话会多等一会
 

 下载好后,解压到www目录下,就可以访问了,这时候先打开第一关,随便上传一张图片,这个时候会报错,打开你的upload-labs文件夹,进去创建一个文件夹并改名upload就行,当你再次上传并显示时,就着调了

这点很重要,在下面的练习中,我会展示一到俩方法,供大家学习,其他的方法就靠你们的了

再随便找一张图片,写一个测试脚本mu.php

<?php
eval("phpinfo();");
?>

接下来就是打怪升级!

Pass-01

刚才我们可以看到已经是可以正常上传图片了,接下来我们去上传我们的测试文件,发现了弹窗,这说明什么,说明该限制是在前端完成的,那就很简单了

F12,选中我们提交的元素,看代码,发现,点击上传后,调用了一个函数,看函数名就可以知道,该函数就是来检查文件名的,我们把他删掉,上传成功,发现该显示图片的地方没有显示图片,我们本来上传的也不是图片,但是我们上传的代码是有查看php和其他的信息的作用的,现在没有显示,不要急,我们把那张没有显示的图片拖到浏览器显示窗口的位置试试

 每一次做完,都去删除一次文件

第二种方法

依然是F12这一次我们打开控制台,通过修改JS代码来上传文件,使用dom的这个方法,这个方法是将选中的元素成为一个数组,这里只有一个form表单,所以就是0,使得onsubmit内容为空,同样上传成功

Pass-02

 上传测试文件,发现这会就是后端进行校验了,我们点一下提示,提示说后端进行检查了mime,那么什么是mime呢

通过查找发现就是一种校验文件的方式,我们再来抓包看看,先上传一张图片

这个就是后端检查的内容   image/jpeg,上传我们的测试文件

 

将这里替换成上面的信息,放行,上传成功

Pass-03

我们先来看看提示,这里说禁止了这些文件后缀名,这里有一个隐藏的小知识,php文件的后缀名有很多phtml,php3,phps等,所以我们去修改文件的后缀名,就可以上传成功,虽然可以上传,但是,不一定可以执行,要想执行,就需要我们去修改Apache的配置文件。

在这里添加AddType application/x-httpd-php .php .phtml .phps .php3 ,重启Apache,执行了就是成功了

Pass-04 

看到提示过滤了很多的文件后缀,但是呢,没有过滤 .htaccess后缀,我们可以构建一个htaccess配置文件,文件内容为 SetHandler application/x-httpd-php  ,注意这个文件没有名字,只有后缀。这时有人的电脑无法直接创建,我们可以试试,先创建一个文本文件,写入我们的内容,另存为,选择所有文件,保存即可,这个文件是可以直接上传的,他有什么作用呢,只要有这个文件,该目录下的所有文件都会按照php进行执行,将我们mu.php,改为mu.png,最后上传他,成功执行!

Pass-05

查看提示,没有收获,从源代码中入手,我们对比一下第三关,因为从第三关开始过滤文件后缀,

3

5

可以发现第五关少了这一行,他的作用就是将大写转换为小写,那么我们就可以将mu.php改为mu.PHP进行绕过

$file_ext = strtolower($file_ext);//转换为小写

upload-labs的闯关就到这里了,后续的内容其他的博主也有做,你们也可以发动你的大脑,创新你们自己的方法。

内容先告一段落了(后面的知识跑丢了)..........


不管是以前还是今后的内容,仅供学习交流使用,如做出危害行为,我概不负责。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值