• 【web渗透思路】任意账号的注册、登录、重置、查看


      

    前言:

    介绍: 

    博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。

    殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。

    擅长:对于技术、工具、漏洞原理、黑产打击的研究。

    C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。


    导读:

    面向读者:对于网络安全方面的学者。 

    本文知识点(读者自测): 
    (1)任意用户注册(√)

    (2)任意用户登陆(√)

    (3)任意账号重置(√)

    (4)任意用户查看(√)

     让读者如虎添翼

    渗透思维博文目标状态
    【web渗透思路】敏感信息泄露(网站+用户+服务器)

    信息泄露示例、泄露方式、泄露危害、泄露挖掘、用户信息泄露、服务器信息泄露

    已发布
    【web渗透思路】框架敏感信息泄露(特点、目录、配置)框架信息泄露已发布
    【web渗透思路】任意账号的注册、登录、重置、查看任意用户注册、登陆、重置、查看已发布
    2023将更新更多,敬请期待————


    目录

    一、任意用户注册

    1.未验证邮箱/手机号

    2、不安全验证邮箱/手机号

    3.批量注册

    4.个人信息伪造

    5.前端验证审核绕过

    6.用户名覆盖

    二、任意用户登录

    1、万能密码

    2、验证码、密码回显

    3、登录检测不安全

    三、任意账号重置

    1、重置账号名

    2、验证码

    3、MVC数据对象自动绑定

    4、Unicode字符处理

    四、任意用户查看

    1、cookie未鉴权

    2、cookie鉴权

    2、接口中参数


    一、任意用户注册

    1.未验证邮箱/手机号

    情景:应用为了方便用户记录用户名,使用邮箱和手机号作为用户名(因此很多应用在注册的时候就要求用户填写,多数时候都会给用户发送激活信息,激活后才能登录)

    缺陷:

    1、未审核邮箱/手机号是否有效(及未发送验证信息),从而实现任意注册账号

    2、未验证数据库中是否已经存在相同的用户名(导致同一账号,有2个密码,且用户数据产生读取问题)


    2、不安全验证邮箱/手机号

    用户注册邮箱/手机号提交后,会通过发验证码等方法对其真实性进行验证

    缺陷:

    1、返回的验证码:验证码信息会隐藏在返回包中,或hidden属性隐藏,或者是可以伪zao该信息,劫chi到验证信息

    2、分布验证/多步填写等情况:第一步填写的时候验证完成以后,后面并未对账号进行再次验证,通过修改数据包中已验证的邮箱/手机

    3、验证未绑定:使用自己邮箱/手机获取验证码后,在其他账号上使用


    3.批量注册

    (提示:危害不足)

    通常由于无验证码或者验证码不安全,再对用户名进行爆破即可


    4.个人信息伪造

    (提示:有的行业会危害不足,防沉迷可能不一样)

    需填写身份证等信息,可任意构造绕过身份证与姓名(一般网站危害不足)

    如果是防沉迷系统存在此类问题(危害应该足了)


    5.前端验证审核绕过

    1、任意填写注册信息,服务器会对信息进行审核,并通过返回状态给前端判断(如检测是否存在恶意标签等,对返回的状态可修改绕过)

    2、步骤

    使用正常账号或合规操作执行,拦截返回信息(判断信息)

    使用需要绕过检测的操作,并将服务器返回判断信息替换为正确时的


    6.用户名覆盖

    未对数据库中的账号进行核对是否已经存在

    利用地方:注册账号、修改个人信息

    二、任意用户登录

    1、万能密码

    万能密码需要有一定的了解,并不是真的万能

    有时候也得考虑

    字符型 or 数值型

    单引号 or 双引号

    1. asp aspx万能密码
    2. 1"or "a"="a
    3. 2'.).or.('.a.'='.a
    4. 3or 1=1--
    5. 4'or 1=1--
    6. 5: a'or' 1=1--
    7. 6: "or 1=1--
    8. 7: 'or.'a.'='a
    9. 8: "or"="a'='a
    10. 9: 'or''='
    11. 10: 'or'='or'
    12. 11: admin'or 1=1#
    1. PHP万能密码
    2. admin'/*
    3. 密码*/'
    4. 'or 1=1/*
    5. "or "a"="a
    6. "or 1=1--
    7. "or"="
    8. "or"="a'='a
    9. "or1=1--
    10. "or=or"
    11. ''or'='or'
    12. ') or ('a'='a
    13. '.).or.('.a.'='.a
    14. 'or 1=1
    15. 'or 1=1--
    16. 'or 1=1/*
    17. 'or"="a'='a
    18. 'or' '1'='1'
    19. 'or''='
    20. 'or''=''or''='
    21. 'or'='1'
    22. 'or'='or'
    23. 'or.'a.'='a
    24. 'or1=1--
    25. 1'or'1'='1
    26. a'or' 1=1--
    27. a'or'1=1--
    28. or 'a'='a'
    29. or 1=1--
    30. or1=1--
    1. jsp 万能密码
    2. 1'or'1'='1
    3. admin' or 1=1/*

    2、验证码、密码回显

    1、可以拦截到验证码(或者验证固定)

    2、通过修改user_id,密码会返回在数据包中(至少是加密的)


    3、登录检测不安全

    1、如下传入参数后登录成功(具体参数可能需要代码审计,或通过已有账号抓包分析)

    http://127.0.0.1/vlcms/index.php?s=/member/res_login/

    POST:uid=60

    2、再访问如下主页,判断是否真的登录成功

    http://127.0.0.1/vlcms/index.php?s=/member/

    三、任意账号重置

    1、重置账号名

    登录状态下,点击修改密码,用户名一般不可修改

    1、如果可以通过修改前端的代码,让用户名变为可以修改的状态

    2、或者在数据包传输过程中修改用户名

    3、如果设置新密完全是由前端 js,基于应答状态码决定(即校验通过时服务端并未向客户端 set - cookie),那么可以修改状态码


    2、验证码

    1、验证码在返回包中回显

    2、验证码未绑定、无效

    3、验证码在本地进行验证


    3、MVC数据对象自动绑定

    邮箱重置密码/手机号码重置密码

    如果请求中没有明显的身份标识,可增加参数值来测试是否存在MVC数据对应自动绑定漏洞(如增加email参数,并用自己邮箱作为参数值,看是否能收到密码重置链接)


    4、Unicode字符处理

    (一个大佬的方法)

    1、情景:通过URL如/forget-password?email=发送邮件的方法重置密码

    2、缺陷:输入邮箱xxxx@gmáil.com会被规范化为xxxx@gmail.com

    3、原理:gmáil.com的punnycode是xn--gmil-6na.com,所以目标站点就会把xxxx@gmail.com用户的重置密码链接发送到邮箱xxxx@xn--gmil-6na.com中。并不需要注册gmáil.com域名,并搭建邮件服务器才能完成攻击,bp插件collabrator everwhere的collobrator client就可以实现

    4、工具:bp提供了一个在公网能够访问到的域名burpcollaborator.net,并且在使用collabrator的时候会随机生成一个二级域名供我们使用,比如xxxxxx.burpcollaborator.net

    5、验证漏洞:重置密码接口处输入含有Unicode字符的邮箱地址:xxxx@gmáil.com.xxxxxx.burpcollaborator.net,如果目标存在漏洞,就可以在collobrator client上看到目标站点发送给我们的xxxx@gmail.com用户的重置密码链接了

    四、任意用户查看

    1、cookie未鉴权

    修改参数,如User _id等与账号一一对应的编号


    2、cookie鉴权

    钓yu等其他方法获取到其他用户cookie,替换cookie


    2、接口中参数

    情景:¶meters ={"User _Id":"加密后的值"}接口,返回了User _Id所对应用户的数据

    利用:解密 加密值(一般不可能),所以需要在大量数据包中找到在前端带入后,服务器返回数据中被加密后的值(这就要一眼看出加密值的特点,不然就算在面前也……)



    网络安全三年之约

    First year 

    掌握各种原理、不断打新的靶场

    目标:edusrc、cnvd 

    主页 | 教育漏洞报告平台 (sjtu.edu.cn)https://src.sjtu.edu.cn/https://www.cnvd.org.cnhttps://www.cnvd.org.cn/


    second year 

    不断学习、提升技术运用技巧,研究各种新平台

    开始建立自己的渗透体系

    目标:众测平台、企业src应急响应中心 

    互联网大厂URL
    阿里https://asrc.alibaba.com/#/
    腾讯https://security.tencent.com/
    百度https://bsrc.baidu.com/v2/#/home
    美团https://security.meituan.com/#/home
    360https://security.360.cn/
    网易https://aq.163.com/
    字节跳动https://security.bytedance.com/
    京东https://security.jd.com/#/
    新浪http://sec.sina.com.cn/
    微博https://wsrc.weibo.com/
    搜狗http://sec.sogou.com/
    金山办公https://security.wps.cn/
    有赞https://src.youzan.com/


    Third Year 

    学习最新的知识,建全自己的渗透体系

    目标:参与护网(每一个男孩子心中的梦想) 

    时间:一般5月面试,6/7月开始(持续2-3周)

    分类:国家级护网、省级护网、市级护网、重大节日护网(如:建党、冬奥等)

  • 相关阅读:
    Spring Boot 入门
    外贸老鸟帮新人点评、修改的5个开发信案例
    Unity中Shader抓取屏幕并实现扭曲效果
    C++设计模式-适配器(Adapter)
    Amazon云计算AWS(三)
    MALUNet:一种多关注,轻量级的皮肤病变分割UNet
    Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)
    融合黄金正弦与sigmoid连续化的海鸥优化算法-附代码
    STM32 J-LINK
    ppt录屏没有声音?超实用教程来了!
  • 原文地址:https://blog.csdn.net/qq_53079406/article/details/127999030