zoukankan      html  css  js  c++  java
  • 35:WEB漏洞逻辑越权之找回机制及接口安全

    知识点

    找回重置机制

    • 客户端回显:验证码在客户端浏览器或数据包中回显
    • Response状态值:单独请求回复状态值判断验证码是否正确
    • 验证码爆破:验证码纯数字过于简单
    • 找回流程绕过:跳过中间验证步骤,直接抓包最后一步

    接口调用乱用

    • 短信轰炸,来电轰炸等

    本课重点:

    • 案例1:找回密码验证码逻辑-爆破测试-实例
    • 案例2:墨者靶场密码重置-验证码套用-靶场
    • 案例3:手机邮箱验证码逻辑-客户端回显-实例
    • 案例4:绑定手机验证码逻辑-Rep状态值篡改-实例
    • 案例5:某APP短信轰炸接口乱用-实例接口调用发包

    案例1:找回密码验证码逻辑-爆破测试-实例

    PHP云人才系统(Phpyun) V3.2下载:

    • http://downcode.com/downcode/j_16621.shtml
    • https://pan.baidu.com/s/1P73QFmEhY6f350CvmnOJNg 提取码:xiao

    该系统有绑定手机号功能,绑定时,需要验证码,可以配合bp的Intruder模块对验证码进行暴力破解

    暴力破解时需要考虑

    • 验证码的复杂度:验证码越复杂,成功率越低
    • 验证码的时效性:验证码一般都有有效时间,比如1分钟/5分钟,想想你能不能在验证码有效时间内将验证码爆破出来
    • 绑定失败锁定策略:有的系统可能会有限制,比如绑定3次失败则不能再绑定
    • 如果有图片验证码,考虑是否可以使用工具识别

    案例2:墨者靶场密码重置-验证码套用-靶场

    靶场地址:https://www.mozhe.cn/bug/detail/66

    绕过思路:攻击者先用手机号A发送一条正确的验证码,然后将手机号改为B,实现用A的验证码重置B账户密码。

    绕过原理:服务器只查询输入的短信验证码与服务器发送过的,不会把短信验证码和手机号绑在一起。

    过程:

    <1>打开页面,输入18868345809,向服务器请求短信验证码。

    <2>新开页面输入17101304128,向服务器请求短信验证码。

    <3>将18868345809的短信验证码输入到17101304128的短信验证码处。

    <4>将17101304128原本的图片验证码输入。

    <5>点击重置,获取key。

    案例3:手机邮箱验证码逻辑-客户端回显-实例

    案例演示1:真实案例

    该网站邮箱验证处,密码在客户端回显

    案例演示2:PHP云系统

    该系统有绑定手机号功能

    发送验证码时抓包,发现验证码在cookie中回显

    案例4:绑定手机验证码逻辑-Rep状态值篡改-实例

    <1>某真实案例 

    <2>该APP有修改密码功能

     

    <3>输入正确的手机号,错误的验证码,点击下一步,截断响应

     

    <4>将响应修改为验证码正确时的响应(前期测试获取)

    <5>直接进入下一步重置密码

    <6>输入新密码,点击确定,密码重置成功

    <7>使用新密码,成功登录系统。

    绕过原理:该APP重置密码功能分为2个页面,第一个页面,输入手机号、验证码,第二个页面,重置密码,我们可以通过修改第一个页面的响应数据来绕过验证码验证,直接进入下一个页面重置密码。

    案例5:某APP短信轰炸接口乱用-实例接口调用发包

    某系统注册账号功能处存在短信轰炸漏洞

    抓取发送短信的数据包,重放N次,可以对该手机号发送N条验证码。 

  • 相关阅读:
    DOM对象
    多态
    封装和继承
    析构函数
    构造函数
    二维数组
    javascript的基本语法
    javascript数组
    js
    BOM和DOM的区别
  • 原文地址:https://www.cnblogs.com/zhengna/p/15655691.html
Copyright © 2011-2022 走看看