Bug Bounty Tip | 一次登陆绕过

绕过原理

MobileAuthenticationFilter拦截器会拦截手机登录和第三方登录,拦截url为/mobile/token/*,并根据传入的mobile字段来区分手机登录或授权登录。

验证码拦截器会拦截auth/mobile/token/sms手机登录的请求。

绕过方式

请求auth/mobile/token/aaa 并且mobile字段为SMS@{账户的手机号码},code字段不写.就相当于绕过了验证码拦截器了。

具体看 https://gitee.com/log4j/pig/issues/I1JR3Q。

案例

1、POST请求登陆目标系统。

http://ip:port/#/login

2、绕过获取Token

请求类型:POST

请求接口:/auth/mobile/token/aaaa

请求参数:mobile=SMS@要登陆的用户名&grant_type=mobile。

例如:

mobile=SMS@manager时登录manager用户 mobile=SMS@admin登录admin用户。

manager

Bug Bounty Tip | 一次登陆绕过

admin

Bug Bounty Tip | 一次登陆绕过

这里是怎么知道mobile参数的格式呢?

在信息收集的时候多关注前端js页面,在js文件中会定义一些post、get、ajax请

求,比如该站点的js中定义mobile字段的格式为mobile=SMS@用户名。

3、前端限制绕过

通过修改返回包的状态码,获取返回的json格式数据。

正常登陆错误的返回包

Bug Bounty Tip | 一次登陆绕过

返回包状态码为200的返回包

Bug Bounty Tip | 一次登陆绕过

4、使用步骤1获取对应的用户的token替换返回包的token

5、放行响应包

成功进入后台

Bug Bounty Tip | 一次登陆绕过



原文始发于微信公众号(不懂安全的果冻):Bug Bounty Tip | 一次登陆绕过

版权声明:admin 发表于 2022年11月10日 下午12:25。
转载请注明:Bug Bounty Tip | 一次登陆绕过 | CTF导航

相关文章

暂无评论

暂无评论...