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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux tar 打包排除某些文件夹[通俗易懂]

    Linux tar 打包排除某些文件夹[通俗易懂]场景想要将以前的程序打包下来,但是发现有log日志,而且比较大,有几G大。解决思路打包的时候,将某些文件夹给排除掉,只打包自己想要的文件。解决方法使用tar命令来进行打包,并使用-exclude这个参数来排除一个文件夹。如果存在多个排除文件夹,就要写多个参数。示例tar-zcvfscheduler_20180508.tar.gz–exclude=s…

    2022年5月29日
    34
  • 定时器setTimeout和setInterval的简单应用[通俗易懂]

    定时器setTimeout和setInterval的简单应用[通俗易懂]本文简单利用定时器setTimeout和setInterval举了两个小栗子:定时炸弹和1-100递增

    2022年10月4日
    2
  • 手机丅f丅lcd什么屏_手机丅f丅lcd什么屏_全球首款屏下相机,90Hz OLED屏+4220mAh「建议收藏」

    手机丅f丅lcd什么屏_手机丅f丅lcd什么屏_全球首款屏下相机,90Hz OLED屏+4220mAh「建议收藏」在传统非全面屏手机时,指纹很好实现,放个传感器在屏幕下方区域就行了,但是全面屏时代,很多手机将指纹改为后置或者侧边指纹,不过后置太难看了,侧边指纹体验不是很好,还是屏幕指纹体验最好,OLED非常轻薄,而且具有一定的光通透性,因此可以实现屏幕指纹,指纹是解决了,但是前置摄像头的放置又是一个问题,刘海屏、水滴屏和挖孔屏都不能形成完美的真全面屏。不过功夫不负有心人,任何再难的技术,只要敢想就能实现,敢做…

    2022年8月10日
    10
  • 最小二乘法原理和推导过程「建议收藏」

    最小二乘法原理和推导过程「建议收藏」对于有误差的统计值,我们一般都是采用均值作为使用值。但是这种使用均值代替的方式是不是合理?为什么不用中位数、几何平均数什么的?这需要一个解释。1.什么是二乘?对于一列数字,比如10.1、…

    2022年5月17日
    55
  • 小心onpropertychange在ie8上的地雷[通俗易懂]

    onpropertychangeonpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的

    2022年4月10日
    37
  • shell IF语句的使用[通俗易懂]

    shell IF语句的使用[通俗易懂]目录条件语句(ifelse)的简单介绍if…fi语句if…else…fi语句if…elif…[else…]fi语句条件语句(ifelse)的简单介绍    如果你在用shell完成一些逻辑判断的时候,可能会用到if…else之类的条件语句。但是,shell中非同寻常的语法会让你每次都需要在网上重新查询确认。在shell中,即使是一些标点…

    2022年7月11日
    23

发表回复

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

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