前言
2月23日友商发布了一篇 修复方案|泛微e-cology9 SQL注入高危漏洞[1], 笔者注意到了这个漏洞并对此进行了进一步分析。补丁
笔者马上在官网[2]下载补丁,根据时间线下载了最新的 10.56 和上次更新的 10.55。
对比了一下,这里踩了坑,花了很多时间。可能是我下载 10.55 补丁包是根据时间规则自己构造去下载的,不是第一时间的补丁包,怎么也找不到对应的友商所说的 SQL 注入的修复方案。后来根据大哥的提示才找到了对应的修复方案。/WEB-INF/myclasses/weaver/security/rules/ruleImp/SecurityRuleForMobileBrowser.class
这么看来是官方二次修改了 10.55(2022-10-14) 补丁包的内容。
漏洞路径很清晰了,即 /mobile/plugin/browser.jsp ,注入点为keyword 。分析
跟进/mobile/plugin/browser.jsp 。
继续往下看找注入位置,一堆都是 setXXX,唯一的getBrowserData()方法很显眼。
对应的文件为:classbean/weaver/mobile/webservices/common/BrowserAction.class 。
这里的逻辑很多,同时该文件大量使用了 sql 语句拼接。注入点拼接 + this.keyword + 的地方也有很多,最终笔者找了几个browserTypeId进行测试,比如:
这不就有了,sqlmap 跑起,不出意料的失败了,没跑出注入,手注尝试也不行。一开始以为找错了,其他判断条件试了之后也都不行,明明存在就是注不出来,猜测应该是 ecology 9 的过滤机制拦截了,直接level 5尝试能不能绕过,答案是真的可以。
然后小伙伴告诉我可能是 三次 url 编码的原因,这里不得不说 chatgpt 真好使。
后续
周五下班后看到一份分析,该作者是找到了一个可以回显的 id,自行构造了查询密码的语句,获取管理员权限,测试通过。
修复方案
官方修复缓解措施
厂商已提供漏洞修补方案,请按照升级说明升级该系统最新补丁。
引用链接
[1] https://mp.weixin.qq.com/s/XSMVvSaJ_Mo57GdF_UgSZw[2] 官网: https://www.weaver.com.cn/cs/securityDownload.asp