Web安全之业务逻辑漏洞

Web安全之业务逻辑漏洞业务逻辑不同的项目有不同的功能,不同的功能需要不同的代码实现,实现这些核心功能的代码就叫业务逻辑。业务逻辑漏洞业务逻辑漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能正常处理或处理错误。常见的业务逻辑漏洞业务逻辑漏洞挖掘过程确定业务流程—>寻找流程中可以被操控的环节—>分析可被操控环节中可能产生的逻辑问题—>尝试修改参数触发逻辑问题业务逻辑漏洞1.URL跳转漏洞1.1.URL跳转概述1.2.触发方式及绕或技巧1.3.修复方法2.短信邮箱轰炸漏洞2.1.短信邮.

大家好,又见面了,我是你们的朋友全栈君。

  • 业务逻辑
    不同的项目有不同的功能,不同的功能需要不同的代码实现,实现这些核心功能的代码就叫业务逻辑。
  • 业务逻辑漏洞
    业务逻辑漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能正常处理或处理错误。
  • 常见的业务逻辑漏洞
    在这里插入图片描述
  • 业务逻辑漏洞挖掘过程
    确定业务流程—>寻找流程中可以被操控的环节—>分析可被操控环节中可能产生的逻辑问题—>尝试修改参数触发逻辑问题

1.URL跳转漏洞

1.1.URL跳转概述

URL跳转也叫做重定向,301和302状态码都表示重定向,浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取。
301跳转是指页面永久性移走,通常叫做301跳转,也叫301重定向(转向)
302重定向又称之为暂时性转移,也被称为是暂时重定向。
产生原因:服务端未对传入的跳转 url 变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到
恶意网站。

1.2.触发方式及绕或技巧

触发方式
redirect redirect_to redirect_url url
jump jump_to target to link linkto domain
绕过技巧
利用问号绕过限制:url=https://www.baidu.com?www.xxxx.me
利用@绕过限制:url=https://www.baidu.com@www.xxxx.me
利用斜杠反斜杠绕过限制:url=http://www.evil.com/www.xxxx.me
利用子域名绕过:https://www.baidu.com.xxx.com

1.3.修复方法

修复该漏洞最有效的方法之一就是校验传入的跳转url参数值,判断是否为预期域名。

2.短信邮箱轰炸漏洞

2.1.短信邮箱轰炸概述

网站在对信息发送的次数、时间没有做限制,或者只在前端做了限制,导致可以无限制发送信息,简单的说就是发送短信/邮件的包可以无限制的发送。

2.2.产生位置及绕过技巧

产生位置
会员账号注册功能,忘记密码找回功能上,会员绑定手机邮箱功能,设置取款密码使用手机验证,或者是某项重要的操作,提现,充值等功能上需要手机短信验证码,再一个是网站活动领取奖品功能上。
绕过技巧
1.尝试在mobile参数后面加空格
2.尝试对参数进行多次叠加
3. 利用调用接口绕过短信&邮箱轰炸限制
4.利用大小写绕过邮箱轰炸限制

2.3.修复方法

合理配置后台短信服务器的功能,对于同一手机号码,发送次数不超过3-5次,并且可对发送的时间间隔做限制。
页面前台代码编写时,加入禁止针对同一手机号进行的次数大于N次的发送,或者在页面中加入验证码功能,并且限制发送的时间间隔。

3.任意密码修改漏洞

3.1.简述

网站在对密码修改的时候,未对修改密码的凭证做严格的限制,导致可以被绕过进行任意个密码修改。

3.2.表现

3.2.1.验证码不失效

通过枚举法找到正确的验证码,进行登录。

3.2.2.验证凭证回传及未绑定

直接输入目标手机号,点击获取验证码,验证码在客户端生成,并观察返回包即可。在返回包中得到目标手机号获取的验证码,完成验证。

3.2.3.本地验证绕过

将返回包的状态修改为登陆成功的状态,棋牌你服务器,登陆成功。

