Easysite反序列化漏洞分析
Easysite反序列化漏洞分析探讨了JetspeedServlet处理HTTP请求的过程、pipeline获取机制以及XStream反序列化的触发条件。 2025-8-11 08:36:35 Author: www.freebuf.com(查看原文) 阅读量:50 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Easysite反序列化漏洞分析

Ha1ey@深蓝攻防实验室

本文章仅供学习交流使用,文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

分析

过滤器org.apache.jetspeed.engine.servlet.XXSUrlAttackFilter,检查uri和参数中是否存在xss危险符

1750401637144-38bdb6fc-d468-42f3-92bc-d3ddb6415aa8.png

image-20250801114918384.png

Http请求方法检查

image-20250801115017668.png

后面是关于一些特定路径下 jsp jspx文件的过滤

image-20250801115112635.png

Servletorg.apache.jetspeed.engine.JetspeedServlet

1741079915482-85378af5-71bd-48ac-ac0f-0c487b63af39.png

接收到http请求之后,会进行一系列的初始化处理

1741081315271-6d33b931-6805-4182-8b19-ee000250dde5.png

最后调用org.apache.jetspeed.engine.Engine#service的实现方法org.apache.jetspeed.engine.JetspeedEngine#service

1741081352197-9ff0d70c-14b9-4897-b32c-ba3e8d37946c.png

1741137563080-56798313-e016-4a53-b88c-b07d19e58adb.png

1741137570816-53ab25ca-90e8-47da-afcb-67d372f71b26.png

会从request的上下文中获取pipeline,如果获取不到就获取请求url中的关键字,比如/eportal/admin就会截取到admin,如果pipelineKey是/portal的话则会是默认的jetspeed-pipeline

1741139929390-467a5305-704a-4f69-b657-42742ed10dc8.png

如果不是上面情况,就会从this.pipelineMapper中获取,

1741140224363-b94e516d-679b-4a53-b133-c680130a6a36.png

webapps/eportal/WEB-INF/assembly/pipelines.xml文件中定义了对应关系

1741141946457-fb6291f4-3648-4c22-b499-d587d113bc67.png

最后是类对应关系

1741142065682-8dd20678-418f-400a-aceb-c5c11a366769.png

如果获取不到pipeline类就是默认的

最后被对应pipeline类对象的invoke方法处理,以下是所有的pipeline

1741142405499-77241001-f337-4777-ab39-b9bad078fc0b.png

然后会调用对应org.apache.jetspeed.pipeline.JetspeedPipeline.InvocationinvokeNext方法,循环调用 这个pipeline对应的所有Value

1741160216457-326f953a-7d0f-41ca-a6c3-51477e079c9b.png

经过一系列的Value类,不同的模块用不同的数字表示

1742463082655-f4556081-66dd-4735-8469-9f9dda049d7b.png

portlet.xml

定义了哪些需要鉴权

1750731475271-78e49332-4e58-429d-8baf-a7b54a46cdf0.png

1750731511972-5764339d-0198-48dc-97b4-2cd6cfddfeb3.png

XStream反序列化

路由/eportal/ui?portal.url=/portlet/wx-message-accept!accept.portlet&moduleId=0为portlet 命名空间下的接口,所以前台可以直接访问不需要鉴权

入口点com.huilan.easysite.newMedia.action.WxMessageAcceptAction#accept,获取请求流

image-20250801144825038.png

调用com.huilan.easysite.system.utils.XstreamXmlUtils#toBean方法处理

image-20250801145019179.png

触发xstream反序列化

image-20250801145149593.png

POC

image-20250801145441072.png

image-20250801145500103.png

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/vuls/443780.html
如有侵权请联系:admin#unsafe.sh