提交需求
*
*

*
*
*
立即提交
点击”立即提交”,表明我理解并同意 《美创科技隐私条款》

logo

    产品与服务
    解决方案
    技术支持
    合作发展
    关于美创

    申请试用
      shiro漏洞复现
      发布时间:2021-06-25 阅读次数: 218 次

      Apache Shiro是一个强大的简单易用的Java安全框架,主要用来更便捷的认证,授权,加密,会话管理。目前被广泛用在大量的登录认证功能中,而该框架的历史版本中存在多个高危漏洞,本文就以两个严重漏洞进行漏洞复现演示其效果。


      01


      CVE-2016-4437反序列漏洞复


      影响范围


      Apache Shiro < 1.2.4


      漏洞原理


      ApacheShiro框架提供了记住我(RememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。


      Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManager类中将cookie中rememberMe字段内容分别进行序列化、AES加密、Base64编码操作。


      在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序,不难知道解密的顺序为:


      获取rememberMecookie


      Base64 decode


      解密AES(加密密钥硬编码)


      反序列化(未作过滤处理)


      但是,AES加密的密钥key被硬编码在代码里,意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。


      常用payload


      https://github.com/insightglacier/Shiro_exploit


      漏洞复现


      从vulhub中下载安装靶机

      https://github.com/vulhub/vulhub/tree/master/shiro/CVE-2016-4437


      正常访问


      抓包看请求包,返回包中含有Set-Cookie: rememberMe=deleteMe;这一般为shiro的指纹特征。


      使用上面的poc进行漏洞利用,下载poc并执行

      python3shiro_exploit.py -u http://192.168.160.239:8080 -p "touchsuccessshiro.txt" -t 3


      成功创建successshiro.txt文件


      02CVE-2020-1957认证绕过漏洞复现


      影响范围


      ApacheShiro < =1.5.1


      漏洞原理


      ApacheShiro 1.5.1以前的版本中,Spring Boot中使用Apache Shiro进行身份验证、权限控制时,可以精心构造恶意的URL,利用Apache Shiro和SpringBoot对URL的处理的差异化,可以绕过ApacheShiro对Spring Boot中的Servlet的权限控制,越权并实现未授权访问。如攻击者通过构造..;这样的跳转,可以绕过Shiro中对目录的权限限制。


      常用payload


      /xxx/..;/


      漏洞复现


      从vulhub下载安装靶机

      https://github.com/vulhub/vulhub/blob/master/shiro/CVE-2020-1957/README.zh-cn.md


      正常访问admin管理页面,会重新跳转的登录页面

      http://192.168.160.239:8080/admin/


      利用该漏洞poc,在admin前添加/xxx/..;/,即

      http://192.168.160.239:8080/xxx/..;/admin/,注意最后斜杠要带上。


      成功进入admin管理页面。

      免费试用
      服务热线

      马上咨询

      400-811-3777

      回到顶部