工具仅用于安全研究以及内部自查,禁止使用工具发起非法攻击,造成的后果使用者负责
什么是ShiroHacker
白帽子在挖掘漏洞的时候,经常会遇到抢洞的情况
是否能够创造一个只属于你一人的Shiro
反序列化漏洞:只要你挖到,从此以后再不会有其他人能够挖到这个洞
(该工具只针对于SpringBoot/SpringMVC
配合Shiro
的情况,这也是最广泛的情况)
可以使用配套测试环境:https://github.com/EmYiQing/ShiroEnv
或者直接下载打包好的测试环境:https://github.com/EmYiQing/ShiroEnv/releases/download/1.0/shiro.jar
(启动后访问:http://127.0.0.1:8080)
命令:java -jar ShiroHacker.jar -u [TARGET_URL] -p [YOUR_NEW_KEY]
- 请提供16位长度的
Key
否则会影响到服务端正常的业务逻辑(不提供会使用默认的) - Payload仅可用于较新版本的
SpringBoot
中(例如2.6.0) - 使用该工具有可能会导致服务端业务逻辑出问题,真实环境慎用
和普通Shiro
工具一样,本工具会首先扫描key
并输出
然后会用Shiro
原生反序列化链CB1
构造Payload
打过去
这个Payload
的逻辑是反射修改服务端的Key
,需要修改三处地方
- AbstractRememberMeManager.DEFAULT_CIPHER_KEY_BYTES
- CookieRememberMeManager.encryptionCipherKey
- CookieRememberMeManager.decryptionCipherKey
只修改第一处不会生效,需要获取Spring
的Context
拿到CookieRememberMeManager
的Bean
修改后两处
感谢天下大木头师傅提供帮助:https://github.com/KpLi0rn
提出该技术的文章:https://xz.aliyun.com/t/9450
未经授权许可使用ShiroHacker
攻击目标是非法的
本程序应仅用于授权的安全测试与研究目的