文件上传限制绕过的原理以及方法总结

0x00 概述

6666666

0x01 客户端检测绕过(js检测)

  • 检测原理

在客户端通过如下的javascript代码来检测用户提交的文件是否合法:

 1 <script type="text/javascript">
 2     function checkFile() {
 3         var file = document.getElementsByName(‘upload_file‘)[0].value;
 4         if (file == null || file == "") {
 5             alert("请选择要上传的文件!");
 6             return false;
 7         }
 8         //定义允许上传的文件类型
 9         var allow_ext = ".jpg|.png|.gif";
10         //提取上传文件的类型
11         var ext_name = file.substring(file.lastIndexOf("."));
12         //判断上传文件类型是否允许上传
13         if (allow_ext.indexOf(ext_name) == -1) {
14             var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;
15             alert(errMsg);
16             return false;
17         }
18     }
19 </script>
  • 如何判断是否是客户端js检测

  • 绕过方法

   由于用来验证文件合法性的js程序在我们客户端,所以对于我们来说,这个验证程序是可控制的,能够很轻易的就绕过,具体能够绕过的方法如下:

   1. 添加允许上传的文件类型,使自己想要上传的会见类型为合法

   -这是一个简单的上传页面

2、删除对js验证脚本的调用,使其不能对上传的文件类型做检测,从而达到绕过

3、利用burpsuite抓包,修改文件类型进行绕过

h1

6666666

h1

6666666

原文地址:https://www.cnblogs.com/ldhbetter/p/9190556.html

时间: 2024-09-30 11:23:02

文件上传限制绕过的原理以及方法总结的相关文章

文件上传验证绕过技术总结

文件上传验证绕过技术总结 1.客户端验证绕过 很简单啦,直接使用webscarab或者burp修改一下后缀名就行. 2.服务端验证绕过-Content-type检测 若服务端检测文件类型时是检测Content-type的值,也很简单,在webscarab或者burp中修改Content-type. 如php中 if($_FILES['userfile']['type'] != "image/gif") 即是检测Content-type值. 3.服务端验证绕过-扩展名检测 a. 寻找漏网

ctf基本的文件上传与绕过学习

绕过客户端校验前台脚本检测扩展名上传webs hell 原理: 当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台脚本检测扩展名.绕过前台脚本检测扩展名,就是将所要上传文件的扩展名更改为符合脚本检测规则的扩展名,通过 BurpSuite 工具,截取数据包,并将数据包中文件扩展名更改回原来的,达到绕过的目的 实验: 打开要上传的页面,上传要上传的木马文件lurb.php,点击上传. 页面显示错误 返回上传页面,点

1.1 文件上传之绕过验证

文件上传之绕过 一般防止上传漏洞手法 1.客户端检测:客户端使用JavaScript检测,在文件未上传时,就对文件进行验证 //任何客户端的验证都是不安全的,客户端验证目的是防止用户输入错误.减少 //服务器开销,而服务端验证才可以真正防御攻击者. 2.服务器端检测:服务端脚本一般会检测文件的MIME类型,检测文件扩展名是否合法 客户端检测 客户端验证代码形如下: <html lang="en"> <head> <meta charset="UT

将本地文件上传到指定的服务器(HttpWebRequest方法)

将本地文件上传到指定的服务器(HttpWebRequest方法),通过文件流,带文件名,同文件一同上传的表单文本域及值. 1 ///<summary> 2 /// 将本地文件上传到指定的服务器(HttpWebRequest方法) 3 /// </summary> 4 /// <param name="address">文件上传到的服务器</param> 5 /// <param name="fileNamePath&quo

ASP中文件上传组件ASPUpload介绍和使用方法

[导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload  要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件,它的下载网址是:           http://www.persits.com/aspupload.exe       组件提供者网址是:           http://www.aspupload.com    

对FileUpload文件上传控件的一些使用方法说明

//可以上传图片,txt文档.doc,wps,还有音频文件,视屏文件等,功能强大啊! //前台代码片,设置上传图片的界面 <div> <asp:Label ID ="lbText" runat ="server" Font-Bold ="true" Font-Size ="20px" Text ="请选择您要上传的照片"> </asp:Label> <br />

带有file标签文件上传的 form ajax提交的方法:jQuery的ajaxSubmit()

这篇文章主要介绍了jQuery使用ajaxSubmit()提交表单示例,使用延第三方插件jquery.form实现,需要的朋友可以参考下. ajaxSubmit(obj)方法是jQuery的一个插件jquery.form.js里面的方法,所以使用此方法需要先引入这个插件.如下所示: <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script><script src="htt

文件上传绕过知识总结一

前言 重新学习漏洞原理,记录下文件上传的绕过姿势 客户端的检测: 1 function checkFile() { 2 var file = document.getElementsByName('upload_file')[0].value; 3 if (file == null || file == "") { 4 alert("请选择要上传的文件!"); 5 return false; 6 } 7 //定义允许上传的文件类型 8 var allow_ext =

反射型XSS+文件上传+CSRF&mdash;DVWA

在学习的过程中,想到将几种漏洞进行组合练习,记录下学习过程.大佬请绕过!谢谢!! 测试环境:DVWA,安装方法参考上一篇:https://www.cnblogs.com/aq-ry/p/9220584.html 前期知识:了解反射型XSS.文件上传.CSRF漏洞原理及利用方法. 一.反射型XSS; 查看源码文件:WWW\DVWA\vulnerabilities\xss_r\source\low.php 未做任何过滤,构造如下HTML代码,分别为两张图片,诱惑用户去点击,形成XSS攻击: <!DO