当前位置: 首页 > news >正文

逻辑问题的基本知识总结越权支付验证码弱口令

1.权限问题

1.1越权问题

垂直越权和水平越权,垂直越权的危害要比水平越权更大

1.2访问控制

一般我们遇到了越权问题常常是代码逻辑上的问题,大致有以下三种
- 有验证,但是由于逻辑问题,变成了顺序上问题,先处理这个操作再跳转验证
- 有验证,但是验证凭证脆弱,可以用某些方法绕过(比如jwt验证使用了null加密,或者秘钥简单,容易爆破)
- 没验证,常常出现在某一个文件没有导入验证文件

1.3黑盒白盒测试

黑盒:根据功能来跟踪,或者使用相关工具
白盒:排查文件的导入,文件的逻辑,以及可以使用工具创建高等级用户,普通用户去排查是否有权限上的区别

2.购买与支付

2.1购买与支付常见的流程

找到需要购买的商品和数量->选择商品,确定金额,确定数量->确定订单创建订单->跳转订单页面进行支付->调用三方接口
购买中还容易产生:折扣券的使用,折扣券的领取
我们简单总结一下这个过程中涉及的变量:
商品id,数量,商品金额,订单id,订单的金额,三方接口,折扣券id
这些变量中不少事用户从前端传输的

2.2 针对变量容易产生的问题

商品的金额在前端传输还是后端设定,前端传输很可能让数据在传输到后端时改变
- 商品的数量,没有对于数量的设定后端规则,让用户传输负数,小数点
- 订单id和订单金额不绑定,让用更少的金额支付订单
- 折扣券可以重复的领取和使用,猜解折扣券的id号,使用未领取折扣券
- 三方接口,改变接口的相关设定,后端没有验证端口,导向了攻击者准备好的支付接口

2.3 修复与挖掘

黑盒白盒:主要都依靠功能去观察逻辑
修复:
- 将商品的金额固定在数据库,每次的取用都从后端调用,不要从前端接收
- 商品的数量在后端应该做过滤
- 订单id和订单金额固定在一起
- 折扣券的id使用更加随机和加密的格式,使用后删除
- 三方接口要后端再过滤

3.密码找回,手机登录,验证码

3.1 密码的找回与手机登录的机制

一般密码的找回都需要和手机号码进行验证码,所以这里手机登录我也一起分类了
确定找回账号->输入手机号->输入一层验证码->手机收到验证码->填写验证码->检查验证码是否正确->完成密码重置或者登录成功
在这个过程中容易出现的问题:
- 在前面都通过的情况下在最后重置的时候提交不同的用户数据,重定向用户,完成对于任意用户的密码修改
- 手机收到验证码,但是检查验证码的时候,respond验证码的明文,验证就没用了
- 检查验证码是否成功是在后端进行的,传递到前端是状态码,由前端进行是否跳转下一步,通过修改返回的状态码,我们就可以绕过验证码检测
- 验证码本身简单,没有时间效用,和使用的次数,在一层验证码不影响的情况下,攻击者可以用爆破方式通过检测

3.2 一层验证码

一层验证码常出现以下情况:
- 一个验证可以多次使用,上一个找回可以完成验证码的爆破
- 验证码识别,当验证码形式简单传统,可以用工具识别
- 以上这两个问题都会造成一个情况:接口得到任意调用,也就是无限制的给固定手机号码发送信息,也就是短信轰炸,不法分子收集这种接口可以任意调用的位置,利用网站资源去发送消息
 

3.3 防护

找回与手机登录:
- 绑定用户权限,防止重定向
- 不显示验证码原文
- 不用前端验证方式
- 采用验证码具有时效性,可以输入的次数
一层验证码:
- 每发送一次消息和表单就更新验证码
- 验证码识别采用更加不容易被识别的,比如steam的,滑动滑块的
- 在调用接口的时候要验证

4.弱口令

使用了一些弱口令去登录服务器,网站,协议等等

4.1 原因

主要有两类:
- 安全意识不足:
  - 使用的密码简单,容易被暴力破解
  - 多个网站使用的密码固定,或者有某种规律,通过信息收集,社工库等方式猜解
- 初始化:
  - 在使用服务器和网站保留了初始化的信息,没有及时修改密码(这个真的是很多人会干的事,大学学校办的网站就有很多人用的是初始化密码)
这些决定了弱口令问题出现在多个方面:网站登录,中间件登录,三方组件登录,各种类型文件加密,各种服务协议

4.2 使用的工具

- 字典:seclist,defaultCreds-cheat-sheet
- 工具:Hydra,ARCHRP,Burpsuite的intruder功能,插件new_xp_capchaburp插件new_xp_capcha识别验证码的简易安装-CSDN博客

5. 案例

damicms未对商品数量做过滤:大米cms安装&支付逻辑漏洞-CSDN博客
phpyun验证码回显:https://blog.csdn.net/weixin_40228200/article/details/128366055

相关文章:

  • android 调试UI 按钮无法点击事件问题
  • Vitis HLS 学习笔记--global_array_RAM初始化
  • 【C++初阶学习】第十二弹——stack和queue的介绍和使用
  • 群体优化算法---蜂群优化算法应用于数据挖掘
  • 基于uni-app的 年-月-日 时 时间日期范围控件
  • k8s牛客面经篇
  • 【Spring框架全系列】SpringBoot_3种配置文件_yml语法_多环境开发配置(详细)
  • Linux【工具 03】Telnet服务安装使用(安全性较差 非特殊情况尽量不要使用)
  • 24.面向对象六大原则
  • 【python深度学习】——tensor内部存储结构|内存优化与as_strided|内存紧凑化contiguous
  • 面试题:说说浏览器的缓存机制
  • WebSocket 断网重连、心跳检测功能封装
  • 极简网络用户手册(1)
  • 【代码随想录算法训练营第37期 第二十八天 | LeetCode93.复原IP地址、78.子集、90.子集II】
  • 算法简单笔记3
  • 【EOS】Cleos基础
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • hadoop集群管理系统搭建规划说明
  • JS字符串转数字方法总结
  • Shell编程
  • 编写高质量JavaScript代码之并发
  • 飞驰在Mesos的涡轮引擎上
  • 关于List、List?、ListObject的区别
  • 诡异!React stopPropagation失灵
  • 聊聊redis的数据结构的应用
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 思考 CSS 架构
  • elasticsearch-head插件安装
  • kubernetes资源对象--ingress
  • puppet连载22:define用法
  • 第二十章:异步和文件I/O.(二十三)
  • 通过调用文摘列表API获取文摘
  • #微信小程序:微信小程序常见的配置传值
  • (04)odoo视图操作
  • (7)摄像机和云台
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (AngularJS)Angular 控制器之间通信初探
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (六)c52学习之旅-独立按键
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (转)大型网站架构演变和知识体系
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core 发展历程和版本迭代
  • .net 验证控件和javaScript的冲突问题
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET成年了,然后呢?
  • .NET上SQLite的连接
  • .NET业务框架的构建