一次JAVA系统三个组合拳RCE代码审计案例

admin 2026-02-10 14:06:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细记录了一次Java系统的代码审计过程,通过SpringMVC框架的AuthInterceptor鉴权绕过(利用TomcatURL解析差异)配合未过滤的文件上传功能(actionDetailTmpFile路径),最终通过查询接口获取重命名后的文件名实现JSPwebshell上传与RCE。文章展示了从框架识别、鉴权逻辑分析、上传点定位到漏洞验证的完整攻击链,包含具体代码片段和利用思路,末尾附安全培训广告。 综合评分: 78 文章分类: 代码审计,WEB安全,漏洞分析,红队,实战经验


cover_image

一次JAVA系统三个组合拳RCE代码审计案例

原创

学员投稿 学员投稿

进击安全

2026年2月10日 10:01 北京

免责申明

本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。

一、前言

跟着小朋友师傅学习了一段时间代码审计,来验证一下成果,也把自己成果审计到的一个组合拳RCE漏洞分享给师傅们,希望师傅们不要嫌弃。

针对上述系统进行代码审计,当然源码是通过py得到的。

二、框架识别

小朋友老师说过,在做审计之前先清楚对方系统框架是一个什么框架,这里进行查看。

使用到的是Spring-MVC框架方式进行开发的,并且配置信息位于spring-servlet.xml文件当中,这个框架的中间件一般配置为Tomcat,并且tomcat下如果权限认证错误是存在一定的权限绕过风险的(小朋友说的)。

并且在这里进行查看对应的class文件,确定为SPring-mvc开发方式。

三、鉴权绕过

刚才我们分析到了对应的springmvc架构,查看配置文件,主要是进行查看权限是如何进行校验的。

在这里可以看到权限校验是通过一个类AuthInterceptor类来进行验证,跟入这个类进行查看。

相关代码如下,其中我们着重观看下面的代码。

在这里获取URL的方式存在错误,配合Tocmat中间价存在绕过风险,同时继续往下看。

这里进行判断我们的URL是否包含uploadFileApp并且请求是否走的是上传数据包,这里我们不是,继续往下走代码。

然后进行判断,是否包含actionCloudModifyFile以及actionCloudAddFile这两个路径,

这里同样是进行判断是否为上传请求,这两个路径的上传请求,继续往下看。

这里是重点,可以看到首先获取我们的session,我们模拟攻击视角肯定是没有session的,于是我们的u肯定为null,在下main进行判断我们的网址是否包含在属性opens当中,如果我们的URL是其中的某一类那么久进行返回true,这里我们查看opens属性的信息。

那么这里我们就可以理解了,我们这里可以进行尝试绕过了,首先我们包含opens当中的信息的时候不进行鉴权,但是代码当中获取URL的方式有误,并且配合Tomcat导致出现解析问题,导致存在鉴权绕过。

四、文件上传

这里可以看到目标是解析JSP文件的,于是直接进行尝试定位文件上传漏洞,搜索几个常见的文件上传关键词。

*.getOriginalFilename();

最终在这里成功定位到了漏洞。

获取到文件名之后直接进行重命名保存,并未进行过滤,并且这里的路径为actionDetailTmpFile,并非拦截器当中判断的uploadFileApp、actionCloudModifyFile、actionCloudAddFile这三个路径,导致可以进行上传。

但是还要注意原由参数pa_id\text\position这几个参数。

五、漏洞验证

构造数据包成功上传相关文件,但是发现并为进行返回信息,重新回去查看代码。

确实在进行上传成功之后返回数字0。

但是在下面还有一个接口。

这里进行传递参数pa_id参数,同时进行调用方法listPhotoAdsDetailTmp方法。

查看刚才的上传代码。

发现上传成功之后会进行调用add方法,传递tmp信息,然而tmp信息当中是包含filename的,filename则为我们上传之后服务器重命名的参数,跟入add方法。

最终发现add方法保存在了表tb_photo_ads_detail_tmp当中。

然而在看我们刚才的方法。

通过传递进去pad_id可以知道。

查询了表tb_photo_ads_detail_tmp,并且该方法最后返回了查询信息。

那么我们就可以得到相关重命名之后的文件名称,尝试获取刚才上传的文件名称。

成功获取文件名称。

上传到了这个目录,拼接这个目录后跟入获取到的文件名称。

成功解析。

广告区域

目前第四期进阶课程已经开始,课表如下:

同时报名第四期基础课程同样可看,课表如下:

同时具备内部资料以及靶场相关福利,想要了解的师傅可以冲了。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:进击安全 学员投稿 学员投稿《一次JAVA系统三个组合拳RCE代码审计案例》

评论:0   参与:  2