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脚本(浏览器插件)

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

被折叠的 条评论
为什么被折叠?



