Spring Boot中使用 Apache Shiro 进行身份验证、权限控制时,利用 Apache Shiro 和 Spring Boot 对URL的处理的不同,实现越权访问。
比如/xxx/..;/admin/这个路径,在shiro看到“;”分号后,就会进行截断,校验分号前面路径/xxx/..这个路径并没有包含admin/**于是校验通过。Spring Boot看到此路径后,会直接取有效路径/admin/于是就访问成功了。
参考:
https://paper.seebug.org/1196/
https://blog.csdn.net/huangyongkang666/article/details/124176969
思考:为什么/xxx/..后面必须是两个点“.”
Apache Shiro < 1.5.1
环境:
docker环境下vulhub靶场




/admin,需要登录后才能访问。/admin目录。/admin发现拒绝访问302
/ddd/...;/admin/