3.2.4.跳转验证步骤

首先使用自己的账号走一次流程,获取每一个步骤的页面链接,然后记录输入新密码页面的链接,重置他人用户时,获取验证码后直接跳转链接输入密码重置成功。

3.2.5.凭证可预测

使用邮件接受重置密码的连接时。一般会带有一个token用于判断链接是否被修改过。但是token是可预测的,这样攻击者可以通过构造链接来重置任意用户的密码。
表现:token有规律
1.基于时间戳生成的Token
2.基于递增序号生成的Token
3.基于关机字段生成的Token

3.2.6.同时向多个账户发送凭证

在数据包中添加多个账户,在发包,发现所写的有效字段均发送了凭证。

4.任意用户登录漏洞

4.1.简述

逻辑错误导致可以登录任意用户,撞库获得用户名,通过验证码登录,抓包修改接收验证码的手机号或者邮箱,然后能使撞库获得的用户登录,产生漏洞。

4.2.表现

4.2.1.手机登录验证码回显

修改登陆包中接收验证码的手机号,通过短信验证登录

4.2.2.修改返回包可以登录

将返回包的状态修改为登陆成功的状态,棋牌你服务器,登陆成功。

4.2.4.sql注入万能密码

4.2.5.系统默认弱口令及撞库

系统在搭建时,设置了默认的口令。通过尝试注册获取已注册的用户名,再利用通用密码进行登录。

4.2.6.cookie混淆(遍历id)

在登陆的时候根据cookie中的某一个字段来判断登录的角色,这个cookie字段可以任意修改,例如userid。

5.越权漏洞

5.1.概述

顾名思义,越权漏洞就是由于设计上的缺陷对应用程序的权限做的不好。通俗点来说,就是用户A可以通过某种方式查看到用户B的个人信息,或者可以查看管理员C的一些相关信息。
成因:越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定 。

5.2.分类

在这里插入图片描述

5.2.1.水平越权

水平越权漏洞是可以操作同一个层次的账号权限之间进行操作,以及访问到一些账号敏感信息,比如可以修改任意账号的资料,包括 查看会员的手机号,姓名,充值记录,撤单记录,提现记录,注单记录等等。

5.2.2.垂直越权

垂直越权漏洞可以使用低权限的账号来执行高权限账号的操作,比如可以操作管理员的账号功能。隐藏式后台也属于垂直越权的一种。

5.3.修复方法

1.基础安全架构,完善用户权限体系。
2.鉴权,服务端对请求的数据和当前用户身份做校验;
3.不要直接使用对象的实名或关键字。
4.对于可控参数进行严格的检查与过滤!

6.支付逻辑漏洞

6.1.简述

开发人员往往会为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额。而这种金额后端没有做校验,传递过程中也没有做签名,导致可以随意篡改金额提交。

6.2.表现

测试方法
1.在购买产品过程中修改产品数量、价格;
2.在支付时修改总价格或者优惠价格;
3.订单生成后,编辑订单把A商品的价格改成B商品的价格,实现低价支付。测试时,修改数量、单价,优惠价格参数为负数、小数,无限大,看是否能生成订单,能生成进入支付即说明存在逻辑漏洞了。
常见类型
• 修改购买数量
• 修改支付价格
• 修改支付对应的商品
• 修改支付的状态
• 修改附属优惠、领取优惠
• 测试数据包未删除

6.3.修复方法

1.在后端检查订单的每一个值,包括支付状态;
2.校验价格、数量参数,比如产品数量只能为整数,并限制最大购买数量 ;
3.与第三方支付平台检查,实际支付的金额是否与订单金额一致;
4.另外,如果给用户退款,要使用原路、原订单退回。比如:退押金,按用户原支付订单原路退回;
5.MD5 加密、解密、数字签名及验证,这个可以有效的避免数据修改,重放攻击中的各种问题;
6.金额超过指定值,进行人工审核等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137847.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月1日 下午12:00
下一篇 2022年6月1日 下午12:00


