文章内容来源:斗象智能安全
第一节
各小伙伴们, 安全界一年一度的激动人心的攻防演练盛况即将来临:) 这里给大家准备些弹药, 主要是近些年的可以进后台/getshell的漏洞, 漏洞太多难免疏漏.
基本都是常规操作加一点小技巧, 本文涉及所有漏洞均是公开信息, 大部分漏洞均分析过或实践过, 如有错误欢迎【斧】正, 如有补充也欢迎评论留言.
另外, 有些漏洞没有找到外部公开信息, 考虑涉及相关法律法规, 不宜披露, 请见谅. 想深度交流的欢迎沟通.
由于本文长度接近四万字, 所以采取分篇连载.
Apache Shiro RememberMe 反序列化导致的命令执行漏洞 (Shiro-550, CVE-2016-4437)
1. 漏洞简介
Apache Shiro 是企业常见的Java安全框架, 其漏洞在2019年攻防演练中起到显著作用
2. 影响组件
Apache Shiro (由于密钥泄露的问题, 部分高于1.2.4版本的Shiro也会受到影响)
3. 漏洞指纹
set-Cookie: rememberMe=deleteMe
或者URL中有shiro字样
有一些时候服务器不会主动返回 rememberMe=deleteMe, 直接发包即可
4. Fofa Dork
app=”Apache-Shiro”
5. 漏洞分析
【漏洞分析】Shiro RememberMe 1.2.4 反序列化导致的命令执行漏洞
https://paper.seebug.org/shiro-rememberme-1-2-4/
6. 漏洞利用
wyzxxz/shiro_rce: shiro rce 反序列 命令执行 一键工具
https://github.com/wyzxxz/shiro_rce
Apache Shiro回显poc改造计划
https://mp.weixin.qq.com/s/-ODg9xL838wro2S_NK30bw
7. 利用技巧
1.使用多个泄露的key进行遍历, 这个在实战中确实有效
关于Shiro反序列化漏洞的延伸—升级shiro也能被shell
https://mp.weixin.qq.com/s/NRx-rDBEFEbZYrfnRw2iDw
Shiro 100 Key
https://mp.weixin.qq.com/s/sclSe2hWfhv8RZvQCuI8LA
2.使用 URLDNS 进行检测提速
使用适应性最强的URLDNS(这个不受JDK版本和安全策略影响, 除非网络限制不能出DNS)进行检测
且可以使用ysoserial提前生成序列化内容
java -jar target/ysoserial-0.0.5-SNAPSHOT-all.jar URLDNS “http://1234567890.test.ceye.io” > urldns.ser
然后使用占位符+目标url hash的方法修改序列化内容中的urldns地址
提高检测速度以及后续检测无需使用ysoserial
例如 1234567890.test.ceye.io 可以换成 md5(‘www.qq.com’).hexdigest() [:10].test.ceye.io
也就是 9d2c68d82d.test.ceye.io
可以预先记录 hash
9d2c68d82d www.qq.com
然后进行hash查表就可以知道是DNSLOG来自哪个目标, 性能会提高不少
3.已知目标使用了Shiro, 可以采取Shiro-721的报错逻辑来进行遍历key — 星光哥
这样即使DNS不能出网, 也可以通过是否返回 rememberMe=deleteMe 来断定 shiro key 的正确性, 前提是服务器有rememberMe=deleteMe相关回显
8. 防护方法
1.升级Shiro到最新版
2.升级对应JDK版本到 8u191/7u201/6u211/11.0.1 以上
3.WAF拦截Cookie中长度过大的rememberMe值
Apache Shiro Padding Oracle Attack (Shiro-721)
1. 漏洞简介
Apache Shiro 是企业常见的 Java安全框架, 由于Shiro使用AES-CBC模式进行加解密处理, 所以存在Padding Oracle Attack漏洞, 已经登录的攻击者同样可以进行反序列化操作
2. 影响组件
Apache Shiro < 1.4.2
3. 漏洞指纹
set-Cookie: rememberMe=deleteMe
URL中有shiro字样
有一些时候服务器不会主动返回 rememberMe=deleteMe, 直接发包即可
4. Fofa Dork
app=”Apache-Shiro”
5. 漏洞分析
Shiro 721 Padding Oracle攻击漏洞分析 – 安全客, 安全资讯平台
https://www.anquanke.com/post/id/193165
Apache Shiro 远程代码执行漏洞复现 – OnionT’s Blog
http://www.oniont.cn/index.php/archives/298.html
6. 漏洞利用
wuppp/shiro_rce_exp: Shiro RCE (Padding Oracle Attack)
https://github.com/wuppp/shiro_rce_exp
7. 利用技巧
1.该漏洞需要登录后获取到合法的Cookie: rememberMe=XXX后才可以进行利用, 看起来不是很好利用
但实际上有一些网站是开放注册的, 而且这个洞不需要知道服务端密钥
所以后续的利用还是可以同Shiro-550一样利用, 而且这里是AES加密的, 自带过WAF属性
2.如果攻击没有生效, 可以试一下删除Cookie中的JSESSIONID 字段, 很多时候这个字段存在的话, 服务端不会去处理 rememberMe
8. 防护方法
1.升级Shiro到最新版
2.升级对应JDK版本到 8u191/7u201/6u211/11.0.1 以上
3.WAF拦截Cookie中长度过大的rememberMe值
4.WAF拦截访问过于频繁的IP, 因为该漏洞需要爆破Cookie
Apache Shiro 权限绕过漏洞 (Shiro-682)
1. 漏洞简介
Apache Shiro 是企业常见的Java安全框架, 由于Shiro的拦截器和spring(Servlet)拦截器对于URI模式匹配的差异, 导致出现鉴权问题
2. 影响组件
Apache Shiro < 1.5.2
3. 漏洞指纹
set-Cookie: rememberMe=deleteMe
或者URL中有shiro字样
有一些时候服务器不会主动返回 rememberMe=deleteMe, 直接发包即可
4. Fofa Dork
app=”Apache-Shiro”
5. 漏洞分析
Shiro 权限绕过漏洞分析(CVE-2020-1957) – 斗象能力中心
https://blog.riskivy.com/shiro-%e6%9d%83%e9%99%90%e7%bb%95%e8%bf%87%e6%bc%8f%e6%b4%9e%e5%88%86%e6%9e%90%ef%bc%88cve-2020-1957%ef%bc%89/
6. 漏洞利用
Shiro 权限绕过漏洞分析(CVE-2020-1957) – 斗象能力中心
https://blog.riskivy.com/shiro-%e6%9d%83%e9%99%90%e7%bb%95%e8%bf%87%e6%bc%8f%e6%b4%9e%e5%88%86%e6%9e%90%ef%bc%88cve-2020-1957%ef%bc%89/
7. 利用技巧
1.url中间可以尝试添加 ../ , 不限于这个漏洞, 可能会有惊喜, 错误的Nginx配置也会造成新的漏洞
关于url解析的问题可以参考以下链接
A New Era of SSRF – Exploiting URL Parser in Trending Programming Languages!
https://www.blackhat.com/docs/us-17/thursday/us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages.pdf
Tomcat URL解析差异性导致的安全问题 – 先知社区
https://xz.aliyun.com/t/7544
8. 防护方法
1.升级1.5.2版本及以上
2.尽量避免使用*通配符作为动态路由拦截器的URL路径表达式.
总页数118页。
文章内容太长,建议下载打印。
可扫码加群,免费发在微信群中。
















暂无评论内容