提交需求
    *
    *

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

    logo

      产品与服务
      解决方案
      技术支持
      合作发展
      关于黄金城

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

        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

        回到顶部
      • 【网站地图】【sitemap】