泛微ecology9前置
1diot9 Lv4

泛微ecology9(下文简称e9)是我接触的第一个比较大型的复杂项目,一开始审计时花了很大力气。主要难点是:url和类的映射关系是什么;鉴权逻辑是怎么样的;各种filter是如何工作,有什么作用;安全补丁包怎么发挥作用;怎么找漏洞修复后的代码……

总之问题非常多,再加上泛微e9的代码十分混乱,像是把十几年的技术全塞一起了,分析调试的过程十分艰难。

最后我决定不死磕每一个点,就把漏洞原理看懂就行,不追求调试一遍,也不追求一下子把复杂的路由映射和鉴权逻辑看懂。

在这里记录一下我认为比较重要的知识,希望对新人有一点帮助。

环境搭建

我这里的版本是9.00.2303.02,在某鱼上收的。搭建环境是Windows+mysql8.0.20

这里mysql数据库一定要用mysql8.0.20,用其他的版本在数据库初始化的时候会报错。数据库一定要修改配置文件。

img

数据库初始化很久,需要多等一会儿。

调试配置的话,需要把classbean和各种lib加入idea项目结构的库中。

需要加入的包括:\ecology\WEB-INF\myclasses;\ecology\classbean;\Resin\lib;\ecology\WEB-INF\classes;\ecology\WEB-INF\lib;还有其他lib:img

如果发现idea识别不了哪个jar包,就单独添加一下。

路由映射

这里主要讲一下url和具体文件的映射关系。

jsp文件的话,url和文件路径是一样的,比如\ecology\security\monitor\Monitor.jsp,对应的url就是http://127.0.0.1:8090/security/monitor/isRaspRun.jsp

/api/… 这类url,对应的是/classbean/com/api,也有说对应/classbean/com/engine的,还不确定:

img

/service/xxx 这类url对应:/classbean/weaver/xxx/xxxImpl

/weaver/com.xxx.xxx这类对应:/classbean/com/xxx/xxx,相当于直接对应包名了。

开发文档

https://e-cloudstore.com/doc.html?appId=84e77d7890a14c439590b37707251859

https://e-cloudstore.com/ec/api/applist/index.html#/

https://e-cloudstore.com/e9/file/E9BackendDdevelopmentGuide.pdf

安全补丁分析

安全补丁主要看\ecology\WEB-INF\myclasses\weaver\security\rules\ruleImp,这里面的.class文件是主要的过滤逻辑。

同时,很多时候安全补丁会直接把漏洞路径给写出来:

img

这里的漏洞路径就是/mobile/plugin/1/ofslogin.jsp

安全开关

在\ecology\WEB-INF\weaver_security_config.xml中,把1 改成0即可

http://127.0.0.1:8090/security/monitor/Monitor.jsp

可以到这里查看安全补丁和开关情况。

安全补丁调用栈

img

在weaver.security.core.SecurityCore#executeCustomRulesForStaticResource进行调用,里面的

cleanRuleClasses和cleanRuleObjMap加载了安全规则和自定义安全规则,就是补丁里的主要内容

配置文件目录

在\ecology\WEB-INF\prop,一般通过Prop.getPropValue(“fileName”, “key”)读取

比较典型的就是ofsLogin任意用户登录

img

由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务
总字数 52.9k 访客数 访问量