相关推荐

  • Python新手写出漂亮的爬虫代码1——从html获取信息

    Python新手写出漂亮的爬虫代码1——从html获取信息Python新手写出漂亮的爬虫代码1初到大数据学习圈子的同学可能对爬虫都有所耳闻,会觉得是一个高大上的东西,仿佛九阳神功和乾坤大挪移一样,和别人说“老子会爬虫”,就感觉特别有逼格,但是又不知从何入手,这里,博主给大家纠正一个误区:爬虫并不神秘,也不高级,是一个非常好上手和掌握的东西(当然,里面也有很多坑,也有很多细节,展开说的话其实也蛮复杂的,不过它的模式和套路就摆在那里,看了小编的博客,保证你能爬

    2022年5月2日
    38
  • Win10图标变白纸了,恢复方法

    Win10电脑桌面图标变成白纸了,恢复步骤第一种方法(此方法失败用第二种)首先开启显示隐藏受保护的系统文件和文件夹的设置。打开计算机,单击【文件】菜单中的【更改文件夹和搜索选项】选项。切换到【查看】选项卡,在【高级设置】选择【显示隐藏的文件、文件夹和驱动器】,然后单击【确定】按钮保存设置,之后关闭。键盘按WIN+R组合键,弹出窗体里键入【%USERPROFILE%\AppData\Local】回车键确定打开的文件夹窗口删除隐藏状态的IconCache.db图标缓存文件,搞定。第二种方法

    2022年4月5日
    3.8K
  • Oracle数据库安装使用(详细教程)

    Oracle数据库安装使用(详细教程)教程文档下载 https wwa lanzoui com iyMrarevbtcO 数据库控制台 图形界面 下载 https wwa lanzoui com iRV7GrevhhgO 数据库 百度云盘 下载 链接 https pan baidu com s 1ttjBIWEIm4A 提取码 b4jh 安装前注意事项 关闭网络关闭防火墙安装的路径不要有中文以管理员身份运行关闭网络是因为 ip 地址会变的可能导致下次会有影响安装的路径最好是

    2026年3月18日
    3
  • Blockcell v0.1.4 发布:国产高性能 OpenClaw 龙虾替代品,更稳更快

    Blockcell v0.1.4 发布:国产高性能 OpenClaw 龙虾替代品,更稳更快

    2026年3月17日
    1
  • 鸿蒙3部曲先看哪部,星辰变是“鸿蒙”系列的作品,那“鸿蒙”系列到底有多少部曲?…

    鸿蒙3部曲先看哪部,星辰变是“鸿蒙”系列的作品,那“鸿蒙”系列到底有多少部曲?…说到《星辰变》,相信很多人都知道他的作者就是番茄吧?而番茄笔下最出名系列的小说,无疑就是“鸿蒙”系列了,其中《星辰变》就是“鸿蒙”系列中的一部作品。那“鸿蒙”系列小说到底有多少部曲呢?对此也有很多人有了这个疑问。原先的“鸿蒙三部曲”相信很多熟悉番茄小说的朋友都知道,原本番茄的《盘龙》《星辰变》《吞噬星空》被很多粉丝称之为“鸿蒙三部曲”。因为在《星辰变》的结局中我们也知道,鸿蒙创立了三个不同的世界,…

    2022年6月15日
    148
  • Parallel.Foreach的全部知识要点【转】[通俗易懂]

    Parallel.Foreach的全部知识要点【转】[通俗易懂]简介当需要为多核机器进行优化的时候,最好先检查下你的程序是否有处理能够分割开来进行并行处理。(例如,有一个巨大的数据集合,其中的元素需要一个一个进行彼此独立的耗时计算)。.netframework4中提供了Parallel.ForEach和PLINQ来帮助我们进行并行处理,本文探讨这两者的差别及适用的场景。Parallel.ForEachParallel.F…

    2022年7月19日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号