lerry903 / RuoYi

基于SpringBoot2.1的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用

Home Page:http://www.ruoyi.vip

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wrong code modification leads to Shiro deserialization vulnerability

BetterDefender opened this issue · comments

The cause of the vulnerability
The project uses shiro1.7.0 version, this version should not have this vulnerability;
image
image
Code layer troubleshooting:

  1. The default key is used (one of the reasons for this vulnerability)
    image
  2. From the point of view of the exploited gadget, the commonscollection exploit chain is used (the second reason for this vulnerability), and the commons-collections vulnerability should use version 3.2.2 and above
    image
  3. Check shiro related calling code:
    image
    The Shiro deserialization vulnerability is caused by calling the getRememberedSerializedIdentity() function of the CookieRememberMeManager class. The official repair code is as follows, the repair plan is to delete the CookieRememberMeManager class
    image
    The CookieRememberMeManager class was added when the open source project was rewritten, which led to the generation of vulnerabilities.

Exploit:
You can use the following tools to exploit this vulnerability, Github project: https://github.com/j1anFen/shiro_attack
image
Execute system commands
image