Java常见框架反序列化漏洞流量特征整理
前言
本文主要整理一些在HW行动即生产环境中常见的JAVA框架,红队识别其框架特征理论上除了指纹识别和漏洞点验证以外没有很好的识别方法,因此,本文着重介绍其常见漏洞。之后可能还会补充
主要涉及到的框架有以下几种:
框架名称 | 漏洞编号 |
---|---|
JBOSS | CVE-2015-7501 |
CVE-2017-12149 | |
Shiro | Shiro-550 |
Shiro-721 | |
Weblogic | CVE-2019-2725 |
Fastjson | CVE-2017-18349 |
指纹识别工具
在线指纹识别网站有很多,大家可以自行选择,在这里只推荐我觉得好用的一个插件(不是因为穷买不起云悉)
Wappalyzer
Wappalyzer插件是一款专为谷歌浏览器的打造的浏览插件,插件功能强大全面,简单易用,使用后可以帮助用户更轻松便捷的分析网站信息,还可以分析目标网站使用的平台架构,网站环境,服务器配置环境,JavaScript框架,编程语言和其他参数。
使用起来也很简单,加入到chrome的插件里直接就可以使用了,访问页面的时候点击右上角即可查看。
TideFinger
TideFinger是一款国内团队开发的指纹识别工具,使用起来也很简单。
附上github链接地址(https://github.com/TideSec/TideFinger)
具体的安装方法不再赘述,主要介绍一下使用方法:
1 | $ python3 TideFinger.py |
e.g.:
和Wappalyzer对比
所以我还是感觉Wappalyzer好用一点
JBoss反序列化漏洞(CVE-2015-7501)
漏洞原理
JBoss在/invoker/JMXInvokerServlet
请求中读取了用户传入的对象,可以通过Apache Commons Collections
中的Gadget执行任意代码
漏洞识别
访问invoker/JMXInvokerServlet
出现下载即表示漏洞存在
影响版本
- JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
- JBoss AS (Wildly) 6 and earlier
- JBoss A-MQ 6.2.0
- JBoss Fuse 6.2.0
- JBoss SOA Platform (SOA-P) 5.3.1
- JBoss Data Grid (JDG) 6.5.0
- JBoss BRMS (BRMS) 6.1.0
- JBoss BPMS (BPMS) 6.1.0
- JBoss Data Virtualization (JDV) 6.1.0
- JBoss Fuse Service Works (FSW) 6.0.0
- JBoss Enterprise Web Server (EWS) 2.1,3.0
流量特征
JBoss反序列化漏洞2(CVE-2017-12149)
漏洞原理
漏洞出现在 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中,源码在jboss\server\all\deploy\httpha-invoker.sar\invoker.war\WEB-INF\classes\org\jboss\invocation\http\servlet
目录下的ReadOnlyAccessFilter.class
文件中
其中doFilter()
函数代码如下:
1 | public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) |
可以看到其直接从http中获取数据,在没有进行检查或者过滤的情况下,尝试调用readobject()方法对数据流进行反序列操作,因此产生了Java反序列化漏洞。
影响版本
- JbossAS 5.X
- JbossAS 6.x
流量特征
- 目标URL:http://JBOSS/invoker/readonly
- 攻击流量:
Shiro-550
漏洞原理
Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值->Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
漏洞特征
shiro反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe
字段
影响版本
Apache Shiro <= 1.2.4
流量特征
Shiro-721
漏洞原理
由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。
漏洞特征
shiro反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe
字段
影响版本
Apache Shiro < 1.4.2
流量特征
环境问题,用张网图,之后配置好了再补
Weblogic反序列化漏洞(CVE-2019-2725)
漏洞原理
CVE-2019-2725是一个Oracle weblogic反序列化远程命令执行漏洞,这个漏洞依旧是根据weblogic的xmldecoder反序列化漏洞,通过针对Oracle官网历年来的补丁构造payload来绕过。
漏洞特征
访问/_async/AsyncResponseService成功说明存在该漏洞
影响版本
- weblogic 10.x
- weblogic 12.1.3
流量特征
- 目标URL:http://weblogic/_async/AsyncResponseService
- 攻击流量:
Fastjson 1.2.24 反序列化(CVE-2017-18349)
漏洞原理
fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。
影响版本
- fastjson<=1.2.24