shiro安全框架_漏洞利用及攻击框架
一、Shiro漏洞原理
Apache Shiro框架提供了记住我的功能(RemeberMe),用户登录成功后会生成经过加密并编码的cookie。
cookie的key为RemeberMe,cookie的值是经过对相关信息进行序列化,然后使用aes加密,最后在使用base64编码处理形成的
在服务端接收cookie值时,按以下步骤解析:
- 检索RemeberMe cookie的值
- Base 64解码
- 使用ACE解密(加密密钥硬编码)
- 进行反序列化操作(未作过滤处理)
在调用反序列化的时候未进行任何过滤,导致可以触发远程代码执行漏洞
用户登陆成功后会生成经过加密并编码的cookie,在服务端接收cookie值后,Base64解码–>AES解密–>反序列化。攻击者只要找到AES加密的密钥,就可以构造一个恶意对象,对其进行序列化–>AES加密–>Base64编码,然后将其作为cookie的rememberMe字段发送,Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞
二、Shiro序列化利用条件
由于使用了AES加密,要想成功利用漏洞则需要获取AES的加密密钥,而在shiro1.2.4之前版本中使用的是硬编码,AES加密的密钥默认在代码里。其默认密钥的base64编码后的值 kPH+bIxk5D2deZiIxcaaaA== ,这里就可以通过构造恶意的序列化对象进行编码,加密,然后作为cookie加密发送,服务端接收后会解密并触发反序列化漏洞。
目前已经更新了很多版本,官方通过去掉硬编码的密钥,使其每次生成一个密钥来解决该漏洞。但是,目前一些开源系统、教程范例代码都使用固定的编码,也有很多开源项目内部集成了shiro并二次开发,可能会重现低版本shiro的默认固定密钥的风险。用户如果不对密钥进行修改,即使升级shiro版本,也依旧存在固定密钥的风险。这里可以通过搜索引擎和github来收集密钥,提高漏洞检测和利用的成功率。
三、Shiro框架识别
请求包的cookie中存在rememberMe字段。 返回包中存在set-Cookie:remeberMe=deleteMe。 请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe。(有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为remember Me=1,若相应包有rememberMe=deleteMe,则基本可以确定网站是apache shiro搭建的。) URL中有shiro字样
四、Shiro漏洞汇总
CVE-2020-17523 CVE-2020-17510 CVE-2020-13933 CVE-2020-11989#Apache Shiro身份验证绕过漏洞 CVE-2016-6802#Shiro Padding Oracle Attack CVE-2016-4437#Shiro rememberMe反序列化漏洞
开源的burp shiro检测插件: https://github.com/pmiaowu/BurpShiroPassiveScan https://github.com/potats0/shiroPoc shiro漏洞利用工具: https://github.com/j1anFen/shiro_attack https://github.com/fupinglee/ShiroScan
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196069.html原文链接:https://javaforall.cn
相关文章
- SSH漏洞修复-升级openssh
- 漏洞挖掘工具——afrog
- 浅谈全自动扦样机存在的数据型“漏洞”是否有解,如何解?
- PHP<=7.4.21 Development Server源码泄露漏洞
- 通过 Realtek SDK 漏洞攻击一窥 IoT 供应链威胁
- Hyper 存在漏洞,Rust 项目易受拒绝服务攻击
- 影响众多编程语言、引发供应链攻击,剑桥大学发布「木马源」漏洞
- 俄沙虫组织利用Follina漏洞,入侵乌克兰重点机构
- Redis服务漏洞破解:SSH 攻击预防(redis漏洞ssh)
- 如何检查你的 Linux 系统是否存在 Meltdown 或者 Spectre 漏洞
- 今年是 TLS 不幸的一年,所有主要 TLS 堆栈均被发现高危漏洞
- 基于开源软件漏洞的攻击今年将上升 20%
- 英特尔处理器 CacheOut 漏洞攻击曝光 修复正在路上
- 源码级剖析PHP 7.2.x GD拒绝服务漏洞
- 利用脚本注入漏洞攻击ReactJS应用程序
- Linux高危漏洞预警:按Enter键70秒获得root权限
- PHP文件包含漏洞总结
- Redis安全漏洞:未经授权访问。(redis未授权访问漏洞)
- 漏洞Linux 关闭安全漏洞:守护系统安全(linux 关闭)
- MSSQL注入攻击之查询用户名漏洞(mssql注入查用户名)
- mssql注入漏洞利用dbo权限攻击(mssql注入dbo权限)
- MySQL中IN操作存在漏洞(mysql中in有漏)
- 让德国黑客能“监控”美国国会议员的全球电信网络“7号信令”漏洞,你也在用!
- 如何对PHP程序中的常见漏洞进行攻击
- 解决ASP(图像)上传漏洞的方法
- php5系列的apache远程执行漏洞攻击脚本