java代码审计之某办公oa(三)

简介: java代码审计之某办公oa

CSRF漏洞挖掘

对于CSRF漏洞基础概念不熟悉的小伙伴,可回顾学习WEB安全原创入门学习课程下的第 2.2 课 --- CSRF漏洞基础入门。

学习链接:https://t.zsxq.com/EieMBuj

本系统也存在多处CSRF漏洞,举例说明。

①、访问用户面板功能,点击写便签,输入任意内容。

②、打开BurpSuite,并打开浏览器代理,指向BurpSuite。BurpSuite打开Intercept is on进行拦截。

③、然后点击保存便签,BurpSuite拦截输入包如下图所示:、

代码分析:

获取到输入的内容之后,没有做任何限制。

这是 Java Web 应用程序中用于保存“便签纸”对象的方法。它似乎正在使用 Spring MVC,因为它具有基于注释的请求映射和会话属性。

该方法接受三个参数:

● Notepaper npaper:这是一个代表便条纸的对象。它具有各种字段,例如标题、内容和用户 ID。

● @SessionAttribute("userId") Long userId:这是一个保存用户 ID 的会话属性。它带有 注释@SessionAttribute,这意味着它将由 Spring MVC 框架从用户的会话中自动检索。

● @RequestParam(value="concent",required=false)String concent:这是一个名为“concent”的请求参数。它被注释为@RequestParam,这意味着它将由 Spring MVC 框架从请求中自动检索。该required=false属性表明该参数是可选的。

该方法执行以下操作:

  1. 它从会话属性中检索与用户 ID 关联的用户对象。
  2. 它将便条对象的创建时间设置为当前日期。
  3. 它将 notepaper 对象的用户 ID 设置为在步骤 1 中检索到的用户对象。
  4. 如果它为 null 或为空,它将便条对象的标题设置为“无标题”(中文意思是“无标题”)。
  5. 如果“concent”请求参数为 null 或为空,它将 notepaper 对象的内容设置为该值。
  6. 它使用对象保存便条纸对象ndao,该对象可能是某种数据访问对象。
  7. 它向客户端返回“重定向”响应,将客户端定向到“/userpanel”URL。这将导致客户端浏览器向“/userpanel”URL 发出新请求。

越权删除

从渗透测试黑盒角度测试,我们发现了日程管理处存在越权删除漏洞。现在我们从代码角度看看问题出在了哪里。

通过日程删URL中的dayremove,可以定位到日程删除位于src\main\java\cn\gson\oasys\controller\daymanage\DaymanageController.java,第204-211行,如下图所示:

单从上面几行代码来看,仅是查询rcid参数后,进行了删除。我们进一步追下流程。

①、从上面可以看到,使用了daydao.findOne(rcid),来操作rcid,查看daydao发现来自DaymanageDao,如下图所示:

②、进入DaymanageDao,发现并没有findOne,发现DayManageDao继承了JpaRepository,而进入JpaRepository之后也未发现findOne,但发现它继承了QueryByExampleExecutor,而findOne就在这里面,如下图所示:此时大家应该发现JpaRepository和QueryByExampleExecutor代码属于引入依赖的代码了,这两个代码来源自Spring Data,其中findOne是其中一个方法,具体意思如下

就是说:

● findOne返回一个Optional对象,可以实现动态查询;而Optional代表一个可能存在也可能不存在的值。

此时总结上面流程,简单说,日程删除功能先使用findOne去查询rcid是否存在该值。

然后再使用daydao.delete(rc)进行删除,此时我们追踪一下这个方法,发现这个delete方法也就是Spring Data CrudRepository中的delete(删除)方法,如下图所示:

最后,我们回顾整个流程,也就是说查询了rcid的值,然后进行删除。整个流程没有任何权限的验证,因此导致了越权的操作。

REF:

http://myblog.ac.cn/archives/2022-08-10-10-53-26

https://m.freebuf.com/articles/web/320441.html

https://blog.csdn.net/qq_44029310/article/details/125119709

相关文章
|
2天前
|
安全 网络安全 数据安全/隐私保护
OA办公系统选购注意的事项
随着数字化时代的到来,越来越多的企业开始选择使用OA办公系统来提高工作效率和管理效果。然而,在选购OA办公系统时,需要注意以下几点的事项,希望能对企业选购OA办公系统有所帮助。
29 4
|
2天前
|
UED
点晴OA办公系统如何实现业务表单的自定义设计
在点晴OA办公系统中,业务表单的自定义设计是一项重要的功能,它能够满足企业不同的业务需求,提高工作效率和协作能力。 随着企业的发展,不同的业务部门需要处理各种类型的表单,如人事表单、财务表单、项目表单等。如果这些表单无法根据实际需求进行自定义设计,就会导致工作效率低下、信息不准确、协作困难等问题。因此,实现业务表单的自定义设计是提高企业办公效率和协作能力的重要手段。
26 0
|
2天前
|
BI
四款OA办公系统快速提高企业效率
拥有合适企业的OA系统不仅可以实现办公自动化而且还能提高企业效率,今天盘点以下几家的OA办公系统。
31 0
|
2天前
|
数据安全/隐私保护
免费OA办公系统,提升工作效率与协作的智能选择
在当今快节奏的时代中,企业需要一种高效、智能的办公系统来提升工作效率,促进团队协作,并实现更好的信息管理。点晴OA办公系统是真正免费使用的,成为现在企业管理的重要工具之一。
34 2
|
7月前
|
人工智能 大数据
点晴移动OA办公,为企业管理可持续发展赋能
随着互联网、人工智能、大数据等新技术的快速发展,企业如何提高组织工作效率、实现资源的合理规划和配置在内部管理非常重要,因此点晴移动OA办公应运而生。
34 0
|
6月前
|
JavaScript Java 关系型数据库
ssm+vue的OA办公管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。
ssm+vue的OA办公管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。
|
2天前
企业都是用谁家的OA办公系统?
好的免费OA办公系统都有哪几家,下面让我们来一起看看吧!
28 1
|
2天前
|
SQL 开发框架 .NET
OA办公自动化系统设计与实现(论文+源码)_kaic
OA办公自动化系统设计与实现(论文+源码)_kaic
|
2天前
|
JavaScript Java 测试技术
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
142 3
|
2天前
免费OA办公系统的选购指南
使用点晴免费OA办公系统可以提高工作效率和管理水平,优化工作流程,降低沟通成本,减轻办公室工作负担,提高工作质量和效率,为企业提供更好的服务。
26 2