业务授权安全
业务流程乱序
业务接口调用
业务一致性安全
业务数据篡改
时效绕过测试
业务授权安全
最小权限原则: 确保用户和系统只有在其职责范围内才能访问和执行操作。
强身份验证: 要求用户进行有效的身份验证,例如多因素身份验证,以确保只有授权用
户才能访问敏感业务。
利用场景:
企业内部系统需要将不同用户角色的权限分配,例如管理员和普通用户的权限不同。
用户在进行敏感业务操作时需要进行身份验证,例如电子银行转账。
会话管理漏洞: 如果应用程序的会话管理不安全,攻击者可以访问其他用户的支付信息或执行未经授权的支付操作。这可能是因为会话标识不够随机或不安全,或者因为会话没有正确终止。
不安全的存储: 如果用户的支付信息在服务器上不安全地存储,黑客可能会访问这些信息并滥用它们。这包括未加密的银行卡信息或密码。
1.未授权访问
非授权访问是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到
的页面或文本信息。
可以尝试在登录某网站前台或后台之后,将相关的页面链接复制于其他浏览器或其他电脑
上进行访问,看是否能访问成功。
2.越权访问
越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数
据过分相信而遗漏了权限的判定。
a) 平行越权(水平越权是指相同权限的不同用户可以互相访问)
test test1
b) 垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)
admin
通常情况下,一个 Web 程序功能流程是登录 - 提交请求 - 验证权限 - 数据库查询 - 返回结
果。如果验证权限不足,便会导致越权。常见的程序都会认为通过登录后即可验证用户的身份,从而不会做下一步验证,最后导致越权。
挖掘思路:
水平越权:如果在访问网站数据包中有传输用户的编号、用户组编号或类型综号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。
垂直越权:添加用户
案列:
这里是lucy的信息,我们把这个lucy变成kobe
创建的时候要注意抓包,第一张是管理员,第二张时普通用户
上图是普通用户,把普通用户的cookie复制下来,和admin替换
让普通用户有了添加用户权限类似于提权
也可以把创建用户的页面复制到普通用户也可以创建
越权漏洞的危害
越权漏洞的危害与影响主要是与对应业务的重要性相关,比如说某一页面服务器端响应(不局限于页面返回的信息,有时信息在响应包中,页面不一定能看见)中返回登录名、登录密码、手机号、身份证等敏感信息,如果存在平行越权,通过对用户ID的遍历,就可以查看所有用户的敏感信息,这也是一种变相的脱库,而且很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有十足的隐秘性。
如何检测越权漏洞
最简单的一种检测方式是,首先是通过定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。
案例:
用户A现在拥有一个有效的访问令卑,该令牌将作为鉴权参数用于以后的请求。每当用户A尝试发布帖子或查看其也用户的个人资料时,她的请求都会包含此访问令牌。(此令牌包括不限于ID和Jcookie)
鉴权参数:假如是个id=1是kk,id=2是cc,然后我把id=1改成2就可以看到cc的信息
业务流程乱序
流程控制: 业务流程必须按照预定顺序执行,涉及多个环节时要确保每个环节的完整性
审批链: 对于需要审批的业务,必须按照正确的审批链路程进行。
1.顺序执行缺陷
a)部分网站逻辑可能是先A过程后B过程然后C过程最后D过程
b)用户控制着他们给应用程序发送的每一个请求,因此能够按照任何顺序进行访问。于是,用户就从B直接进入了D过程,就绕过了C。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。如果C是验证过程,就会绕过验证直接进入网站程序了。
访问注册页面,注册账户之后充值提交并抓取数据包,填写任意金额然后并抓包,获取订单号,利用订单号构造充值链接并访问,看是否能充值成功
如果存在乱序,生成的订单,我能不能想办法跳过支付,或者我在这个订单的地方,我把我的订单号改成别人的,用别人的账号给我支付
先把每个流程跑一遍,把每个包都拦下来,假如我在生成订单这一步,直接把支付成功的链接进行
案例2:绕过旧日密码和短信验证码修改付款密码user=123
修改接口的返回数据包为true
业务接口调用
原理:
接口安全性: 确保业务接口受到保护,只有授权的系统或应用程序能够访问
数据验证: 对从接口接收的数据进行验证,防止恶意数据输入和攻击。
1.重放攻击
在短信、邮件验证码,订单生成,评邮件调用业务或生成业务数据环节中(例:短信验证码论提交,签到,投票等),对其业务环节进行调用(重放)测试。如果业务经过调用(重放)后被多次生成有效的业务或数据结果。
短信轰炸
在测试的过程中,我们发现众多的系统仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大量发送恶意短信
投票活动刷票
投票接口未做限制,或仅仅在前端Js做限制,可无限重放投票接口,给指定用户刷票
不过目前大部分投票系统都有做限制,比如同一个每天只能投三次票,可尝试用X-
Forwarded-For:127:0:0:1来绕过IP限制。
内容编辑
点击“获取短信验证码”并抓取数据包内容通过分析数据包,可以发现参数sendData/insrotxt的内容有客户端控制,可以修改为攻击者想要发送的内容
篡改短信内容,可用来钓鱼。
业务一致性安全
事务完整性: 业务操作必须具有事务完整性,即要么全部执行成功,要么全部失败。
日志记录: 记录关键业务事件,以便跟踪和审计。
1. 手机号篡改
抓包修改手机号码参数为其他号码尝试例如在办理查询页面,输入自己的号码然后抓包修改手机号码参数为其他人号码,查看是否能查询其他人的业务
2. 邮件地址篡改
抓包修改用户邮箱参数为其他用户的邮箱
3. 订单id篡改
查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息。
4. 商品编号篡改
例如积分兑换处
100个积分只能换商品编号为001,1000个积分只能换商品编号005在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品
5. 用户id篡改
业务数据篡改
数据保护: 使用数据加密、访问控制和数据完整性检查来保护业务数据通过
安全通信协议传输敏感数据。安全传输
- 金额数据篡改
抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程
经常见到的参数大多为rmb、value、amount、cash、fee、money等关于支付的逻辑漏洞这一块还有很多种思路比如:
相同价格增加订单数量,
相同订单数量减少产品价格
订单价格设定为负数等等。
- 商品数据篡改
- 最大数限制突破
很多商品限制用户购买数量时,服务器仅在页面通过js脚本限制未在服务器端校验用户提交的数量,通过抓包修改商品最大数限制将请求中的商品数量改为大于最大数限制的值查看能否以修改后的数量完成业务流程。
时效绕过测试
时间范围测试
针对某些带有时间限制的业务,修改其时间限制范围,例如在某项时间限制范围内查询的业务,修改含有时间明文字段的请求并提交,查看能否绕过时间限制完成业务流程。例如通过更改查询手机网厅的受理记录的month范围,可以突破默认只能查询六个月的记录。
时间刷新测试
12306网站的买票业务是每隔5s,票会刷新一次。但是这个时间确实在本地设置的间隔。于是,在控制台就可以将这个时间的关联变量重新设置成1s或者更小这样刷新的时间就会大幅度缩短(主要更改autoSearchTime本地参数)
12306自动刷新时间参数为autoSearchTime,可以再开启自动查询后再firebug控制台输入命令: autoSearchTime=1000,其中1000指1秒,再网络支持的情况下可以随意指定自己的刷新时间。文章来源:https://www.toymoban.com/news/detail-860169.html
业务安全的防御文章来源地址https://www.toymoban.com/news/detail-860169.html
- 访问控制:限制用户对系统资源的访问权限,只允许授权用户访问系统。
- 数据加密:对重要数据进行加密处理,保护数据的机密性和完整性,防止数据泄露。
- 安全审计:记录系统的操作日志和安全事件,及时发现和处理安全漏洞
- 强化认证:采用多因素认证等方式,提高用户身份验证的安全性。
- 漏洞修复:及时修复系统中的漏洞和安全缺陷,保证系统的稳定和安全性。
- 应急响应:建立应急响应机制,及时应对安全事件和威胁,降低损失和影响
到了这里,关于逻辑漏洞之业务安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!