Web安全之逻辑漏洞全方位总结
字数 2042 2025-08-11 21:26:09
Web安全之逻辑漏洞全方位总结
1. 水平越权
1.1 原理
通过更换某个ID之类的身份标识,使得A账号能够获取(修改、删除等)B账号的数据。
1.2 容易出现的地方
- 权限页面(需要登录的页面)中的增、删、改、查操作
- 后台对用户权限校验不严格的地方
1.3 案例演示
- 登录到kobe账户
- 查看个人信息并抓包
- 将请求中的kobe改为lucy
- 成功获取lucy用户的信息
1.4 危害
- 获取其他用户敏感信息
- 篡改其他用户数据
- 游戏场景中可能获取高价值账号
2. 垂直越权
2.1 原理
使用低权限身份的账号,发送高权限账号才能有的请求,获得高权限操作。
2.2 容易出现的地方
- 普通用户尝试使用管理员功能
- 权限校验不严格的接口
2.3 案例演示
- 使用admin账户添加用户并抓包
- 使用pikachu账户登录
- 将pikachu的cookie替换为admin的cookie
- 成功创建新账户
2.4 危害
- 信息泄露
- 系统功能被滥用
- 严重者可获得系统管理权限
3. 支付漏洞
5.1 直接修改商品价格
- 在订购、确认信息、付款三个步骤中任意一步修改价格
- 尝试修改为小数目或负数
5.2 修改支付状态
- 将支付状态从"未支付"改为"已支付"
- 将低价商品的数据包用于高价商品
5.3 修改商品数量
- 将数量改为负数可能导致"零元购"
- 数量过大可能导致整数溢出
5.4 另类支付
- 修改优惠券金额
- 修改积分金额
- 修改满减规则
- 利用业务逻辑问题绕过支付验证
5.5 修改支付接口
- 修改为不存在的支付接口
- 利用接口处理不当绕过支付
5.6 重复支付
- 重复提交试用卡订单
- 退款时可能获得额外收益
5.7 最小支付和最大支付
- 最小支付可能导致低价获取高价值物品
- 最大支付可能导致整数溢出(2147483647)
5.8 四舍五入漏洞
- 充值0.019元可能被系统识别为0.02元
- 实际支付0.01元
5.9 首单优惠滥用
- 重复利用首单优惠
- 修改优惠参数
5.10 越权支付
- 修改支付请求中的用户ID
- 用其他用户的账户支付
5.11 无限次试用
- 重复调用试用接口
- 试用时间累加
5.12 多线程并发问题
- 在提现、转账等操作时并发请求
- 可能导致超额提现或多次兑换
4. Cookie脆弱性
6.1 漏洞原理
- Cookie中直接包含用户身份信息
- 修改Cookie值可切换用户
6.2 利用方法
- 抓取包含用户信息的Cookie
- 修改为其他用户的值
- 重放请求
5. 客户端回显漏洞
7.1 原理
- 验证码等信息直接回显在响应中
- 客户端完成验证而非服务端
7.2 危害
- 任意用户注册
- 密码重置
- 账户绑定
7.3 利用方法
- 抓取包含验证码的响应
- 使用正确的验证码完成操作
6. Response状态值修改
8.1 原理
- 修改服务器返回的状态值(true,1,ok,success等)
- 客户端依赖这些值判断操作是否成功
8.2 利用过程
- 拦截错误响应
- 修改为成功状态
- 客户端误认为操作成功
7. 验证码漏洞
9.1 无效验证
- 验证码与业务功能无关联
- 可绕过验证码直接操作
9.2 任意用户注册
- 使用自己手机号获取验证码
- 修改为其他用户手机号
- 完成注册
9.3 客户端验证绕过
- 验证码明文显示在前端
- 直接获取正确验证码
9.4 返回密文验证码
- 解密响应中的密文获取验证码
9.5 拦截替换返回包
- 保存正常操作的响应
- 替换错误操作的响应
9.6 验证码爆破
- 对4位或6位数字验证码进行爆破
- 无次数限制时可成功
9.7 验证码与手机未绑定
- A手机的验证码B手机可用
- 同一手机短时间内接收的多个验证码都有效
9.8 代码层逻辑缺陷
- 利用"\n"和空格绕过限制
- 导致无限短信轰炸
8. 短信轰炸
10.1 原理
- 重复调用短信接口
- 无频率限制
10.2 防御方法
- 增加图形验证码
- 限制同一手机号发送频率
- 增加时间间隔
9. Token绕过
11.1 前端回显
- Token直接显示在响应中
- 可被直接获取
11.2 Token爆破
- 设置单线程爆破
- 递归搜索Token值
- 使用正确的Token完成操作
10. Callback自定义返回调用
12.1 原理
- Callback参数控制返回地址
- 可被修改为恶意地址
12.2 利用方法
- 修改callback参数进行XSS攻击
- 关注敏感参数:id, callback, filename, uid等
防御建议
- 服务端严格校验用户权限
- 重要操作使用二次验证
- 支付金额等敏感数据服务端校验
- 验证码服务端校验且一次有效
- 接口添加防重放机制
- 关键操作添加日志记录
- 使用安全的会话管理机制
- 输入参数严格过滤
工具推荐
-
Burp Suite
- Repeater模块测试请求修改
- Intruder模块进行爆破
- Autorize插件检测越权漏洞
-
自定义脚本
- Python脚本自动化测试
- 多线程并发测试
通过全面理解这些逻辑漏洞的原理和利用方法,安全人员可以更好地发现和修复系统中的安全隐患,开发人员也能在编码时避免这些常见问题。