• 文件上传绕过(姿势大全)


    *文章来源:https://blog.egsec.cn/archives/476

    *本文将主要说明:Web漏洞中的文件长传绕过姿势大全

    在鹅厂复试中,面试官问到了web漏洞中的文件上传绕过

    要求:总结文件上传的各种姿势,以及方法。

    本人菜鸡一枚,支吾半天竟没回答完整,目测紧张过度了。呜呜~

    之后百度一搜,所谓一图解忧愁啊!

    上图:

    总结起来,文件上传漏洞分两种:

    客户端

    原理:通过javascript来校验上传文件的后缀是否合法,可以采用白名单,也可以采用黑名单的方式。

    判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。

    客户端的校验绕过:直接修改js代码或者使用抓包的方法修改请求内容绕过,可以先上传一个gif木马,通过抓包修改为jsp/php/asp,只用这种方法来检测是肯定可以绕过的。

    服务端

    原理:校验请求头 content-type字段,例如用PHP检测。

    通过自己写正则匹配来判断文件幻数(文件头)内容是否符合要求,一般来说属于白名单的检测,常见的文件头(文件头标志位)如下:

    文件加载检测:一般是调用API或函数去进行文件加载测试,例如图像渲染测试,当测试结果正常的时候才允许上传

    1、一次渲染(代码注入)

    2、二次渲染

    后缀名黑名单校验

    后缀名白名单校验

    自定义:WAF校验,即使用不同的WAF产品来进行过滤,通常是独立与服务程序的一段中间程序或者硬件

    服务端的验校绕过:校验请求头content-type字段绕过,通过抓包来修改Http头的content-type即可绕过。

    • 文件幻数(文件头)检测绕过:在木马内容的前面插入对应的文件头内容,例如:GIF89a ,更保险的方法是在可上传的文件中插入木马代码,然后修改后缀
    • 文件加载检测:通过例如加载文件进行图像渲染的方式来测试,这个时候就一般需要在正常的文件中插入木马代码了,例如图像,那么插入的代码一般会放在图像的注释区,因此不会影响图像正常渲染绕过这种检测,此时可以使用工具(称为插马器)来进行插入,例如edjpgcom,或者直接用copy命令来合成也可以。当然这种检测不一定能够完全绕过
    • 后缀名检测后缀黑名单检测:找查blacklist(黑名单列表)的漏网之鱼,例如
      • 大小写:如果检测的时候不忽略大小写,那么可以改变后缀名的大小写绕过
      • 扩展名:列表中如果忽略了某些后缀
      1. 能被解析的文件扩展名列表:
      2. jsp jspx jspf
      3. asp asa cer aspx
      4. php php php3 php4 pht
      5. exe exee
    • 后缀白名单检测:白名单检测还是会比黑名单强一点,常见的绕过方法有%00截断,还有服务器的解析漏洞
    • %00截断漏洞:如果存在这类漏洞,那么后缀名的检测都可以绕过,此时我们可以如下命名一个上传文件

    解析漏洞:这类漏洞是本身服务器的中间件产生的,例如apache,nginx都被爆出过存在解析漏洞,存在解析漏洞的话,上传的安全性几乎就完全失去了

    例如:
    IS5.x-6.x解析漏洞
    apache解析漏洞
    nginx解析漏洞
    IIS7.5解析漏洞
    等等,后期再说吧

    还有就是防火墙(WAF)的众多绕过姿势,后期再说。

    文件上传漏洞可以自己搭建靶机去实战一下:

    https://github.com/c0ny1/upload-labs

    文件上传绕过(姿势大全)

  • 相关阅读:
    使用BigQuery分析GitHub上的C#代码
    ASP.NET Core 处理 404 Not Found
    C# 7 局部函数剖析
    调试 ASP.NET Core 2.0 源代码
    Entity Framework Core Like 查询揭秘
    ASP.NET Core Razor 视图组件
    Thread 1 cannot allocate new log引起的宕机事故(转载)
    docker默认网段和主机网段冲突解决
    docker安装异常以及网络问题总结
    max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  • 原文地址:https://www.cnblogs.com/egsec/p/12581818.html
Copyright © 2020-2023  润新知