文章总结: 文档分析了某系统存在的Beetl反序列化模板注入RCE漏洞,漏洞位于InitController.java的接口中,由于对传入参数缺乏过滤,攻击者可通过构造特定JSON数据(包含GroovyShell类)触发反序列化,从而执行任意命令(如whoami)。文章提供了漏洞分析、利用链和PoC,并给出了免责声明与技术分享目的。 综合评分: 78 文章分类: 漏洞分析,WEB安全,代码审计,渗透测试
某系统存在Beetl反序列化模板注入RCE漏洞
学员投稿 学员投稿
进击安全
2026年2月18日 10:13 山西
免责申明 本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
一、前言
由于这个是一个后台漏洞,所以不分析对应的鉴权关系,直接我们可以看对应的代码漏洞。
二、漏洞分析
对应漏洞位置。
xx.jar\com\dongbao\web\base\InitController.java
在该java文件当中发现了下述接口。
跟进代码发现,利用底层函数获取beetStringGroupTemplate,获取到其对象gt。
获取json参数赋值给 param 和 paramTyoe
然后param不为空,进入如下for循环。
先获取到paramType的键值(也就是参数infoType),赋值给 propertyType,然后判断propertyType是否为空,不为空,就反射获取propertyType 的类(也就是paramType(也就是infoType)),然后只要 classType不包含 HashMap 关键字,就可以不进入if,然后就可以把classType传入 params,然后进入下述代码。
传入params,code 到 runScript 函数执行,全程除了 Hashmap外,无过滤
构造poc
{"code":"var result = shell.evaluate('\"whoami\".execute().text'); return result;","param":{"shell":{}},"infoType":{"shell":"groovy.lang.GroovyShell"}}根据上面代码,
param 为 “shell”: {},infoType即为paramType,为
"shell":"groovy.lang.GroovyShell"
此时,String propertyType = (String)paramType.get(k);,k值为 shell,paramType.get(k)的值为groovy.lang.GroovyShell,然后赋值给propertyType,此时propertyType 的值为 groovy.lang.GroovyShell
反射获取groovy.lang.GroovyShell.class,赋值给 classType
然后调用,TypeParseUtil.convert({}, groovy.lang.GroovyShell.class)跟进函数TypeParseUtil.convert()
调用了JSONObject.toJavaObject({}, groovy.lang.GroovyShell.class)
最终调用链
│ params.put(k, TypeParseUtil.convert(v, classType, null))│ ↓│ TypeParseUtil.convert({}, groovy.lang.GroovyShell.class)│ ↓│ JSONObject.toJavaObject({}, groovy.lang.GroovyShell.class)│ ↓│ new GroovyShell() ← 创建了GroovyShell实例
最终执行效果为
GroovyShell.evaluate(‘”whoami”.execute().text’)
导致反序列化RCE。
三、漏洞复现
成功执行whoami命令。
广告区域
目前第四期进阶课程已经开始,课表如下:
同时报名第四期基础课程同样可看,课表如下:
同时具备内部资料以及靶场相关福利,想要了解的师傅可以冲了。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:进击安全 学员投稿 学员投稿《某系统存在Beetl反序列化模板注入RCE漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论