【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

admin 2023年12月30日11:53:54评论30 views字数 884阅读2分56秒阅读模式

0x01 阅读须知

SCA御盾实验室的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!

0x02 漏洞描述

获取验证码时,无图形验证码校验,破解前端编码后,可批量爆破用户名,获取用户姓名、编号与个人手机号

0x03 漏洞详情

1、 app打开后获取验证码时抓包,发现请求数据被加密

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

2、从手机登录页点击新账号激活时,抓包,在响应包发现其url地址,使用电脑浏览器访问,可以直接访问,则手机端测试转为pc端测试。

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

3、查看前端js代码,发现名为security.js的文件

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

4、 发现31行代码就是第1步的请求数据

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

5、向上追溯变量,发现变量传递为data->allParam->signCode->postParam

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

6、 而data变量在html代码里搜索此url的代码也能找到

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

7、由上述代码可知,后续会将json格式转为字符串,即data=’ loginName=base64encode(#loginName)’,尝试用常规的base64编码,结果失败

8、 又发现一个名为securityencode.js的文件里有base64编码的方法,由此看出,此处自定义了base64编码,所以常规的base64不行。

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

9、调用第8点js中的编码方法,和第5步的逻辑,成功将明文用户名编码成第1步中请求包的加密值,以此逻辑编写python代码,批量枚举用户名

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

10、 使用爆出的用户名去首页登录,到输入验证码的地方,可以在请求查看到明文手机号和authenWorkNo号

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

可以直接pc端访问此url

【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

因此,整个用户名枚举漏洞转变为可批量获取用户姓名+手机号的漏洞,提升为中危漏洞

0x03 修复建议

1、 增加图形验证码校验

2、 对客户端ip进行频次限制

3、 将手机号传参在请求包加密或隐藏

原文始发于微信公众号(SCA御盾):【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月30日11:53:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【实战SRC】前端加密的用户名枚举漏洞怎么从低危变为中高危?http://cn-sec.com/archives/2351085.html

发表评论

匿名网友 填写信息