• 双文件上传详解


    一。双文件上传利用

    双文件上传意思是通过上传两个或多个文件去突破

    利用方式:

    在存在双文件上传漏洞的页面中,查看上传的页面。

    方法:(1)f12找到上传的post表单,action属性是指定上传检测页面,一般是写的绝对路径,比如:xxx.asp/xxx.php。

               (2)补全url: https://www.xxx.com/xxx.php(asp)

               (3)构造本地post提交表单

    1 <form action="https://www.xxx.com/xxx.asp(php)" method="post"
    2 name="form1" enctype="multipart/form‐data">
    3 <input name="FileName1" type="FILE" class="tx1" size="40">
    4 <input name="FileName2" type="FILE" class="tx1" size="40">
    5 <input type="submit" name="Submit" value="上传">
    6 </form>

    利用时只需改action的值为指定上传页面即可。

                (4)第一个上传文件是符合条件的(.jpg;.png;.gif等);第二个上传文件是一句话木马或者webshell

    这样就可以突破上传限制,成功上传木马到服务器。

    原理:

    上传点支持多文件上传,但是却只对第一个文件做了过滤

    所以上传只对第一个文件后缀名进行检测,对第二个文件不进行检测直接上传到服务器。

    看一段存在双文件上传漏洞代码

    1 for i=0 to ubound(arrUpFileType)
    2 if fileEXT=trim(arrUpFileType(i)) then
    3 EnableUpload=true
    4 exit for
    5 end if
    6 next

    一开始EnableUpload=false,但是进入上面的for循环之后,它判断了文件类型是否合法。如果合法,EnableUpload值为True,所以当第一个文件是合法文件时,就不在检测往后的文件。

    双文件上传漏洞是一个比较老的漏洞,其修复也很简单,就是只支持一个文件上传即可。

    今天偶尔看到这个漏洞,虽然知道利用方法,但是利用原理还是不懂,所以拿出来仔细看看这个漏洞。

    利用方法其实很多:也可以在上传时抓包,把反应包复制一份,再把filename改成任意名字,如:filename1 这样也可以突破上传限制。

  • 相关阅读:
    Highcharts 连续的堆积面积图
    jQuery--each遍历使用方法
    C# 常用小技巧
    JSON对象遍历方法
    T-SQL生成X个不重复的Y位长度的随机数
    SQLServer如何快速生成100万条不重复的随机8位数字
    ftp和http断点续传及下载的Delphi实现
    Delphi与Windows 7下的用户账户控制(UAC)机制
    Win7/Win10下的进程操作
    运行Delphi 2007 IDE提示无法打开"EditorLineEnds.ttr"文件
  • 原文地址:https://www.cnblogs.com/Da4er/p/11559922.html
Copyright © 2020-2023  润新知