作者:掌控安全-核心成员Xiaoc
一、 前言
Shiro 是 Apache 旗下的一个用于权限管理的开源框架,提供开箱即用的身份验证、授权、密码套件和会话管理等功能。
该框架在 2016 年报出了一个著名的漏洞——Shiro-550,即 RememberMe 反序列化漏洞。
4年过去了,该漏洞不但没有沉没在漏洞的洪流中,反而凭借其天然过 WAF 的特性从去年开始逐渐升温,恐将在今年的 HW 演练中成为后起之秀。
二、 原理
事实上,关于shiro的原因网络之上已经有很多的分析。而且估计大多数人对枯燥的代码分析没多大兴趣。
我这里就不啰嗦了。直接上如何检测以及攻击过程。对原理感兴趣的小伙伴可以自行百度或者谷歌吧。
三、 如何发现
3.1 第一种情况
多半是发生在登录处,返回包中包含rememberMe=deleteMe这个字段。
上图:
看到这个字眼,基本就可以试试。
实战之中也是多试试,即使漏洞不存在也不会亏。
3.2第二种情况
另一种情况就是,直接发送原数据包,返回的数据包中不存在关键字
可以通过在发送数据包的cookie中增加字段:
rememberMe=deleteMe
然后查看返回数据包中是否存在关键字。
这就要求很多时候需要手动在发送数据包之中增加字段,无疑相对比较麻烦,
有没有什么自动检测的工具吗?
有,当然有!
四、 自动检测Shiro反序列化之burp插件
先看效果:
这是刚刚我在测试的时候,插件自动发现的。
这期间,我们什么都不用操作,
仅仅需要过一段时间自己看看没有漏洞网站即可。
安装过程:
4.1 将jar包放到一个文件内,
建议在burp根目录文件夹下建立一个插件的文件夹。
路径最好不要出现中文。
4.2 点击—插件—添加—会弹出窗口。
4.3. 选定插件,下一步,关闭
4.4 测试插件效果
我们去访问一下刚刚那个漏洞网站,随便输入账户密码试试。
如果输入账户密码登录几次,等待1分钟左右,这没有出现的话。
就重启burp在试试。一般是不需要的。
五、 利用漏洞进行攻击
通过以上内容,我们已经找到burp,接下来就是进行攻击利用。
直接上工具:
没有工具的可以去这篇文章下下载:
https://bbs.zkaq.cn/Index/s/yBAwHerO
5.1. 测试存在
四种方式都可以试试,
推荐第四个。
这个资源可以放一个目标网站的一些图片链接等,也可以不放。
接着下一步。
已经发现key。在等待几分钟。
上边的框从灰色变白色,即可以输入命令的时候,代表攻击成功。
5.2. 执行命令
5.3. 反弹shell
先在VPS上开启监听
因为我得VPS(服务器)是linux的,就选择这个。
执行,
返回VPS查看。
,
5.4. 写入webshell
同样的原理可以写webshell,有时候自带的木马写不成功。
可以换成自己的马木,如冰蝎自带的。
写马。
访问试试,貌似写成功了。
空白页面一般是写入成功,如果未写入成功。访问会爆404等待文件不存在。
但是出现一个蛋疼的问题。
Webshell管理工具连接不上。
冰蝎2、冰蝎3、蚁剑都连接不上。
六、进阶之写内存马
到此就失败了么?
不不不,上内存马。
6.1. 新工具
老规矩,先看看他的样子。
6.2. 使用
6.3. 写马
不能忘了,之所以到这,是因为写木马无法连接的原因。
开始写马。
,
出错,换个目录试试。
查看,应该是写入成功。
注意的是,这是冰蝎2的木马。
,
,
七、 其他
第一种工具,直接写马不成功。
因为可以执行命令了。可以通过命令echo写马。
工具是死的,人是活的。
学院有自己的靶场,复现的话可以使用学院的,也可以自己vulhub一键搭建。
这个文章也是早就想写了,一直拖到现在也算是完成了一个小心思。
写的比较仓促,有些不足,欢迎大家多多指教补充。
部分工具可以在公众号:掌控安全EDU,后台回复“工具”,获取链接直接下载即可。