小迪安全03 - 文件上传漏洞绕过方法

本文探讨了前端JS文件格式验证及其可能的绕过方法,包括修改文件后缀和禁用JS脚本。同时,介绍了后端验证中的MIME类型与文件头检查,以及如何通过文件头篡改和利用Apache文件解析漏洞进行绕过。此外,还讨论了大小写绕过、服务器白名单绕过中的文件截断技巧,特别是针对PHP的00截断漏洞。

1. 前端:

JS检测绕过:

前端网页JS对文件格式进行验证:

<script type="text/javascript">
    function checkFile() {
        var file = document.getElementsByName('upload_file')[0].value;
        //获取到文件名
        if (file == null || file == "") {
            alert("请选择要上传的文件!");
            return false;
        }
       
        var allow_ext = ".jpg|.png|.gif";
         //定义允许上传的文件类型
        
        var ext_name = file.substring(file.lastIndexOf("."));
        //提取上传文件的类型。
        //通过lastIndexOf取到“.”的索引,再使用substring函数截取 .后缀名
       
        if (allow_ext.indexOf(ext_name) == -1) {
        //如果 allow_ext 中没有 ext_name字符串,则返回-1
            var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;
            alert(errMsg);
            return false;
        }
         //判断上传文件类型是否允许上传
    }
</script>

绕过方法:

1.抓包将原“合法”文件后缀名改回 php再forward就可以上传WebShell到服务器。

2.禁用浏览器JS脚本(浏览器插件)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值