Java 反序列化漏洞面试常见问题

Java 反序列化漏洞面试常见问题

1. Java 序列化与反序列化的函数?

在Java 原生的API 中:

操作函数
序列化ObjectOutputStream.writeObject()
反序列化ObjectInputStream.readObject()

2. Java 中常见命令执行函数有那些?

Runtime.getRuntime().exec(“wireshark”);

3. Java 反序列化漏洞利用方式有几种,涉及那些工具?

利用方式:

  • RMI
  • JNDI

工具:

  • ysoserial
  • marshalsec
  • JNDI-Injection-Exploit

4. DNSLOG 用过么?

大多数反序列化漏洞造成RCE 攻击是没有回显的,利用dnslog 平台,在RCE 的时候构造DNS 请求,如果dnslog 平台能够收到DNS 请求,说明RCE 成功,也就验证了漏洞存在性。

5. Weblogic T3 的漏洞了解么?

T3 协议是WebLogic私有的协议,相比于JRMP协议多了如下的一些特性:

  • 服务端可以持续追踪监控客户端是否存活(心跳机制),通常心跳的间隔为60秒,服务端在超过240秒未收到心跳即判定与客户端的连接丢失。
  • 通过建立一次连接可以将全部数据包传输完成,优化了数据包大小和网络消耗。

Java 反序列化漏洞利用工具通过T3 协议与Weblogic 进行的通信,实现Weblogic RMI 调用过程,从而实现远程加载恶意类。

T3 协议有自己的流量特征。反序列化标志:T3 协议中每个反序列化数据包前面都带有fe 01 00 00,而后再加上Java 反序列化标志ac ed 00 05。序列化数据。

注意:Java 反序列化数据开头包含两字节的魔术数字,这两个字节始终为十六进制的0xac 0xed,接下来是两字节的版本号这里为0x00 0x05。在T3 协议的数据包中,在这个四个字节前还有四个字节 fe 01 00 00 。

参考文章:

WebLogic_T3反序列化漏洞(一)

6. 如何检测FastJson 漏洞是否存在,并且判断其版本?

可以使用BurpSuite 扩展FastjsonScan 进行漏洞检测。

7. Apache Shiro 550 和721 区别?

Shiro550 反序列化漏洞原理:

  • 记住我的功能开启之后,会有Cookie 数据,Cookie 数据其实就是加密后的经过序列化的用户对象,也就是二进制字节流。
  • 加密算法是AES 算法,算法很安全,但是秘钥是固定的,并且存储于源码中。

Shiro721 利用条件:

  • AES 秘钥不在是固定的了,但是此秘钥可以被爆破
  • 需要提供一个合法用户,再点击remember me ,成功登录之后,获取Cookie remember-me 的值。

参考链接:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaynell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值