Java反序列化漏洞 & 原生类 & 第三方项目依赖

Java反序列化漏洞及相关利用工具

靶场搭建

Releases · bewhale/JavaSec

1、启动PHPstudy内置mysql服务
2、修改root密码为123456
3、创建数据库javasec,导入SQL执行
4、运行如下命令
java -jar javasec-0.0.1-SNAPSHOT.jar

服务默认端口为 8000

java版本我们需要使用 

不大于 java 8 内核为100

对于这样的jar文件我们其实是可以进行反编译然后看源码的 当然有骚操作 : 就是改后缀为 .zip 

然后解压使用IDEA打开即可

源码文件所在地址

这有个信息就是 这个mapper 说明当前的数据库是mybatis数据库框架

原生类的反序列化

第一个就是readObject

分析一下代码

这个点说明当前的数据是进行base64加密的

那这个官方的链哪里来的呢 ?

这个就是需要我们使用java反序列化链的生成工具

java链利用工具

第一个就是yakit自带的

我们先使用dnslog生成一个域名 用来测试是否有反序列化漏洞 这个漏洞我们可以使用DNSURL链进行测试

测试发现上面的链丢失

然后本地的链这个 cb1.8是存在的 这个java链的使用主要看对方的环境有没有相应的

复制到

分析是有dns漏洞的所有就制造一个RCE

第二个工具 java-chains

基本使用:

生成java利用链:

先选择

修改参数内容的是第二个选项

生成JNDI 恶意协议地址

先选择这个选项然后把ip配置上点击启动

在这修改执行的命令

第二类是xmldecode

xml str自带的提取方法 :

xmlDecoder.readObject

第三类就是yaml类型的数据

这个就是需要配合JNDI注入

JNDI链的生成也是可以使用 java-chain进行生成的

如果报错

这样说明你的java版本过高了

成功会回显

第三方组件导致的反序列化

1、FastJson 这些组件的安全问题一般都是CVE

使用工具进行生成一个 rmi协议的恶意命令执行的地址

白盒 :

利用代码 JSON.parseObject(对象) 或者是使用 parse(JSon数据) 这样进行操作

2、Jackson组件

白盒测试代码  readValue(对象)

Shiro 反序列化

先进行判断Shiro组件的使用一般就是remberMe这个功能的单独http头

但是这个怎么没有呢
有的会出现在负载这个地方 

签证问题就是设计到 shiro的key  什么是key啊 这个就是记住我功能进行身份签证的一个证明 这个key是一个用户特有的

这个key一般是取自数据库和用户绑定的内容

工具利用:
先检测框架然后再检测利用的反序列化链

分析之后就能使用链进行命令执行等操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值