业务漏洞笔记

本文详细介绍了业务安全的概念,包括漏洞成因、检测模型和常见类型,如流程乱序、接口调用安全等问题,并提供了相应的测试流程和修复建议,旨在提升业务系统的安全性。
摘要由CSDN通过智能技术生成

目录

业务安全概述

漏洞成因

漏洞检测模型

业务流程乱序

原理&测试流程

流程乱序测试

流程乱序修复建议

业务接口调用

短信/邮箱/电话修复方式

接口调用遍历

参数篡改

未授权访问

callback自定义

业务数据篡改


  • 业务安全概述

  • 漏洞成因

由于只注重实现功能而忽略用户个人行为对web应用程序的业务逻辑功能的安全性影响。开发代码不断迭代导致这些平台业务逻辑层面的安全风险层出不穷。业务逻辑漏洞主要开发人员业务流程设计缺陷,不仅限于网络层、系统层、代码层等,如登录验证绕过、数据篡改、接口恶意调用等。

  • 漏洞检测模型

业务安全top10漏洞挖掘关键点

0x01身份认证安全

0x02业务一致性安全

0x03业务数据篡改

0x04用户输入合规性

0x05密码找回漏洞

0x06验证码突破

0x07业务授权安全

0x08业务流程乱序

0x09业务接口调用

0x10时效绕过测试

  • 业务流程乱序

  • 原理&测试流程

部分网站逻辑可能是先A过程后B过程然后C过程最后D过程。

用户控制着他们给应用程序发送的每一个请求,因此能够按照任何顺序进行访问。

用户就从B直接进入了D过程,就绕过了C。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。

如果C是验证过程,就会绕过验证直接进入网站程序了。

  • 流程乱序测试

第一步:输入充值信息,提交金额。

第二步:生成订单信息。

第三步:抓包,将之前充值成功数据包里的订单号修改为刚生成的订单号。

第四步:防爆后如果充值成功,那么则存在流程乱序问题。

  • 流程乱序修复建议

对敏感信息进行加密处理,例如身份id、账号密码、订单号、金额等。

在服务器端对信息进行二次校验,避免修改乱序等情况。

  • 业务接口调用

如果未能做一些处理,那么就会容易发生一些业务接口调用上的安全漏洞,常见的业务接口调用漏洞如下:

  1. 重放攻击
  2. 用户遍历
  3. 参数篡改
  4. 接口未授权访问
  5. callback(回调函数)自定义

重放攻击

在短信、电话、邮件调用业务生成业务或生成业务数据环节(短信验证码,电话验证码,邮件验证码,订单生成,评论提交等),对其业务环节进行调用(重放)测试。如果业务环节进行(重放)测试。如果业务经过调用(重放)后被多次生成有效地业务或数据结果 。

危害

  1. 短信轰炸
  2. 电话轰炸
  3. 邮箱轰炸
  4. 恶意用户注册
  5. 恶意上传
  6. 恶意评论等等
  • 短信/邮箱/电话修复方式

设置发送间隔时间

正则校验手机号/邮箱/电话,防止被绕过

使用安全的加密参数及参数值

限制发送数量

  • 接口调用遍历

测试方法:例如有一个功能,是浏览商品的历史记录。把其用户的浏览历史记录URL发送到intruder,遍历其用户的id,看返回reponse信息中是否有正常返回的,且是其他用户的,则证明存在接口遍历问题。

修复方法:在session中存储当前用户的凭证或者id,只有传入凭证或者id参数值与session中的一致再返回数据内容。

  • 参数篡改

测试方法:例如在一些短信验证码、邮件验证码等功能业务中,比如修改其他用户密码,发送后,再次点击重新发送,拦截其请求,修改为自己的账号,如果自己收到了验证码,则存在此问题。

修复方法:会话session中存储重要的凭证,在忘记密码、重新发送验证码等业务中,从session获取用户凭证而不是从客户请求的参数中获取。从客户端获取手机号、邮箱等账号信息,要与session中的凭证进行对比,验证通过后才允许进行业务操作。

  • 未授权访问

测试方法:只要是登录后才可以返回相关信息的接口,在未登录状态下也可以返回的,就是未授权访问。在一般的网站测试中,可以http history中选择网站的根目录地址,然后右键spider from here进行爬去相关的URL,然后在target栏下的site map中利用mime type进行筛选,主要关注一下json、script、xml等这些类型,然后把URL贴到浏览器中看是否能访问来验证。

经验之谈:或者在测试的时候,相关数据包发送到repeater后,删除cookie进行go,如果成功返回信息,则是存在此问题的。

修复方法:利用token校验的方式,在URL中添加一个token参数,只有token验证通过才返回接口数据token使用一次后失效。在接口被调用时,后端对会话状态进行验证,如果已经登录,便返回接口数据,如果未登录,则返回自定义的错误信息。

  • callback自定义

测试方法:因为同源策略,很多网站都会使用JSONP,而JSONP一般会使用callback回调函数,如果这个函数没有做相关的措施,可以随意传入js代码并执行则存在此问题。

可以使用burp的爬虫功能,先爬去目标网站,然后筛选一下包含有callback关键词的URL,看response返回的mime类型,如果是text/html的,则可以输入js代码确认下是否存在这个问题。

修复方法:首先可以定义下content-type为json格式,content=application/json。其次建立callback函数白名单,如果传入的函数不是白名单内的,则组织并转到异常页。最后可以对callback参数进行html实体编码来过滤掉一些特殊字符。

  • 业务数据篡改

最大数限制突破
很多商品限制用户购买数量时,服务器仅在页面通过js脚本限制,未在服务器端校验用户提交的数量,通过抓包修改商品最大数限制,将请求中的商品数量改为大于最大数限制的值,查看能否以修改后的数量完成业务流程。


本地js参数修改
 部分应用程序通过Javascript处理用户提交的请求,通过修改Javascript脚本,测试修改后的数据是否影响到用户。

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值