文件上传漏洞学习记录——js绕过方法

js绕过方法

按 F12 查看元素,把校验的上传文件后缀名文件删除(或在浏览器禁用js),即可上传。
对于js来说这样还算简便,但burp抓包仍然为后续更常用的手段
把恶意文件改成 js 允许上传的文件后缀,如 jpg、gif、png 等,再通过burpsuite抓取 post 的数据包,把后缀名改成可执行的脚本后缀如 php 、asp、jsp、net 等。即可绕过上传。

在这里插入图片描述

抓包修改后缀名

js前端检测原理

在文件上传时,用户选择文件时,或者提交时,有些网站会对前端文件名进行验证,一般检测后缀名,是否为上传的格式。如果上传的格式不对,则弹出提示文字。此时数据包并没有提交到服务器,只是在客户端通过 js 文件进行校验,验证不通过则不会提交到服务器进行处理。

js前端检测代码分析

客户端 html 上传文件时会调用 checkFile 函数,首先获取文件后缀名。如果文件为空,则弹出“请选择要上传的文件”,如果文件不为空,获取上传的文件后缀名不 .jpg、.png 、.gif 其中一种则提示“该文件不允许上传”,上传失败。

<in put type="file" name="upload_file" id="fileInput">
<button onclick="checkFile()">Check File</button>
<script>
function checkFile() {
    // 获取文件输入框的值
    var file = document.getElementById('fileInput').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;
    }

    // 如果文件类型验证通过,返回 true
    return true;
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值