若该漏洞涉及管理员账户,攻击者甚至可能接管整个业务系统,导致数据泄露、业务中断等重大安全事件。近年来,国内外多家知名企业曾因类似漏洞遭受攻击,例如某社交平台因密码重置逻辑缺陷导致千万用户信息泄露,某电商平台因接口权限控制缺失引发订单篡改事件。
本次案例中,某大厂因前端与后端协同配置不当,导致系统存在两处高危漏洞:任意用户密码重置与未授权管理员登录。漏洞成因涉及验证码绑定逻辑缺陷、接口权限校验缺失、关键参数未加密传输等多重问题。下文将结合测试过程,详细剖析漏洞细节及修复建议,为企业和安全从业者提供参考。
正常进行网上摸鱼时发现一个登录界面,搞一下正常开始尝试弱口令,发现他竟然回应密码错误!!!说明什么说明用户名admin是正确的啊各位,开搞开搞。
一开始本来打算直接开始爆破的但是这里的验证码在包中虽然可以看见并未进行加密(提交的用户名与密码也没有加密)但与一个参数uniqueId绑定,且这个参数是随机生成并是一次性,所以没法进行爆破了
uniqueID就是与验证码(vcode)绑定用来验证是否一致的
点击免费获取验证码本来打算看看有没有验证码回显的,发现不行开始进行验证码常规绕过思路双写、回显、验证码置为null等等... 测完一圈得出都不行。这个地方只有一个勉强算得上有用的功能就是可以根据用户名得到他绑定的邮箱,可以尝试去社工他万一成功了呢。
这也勉强算是一个漏洞吧,只要知道用户名就可以得到邮箱(虽然知道过不了审属于是自我安慰了)
本来以为这次的测试之旅就要结束了,突然灵光一现想到之前看过不少src报告中有一种修改返回包的手法。开始最后一次尝试,发现他竟然显示密码重置成功!!!But 新密码已发送到你邮箱(有一点无语😶)这里只要知道用户名就可以实现密码重置,只是不知道重置成啥了
将返回包修改为验证码正确的回包
({code:1....success:true})
这样密码就重置成功了。好了成功挖出第一个漏洞任意用户密码重置,这里只需要知道用户名就可以实现任意密码重置
但是这样只是一个低危因为并不知道重置后的密码是什么所以有点小遗憾
用火狐的fs插件也是发现存在一些别的接口,去尝试拼接(千万不要觉得麻烦)很多未授权都是这么跑出来的
这里我习惯用burpsuite跑了一下。就发现了一个意外收获竟有一个接口直接绕过了账号密码登录直接进入后台了。开始详细的抓包分析
发现直接访问的时候有一个接口current/users会检测当前登录状态,绕过手法跟上面任意密码重置一样将他的返回包修改或者直接丢弃就可以了
成功登录是一个无权限的空身份,现在开始提权,整个页面只有三个功能点可用有一个查看当前用户身份信息,按照提示填写管理员账号信息并抓包进行详细分析
经过多次尝试发现这里主要是对username和userType、roleId这三个参数进行识别。那就好办了基于他给出的参数去尝试构造。最后也是成功获取了管理员权限,只要构造正确就可以实现任意身份去登录。
修复建议:
- 强化身份验证逻辑
:密码重置流程需增加多因素验证(如短信验证码、邮箱二次确认),并确保服务端对关键操作(如验证码状态)进行独立校验。 - 加密传输与参数混淆
:对用户名、密码、验证码等敏感参数进行加密传输,避免明文暴露;同时采用动态Token绑定验证码,防止重放攻击。 - 完善接口权限控制
:所有后台接口需强制校验用户身份与权限,避免未授权访问;对userType、roleId等关键参数实施服务端白名单校验。 - 业务逻辑安全测试
:定期对系统进行黑盒/白盒测试,重点关注身份验证、密码找回、权限管理等高危功能点。
此次漏洞挖掘的关键在于“跳出常规测试思维”。当弱口令爆破受阻时,通过分析返回包交互逻辑发现了突破口;在发现低危漏洞后,进一步深挖接口与参数构造,最终揭露了更深层的权限绕过问题。
对于安全从业者而言,保持耐心、多角度验证猜想,往往能发现隐藏的高危风险。正如安全领域的经典格言:“没有绝对安全的系统,只有未被发现的漏洞。”给大家一个建议在挖洞时如果感觉挖不动了不妨休息一下换个思路看问题说不定会有意想不到的收获。你要相信只要你感觉他又漏洞,他就一定有嘿嘿。
原文始发于微信公众号(神农Sec):记一次某大厂配置不当导致的任意密码重置和任意用户登录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论