SEC-2022版-0038-WEB攻防-29-通用漏洞之业务逻辑漏洞-验证码&找回密码
总览
知识点:
- 找回密码逻辑机制
- 回显&验证码&指向
- 验证码验证安全机制
- 爆破&复用&识别
- 找回密码
- 客户端回显&Response状态值&修改重定向
- 验证码技术
- 验证码爆破,验证码复用,验证码识别等
详细点:
- 找回密码流程安全:
- 用回显状态判断
- res前端判断不安全
- 用用户名重定向
- 修改标示绕过验证
- 跳过其它验证,最终验证时将用户对象改为B
- 验证码回显显示
- 验证码泄漏验证虚设
- 尝试看验证码是否在数据包体现出来
- 验证码简单机制
- 验证码过于简单爆破
- 尝试无验证码的情况下对目标进行爆破(提交次数不受限制的情况下)
- 用回显状态判断
- 验证码绕过安全:
- 验证码简单机制
- 验证码过于简单爆破
- 验证码重复使用
- 验证码验证机制绕过
- 验证码智能识别
- 验证码图形码被识别
- 验证码接口调用
- 验证码触发机制枚举
- 验证码简单机制
安全修复方案:
- 找回机制要进行每一步验证-防绕过重定向
- 找回机制要进行服务端验证-防res数据修改
- 找回机制要控制验证码安全-防验证码攻击
- 验证码接口需验证后被调用-防接口被乱调用
- 验证码引用智能化人工判断-防验证码被识别
- 验证码采用时间段生效失效-防验证码被复用
实例
phpun-res值修改&验证码回显&爆破
短信验证码的正确设计:
获取:每一分钟才能触发一次发送验证码,防止接口被他人乱用
获取:每次获取短信验证码时,检测图像验证是否正确,并且在检测后更新图像验证码。
图像验证码防机器确保人工验证码。
res修改
- 绑定手机号时修改 返回状态值 判定通过
- 前端页面验证如果服务器不认,则绑定失败
- 如果是依赖前端返回的状态码123那种的,则表示服务器依赖前端验证,前端改什么资料只要修改了状态码,都会成功。
验证码回显
- 验证码复用等于没有验证码
- 绑定手机号时验证码前端泄漏被获取
验证码爆破
- 知道验证码规矩进行无次数限制爆破
- 前提是不限制验证码次数,并且验证码不会被变化
某APP-res值修改&验证码接口调用&复用
res修改 - 找回密码修改返回状态值判定验证通过
验证码接口调用 - 抓当前发送验证码数据包后调用
验证码复用 - 抓第一次验证通过的验证码进行复用
seacms-验证码识别&找回机制对应值修改
找回机制对应值修改:
注册两个帐号,尝试找回密码,重置连接重定向绕过
代码审计后分析Poc:
这个修改"最后的修改密码"指向需要知道源码,否则改不了 |
不存在复用验证码时:
- 验证码识别:
- BP的免费插件:xp_CAPTCHA
https://github.com/c0ny1/captcha-killer |
- burp安装jypython后导入py文件
- 安装所需库后python运行server.py
- 抓操作数据包后设置参数设置引用
参考案例:https://www.cnblogs.com/punished/p/14746970.html
应用:爆破密码时,接口调用时,测试其他时等
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 矢幽武博客!
评论