文章总结: TongWeb在处理EJB协议数据时存在反序列化漏洞,影响7.0.0.0到7.0.4.9_M9和6.1.7.0到6.1.8.13版本。攻击者可构造恶意序列化数据发送到EJB服务造成远程代码执行。文章详细分析了漏洞原理,包括EJB服务的反序列化接口和自定义序列化格式,并展示了如何利用BadAttributeValueExpExceptionToString->XBeanToString->TomcatElRef利用链打入内存马。建议受影响版本及时更新补丁,限制EJB服务访问权限以降低风险。
综合评分: 88
文章分类: 漏洞分析,代码审计,WEB安全,渗透测试
TongWeb最新反序列化漏洞分析
哈拉少安全小队
2025年11月17日 12:30
广东
以下文章来源于漫漫安全路
,作者killer
漫漫安全路
.
漏洞潜伏似暗礁,攻防博弈涌新潮。漫漫安全行愈远,一心求索向九霄。
漏洞描述
TongWeb默认开放EJB远程服务,在处理EJB协议数据时进行了反序列化操作且未进行任何数据检测,攻击者可构造恶意序列化数据发送到EJB服务造成远程代码执行。
影响版本为:
7.0.0.0<=TongWeb<=7.0.4.9_M9
6.1.7.0<=TongWeb<=6.1.8.13
建议大家把公众号“漫漫安全路”设为星标!因为公众号现在只对常读和星标的才会推送。操作方法:进入公众点击右上角的【…】,然后点击【设为星标】即可。
漏洞分析
通过下载官方补丁阅读补丁升级说明可知存在反序列化的接口为ejbserver/ejb
将TongWeb的jar包全部导入jadx进行搜索,先搜索ejbserver发现结果有点多于是转为搜索
"/ejb"只有一个结果,查看其代码实现
添加了一个mapping路由为
/ejb context为/ejbserver
/ejb路由对应的Servlet为com.tongweb.tongejb.server.httpd.ServerServlet查看其代码实现继续跟入com.tongweb.tongejb.server.ejbd.EjbServer#service
继续跟入
com.tongweb.tongejb.server.ejbd.EjbDaemon#service
此处进行了反序列化操作,输入为
POST数据包。
他这里自定义了反序列化格式前八位字符需要符合这个正则
然后在
readObject之前进行了readByte所以我们生成序列化数据之前需要先writeByte至此我们已经掌握了其序列化数据生成格式,先使用
dnslog测试序列化格式是否构造正确。
成功触发
dnslog,然后我们查看其依赖发现
cb183但是搜索BeanComparator并不存在继续观察其依赖发现存在
xbean-naming然后我们打开java-chains开始拼好链
找到BadAttributeValueExpExceptionToString->XBeanToString->TomcatElRef
但是我们这里是TongWeb存在TomcatElRef吗?
搜索一下发现是存在的,只是包名改为了com.tongweb.naming.factory.BeanFactory
我们查看其实现
发现和
tomcat未修复这个利用之前的代码一样,所以这里可以这么打。还有一个要注意的就是xbean-naming的包名也要对应修改。
因为这里需要构造特殊的序列化格式,而且包名都需要改变所以不能直接用java-chains生成。我以前没写过这个链,自己写的话比较麻烦于是直接反编译java-chains再一次开始拼好链
找到这个三个类从后往前把他的代码给拼起来(也可以使用其他方式触发ToString)然后把包名改一下
elString里面填入内存马payload,生成序列化数据发包!!!
成功打入内存马
公众号专注于网络安全知识分享,主要为代码审计、攻防实战、WAF绕过等内容每周一篇期待你的关注。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:哈拉少安全小队 《TongWeb最新反序列化漏洞分析》