查看: 368|回复: 0

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

[复制链接]
匿名
匿名  发表于 前天 10:23 |阅读模式
免责申明

本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
一、前言
跟着小朋友师傅学习了一段时间代码审计,来验证一下成果,也把自己成果审计到的一个组合拳RCE漏洞分享给师傅们,希望师傅们不要嫌弃。

qw1.jpg

针对上述系统进行代码审计,当然源码是通过py得到的。
二、框架识别
小朋友老师说过,在做审计之前先清楚对方系统框架是一个什么框架,这里进行查看。

qw2.jpg

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

qw3.jpg

并且在这里进行查看对应的class文件,确定为SPring-mvc开发方式。
三、鉴权绕过
刚才我们分析到了对应的springmvc架构,查看配置文件,主要是进行查看权限是如何进行校验的。

qw4.jpg

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

qw5.jpg

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

qw6.jpg

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

qw7.jpg

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

qw8.jpg

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

qw9.jpg

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

qw10.jpg

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

qw11.jpg

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

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

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

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

但是还要注意原由参数pa_id\text\position这几个参数。
五、漏洞验证
构造数据包成功上传相关文件,但是发现并为进行返回信息,重新回去查看代码。

qw14.jpg

qw15.jpg

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

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

qw16.jpg

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

查看刚才的上传代码。

qw17.jpg

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

qw18.jpg

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

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

qw19.jpg

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

qw20.jpg

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

qw21.jpg

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

qw22.jpg

成功获取文件名称。

qw23.jpg

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

qw24.jpg

成功解析。








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-2-12 08:38 , Processed in 0.026280 second(s), 21 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部