文章总结: 本文详细记录了一次Java系统的代码审计过程,通过SpringMVC框架的AuthInterceptor鉴权绕过(利用TomcatURL解析差异)配合未过滤的文件上传功能(actionDetailTmpFile路径),最终通过查询接口获取重命名后的文件名实现JSPwebshell上传与RCE。文章展示了从框架识别、鉴权逻辑分析、上传点定位到漏洞验证的完整攻击链,包含具体代码片段和利用思路,末尾附安全培训广告。 综合评分: 78 文章分类: 代码审计,WEB安全,漏洞分析,红队,实战经验
一次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代码审计案例》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论