实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

admin 2023年10月29日23:12:24评论17 views字数 1057阅读3分31秒阅读模式

扫码领资料

获网安教程

免费&进群

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

本文由掌控安全 - kgg 稿

八月初参加某市演练时遇到一个典型的逻辑漏洞,可以绕过验证码并且重置任意用户的密码。
首先访问页面,用户名处输入账号会回显用户名称,输入admin会回显系统管理员。(hvv的时候蓝队响应太快了,刚把admin的权限拿到了,蓝队就把admin账户禁用掉了,不过留了一手123456的账户)
实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)
点击忘记密码,发现回显一个用户手机号码,抓个包发现后端传过来的手机号码没有脱敏,但是前端显示却脱敏了,这就有趣了:
bp抓包分析发现管理员手机号泄露(仅是利用前端js将账户绑定的手机号码中间4位转换为*,数据包中的手机号码并未脱敏)。
将参数mobile修改为自己的手机号,而后放包抓返回包,发现返回报错,且参数有两个,一个是code,一个message
实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)
一看就是前端js脱敏,所以查看前端js代码
实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)
发现个惊喜,data.code=0,抓个包看看,在响应包中发现code字段,乐开了花,存在前端验证:

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)
重新发送验证码,将mobile字段去掉,不去掉的话就会发送短信给目标帐号了。
任意输入验证码,抓取响应包,将code字段改为0,然后进入密码修改界面,输入符合格式的密码:

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

填写完修改密码表单后,继续抓取修改密码的包,发现发送的参数里有code参数(后端验证码),将code参数去掉即可修改密码(原本保留code参数 code:”” 后端会回显错误,将其去掉就可正常修改密码,猜测是后端代码先判定是否存在code参数,若存在就将其与发送短信验证码api接口进行校验,若不存在就直接进行下一步修改密码)。

密码修改成功,进入后台,系统管理员权限,还神奇的发现有个系统切换功能,一个系统管理员有两个系统权限,乐开了花:

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

.

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

~


+++

 

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

 


Xray


cs4.0使

 | CNVD

SRC++

     | IP

实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

+~~ 


原文始发于微信公众号(掌控安全EDU):实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月29日23:12:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战 | 记一次红队打的逻辑漏洞(验证码绕过&任意用户密码重置)https://cn-sec.com/archives/2156885.html

发表评论

匿名网友 填写信息