• 逻辑漏洞挖掘——任意账号密码(用户名/前端验证/激活验证/批量注册)


    目录

    1、未验证邮箱/手机号

    2. 批量注册

    3.前端验证审核绕过

    4.邮箱/手机号注册激活验证绕过

    5.用户名覆盖


    1、未验证邮箱/手机号

            未验证邮箱/手机号,目前很多应用为了方便用户记录自己的用户名与密码,都可以使用邮箱跟手机号作为登录用户名,因此很多应用在注册的时候就要求用户填写,一般情况下该应用都会发送激活信息,用户在收到激活信息后才能登录
            然而有时候开发人员并不去审核邮箱/手机号是否有效,所以可以利用该缺陷,任意注册账号。

     填写邮箱后,并没有在邮箱发现任何激活信息,且直接把邮箱当作用户登录名使用

    2. 批量注册

            脚本批量注册造成服务器 dos 应用层攻击,影响网站的正常使用,通常由于上边无验证码或者验证码不安全导致可以写脚本来批量注册

    • 案列如下:以某站为例,注册页面如下,并无验证码验证,可以使用 burpsuite 批量注册

     我们用BP进行多线程爆破

     之后我们用之前用的邮箱进行登入

    3.前端验证审核绕过


            任意填写注册信息,服务端对注册信息进行审核,例如是否存在恶意标签等恶意信息但是通过返回状态值给前端判断,一旦篡改该值就有可能绕过

    • 第一步,使用正常账号修改密码,获取验证码通过时服务器返回数据,保存该信息
    • 第二步,使用 burpsuite 或 fiddle ,之后点击确定,服务器会返回验证码错误之类的信息,

    使用正确的信息例如{" MessageHeader ":[" MessagelD ":"RSP036"," Description ":"成功!"}进行替换后再执行,注册成功。
    具体测试方法和验证码的前端验证同理,这里不再赘述

    4.邮箱/手机号注册激活验证绕过
     

            为防止恶意用户任意注册账户,大多数网站会在用户注册中输入邮箱/手机号后对其真实性进行验证但是有时候返回的验证信息会直接隐藏在返回包中,只是不在前端显示出来,或者是可以通过抓包改包手机号/邮箱,伪造该信息,劫持到验证信息

    • 以某验证信息返回为例,该漏洞是在发送验证信息时会将验证信息同时发送到返回包中并将其在前端用 hidden 属性隐藏其值

            所以直接前端源代码査看即可:

    5.用户名覆盖

            渗透测试中,某些不严谨的开发人员,对于注册时,当输入用户名时不会对之前数据库中存在的用户名进行检查,判断是否存在
            登录查看时获取到数据库中同名用户的其他用户信息,导致其他用户信息泄露,或者由于验证用户名存在时,从前端获取到的数据与从数据库获取到的数据不同,但是往数据库中写入的时候却写了相同的部分

    •         而登陆时,当检测到是管理员用户名就给与管理权限

    •  假如我们又注册一个名为admin用户时

    •  我们发现在登入的时候只判断了username

  • 相关阅读:
    (二)Java 线程
    司徒理财:9.26黄金欧盘短线操作建议,原油行情走势分析
    【算法题】 8038. 收集元素的最少操作次数
    关于大数据学习之hadoop的安装
    java内嵌浏览器CEF-JAVA、jcef、java chrome
    Java String.substring()方法具有什么功能呢?
    嵌入式系统usb测试笔记
    Docker 安装kong konga
    12. Spring源码篇之创建Bean逻辑doCreateBean
    leetcode_27_最小栈
  • 原文地址:https://blog.csdn.net/m0_61506558/article/details/126344188