老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

网络安全培训逻辑漏洞有哪些必备知识点?

老男孩IT教育

行业新闻

2020年11月23日 14:59

之所以称为逻辑漏洞,是因为代码之后是人的逻辑,人更容易犯错,是编写完程序后随着人的思维逻辑产生的不足。

  逻辑漏洞:

  之所以称为逻辑漏洞,是因为代码之后是人的逻辑,人更容易犯错,是编写完程序后随着人的思维逻辑产生的不足。sql注入、xss等漏洞可以通过安全框架等避免,这种攻击流量非法,对原始程序进行了破坏,防火墙可以检测,而逻辑漏洞是通过合法合理的方式达到破坏,比如密码找回由于程序设计不足,会产生很多问题,破坏方式并非向程预防思路。在OWASP Top 10中也有所提及,分别为不安全对象引用和功能级别访问控制缺失。
 

  常见的逻辑漏洞:

  越权修改、越权查询、验证码回传、未进行登陆凭证验证、订单金额任意修改、密码重置、突破限制等。
 

  挖掘逻辑漏洞的环节:

  确定业务流程--->寻找流程中可以被操控的环节--->分析可被操控环节中可能产生的逻辑问题--->尝试修改参数触发逻辑问题

  把握住传参就能把握住逻辑漏洞的命脉

  1越权

  越权访问(Broken Access Control,简称BAC)是Web应用程序中一种常见的漏洞,在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。越权访问漏洞主要分为水平越权访问和垂直越权访问。

  1、水平越权:权限类型不变,权限ID改变

  水平越权访问是一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务器端在接收到请求数据进行操作时没有判断数据的所属人/所属部门而导致的越权数据访问漏洞。

  水平越权测试方法:主要通过看看能否通过A用户操作影响到B用户

  2、垂直越权:权限ID不变,权限类型改变

  垂直越权是一种“基于URL的访问控制”设计缺陷引起的漏洞,又叫做权限提升攻击。

  垂直越权测试思路:看看低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能。

  真实案例:XX网参数越权

  问题描述:测试过程中发现,用户在“地址管理”功能模块可越权查看任意收货信息,造成用户敏感信息泄露。

  1、如以下截图,选择“修改”,此时用抓包工具截断GET请求:

逻辑漏洞学习,网络安全培训面授1

  2、链接为:http://www.XXXX.cn/index.php?app=treasure&mod=Order&act=findId&address_id=1111将address_id参数值替换为任意数值:

逻辑漏洞学习,网络安全培训面授2

  3、提交修改后的请求,即可返回其他用户的姓名、手机号及收货地址等敏感信息。

逻辑漏洞学习,网络安全培训面授3

  风险程度:严重

  风险分析:攻击者可利用此漏洞获取用户名敏感信息,造成敏感信息泄露。

  修复建议:建议对用户修改及查看地址请求进行权限校验,避免越权操作,如果发生越权可返回错误页面或将账户登出。
 

  2交易支付中的逻辑问题:

  关于支付的逻辑漏洞的一般思路。一种是少充多得,比如充值100元时通过篡改金额改成10元,最终充值完毕后账户变成了100元,而实际付款却只有10元;一种是绕过活动页金额限制,比如很多公司做活动强制用户充值金额不能低于10000,而通过拦截修改金额,可以充值任意金额。

逻辑漏洞学习,网络安全培训面授4

  购物流程

  加入购物车时是否可以修改购买数量为负数,商品价格是否可以修改。

  确认购物车信息时是否可以修改商品数量为负数,是否存在折扣限制突破问题,是否可以修改商品总金额。

  输入物流信息时是否可以控制运费,如果可以,尝试修改为负数。

  确认订单后跳转支付接口时是否可以修改支付金额,可否不支付直接跳转到交易成功环节。
 

  预防思路:

  增加多重检验,订单较大时增加人工审核。
 

  真实案例:信用卡还款服务费被绕过

  问题分析:测试发现,微钱包信用卡还款功能处存在服务费可绕过漏洞,测试过程如下:

  1、选择信用卡还款功能,填写相关还款数值后,截断信用卡还款GET请求,将f参数值修改为1:

逻辑漏洞学习,网络安全培训面授5

逻辑漏洞学习,网络安全培训面授6

  信用卡还款服务费可绕过

  2、提交修改后的请求,页面返回成功:

逻辑漏洞学习,网络安全培训面授7

  风险程度:严重

  风险分析:攻击者可利用此漏洞绕过支付服务费,可能给泰康微钱包带来一定经济损失。

  修复建议:建议服务费由后台计算生成,不以客户端提交的参数值为依据。
 

  3密码修改逻辑漏洞:

  重置密码对一个系统来说是非常重要的存在,所以存在的问题也是非常致命。用户在重置密码页面,通过修改用户ID对所改用户密码进行重置;对密码重置页面验证码绕过,然后爆破进行等。

逻辑漏洞学习,网络安全培训面授8

  首先走一遍正常的密码修改流程,把过程中所有环节的数据包全部保存。

  分析流程中哪些步骤使用了哪些身份认证信息,使用了哪些认证方法。

  分析哪个步骤是可以跳过,或者可以直接访问某个步骤。

  分析每个认证方法是否存在缺陷,可否越权

  首先尝试正常密码找回流程,选择不同找回方式,如邮箱,手机,密码提示问题等。

  分析各种找回机制所采用的验证手段,如验证码的有效期,有效次数,生成规律,是否与用户信息相关联等。

  抓取修改密码步骤的所有数据包,尝试修改关键信息,如用户名,用户ID,邮箱地址,手机号码等。详细看以下案例:

  http://www.wooyun.org/bugs/wooyun-2010-011435

  http://www.wooyun.org/bugs/wooyun-2010-08573

  http://www.wooyun.org/bugs/wooyun-2010-012365

  http://www.wooyun.org/bugs/wooyun-2010-021818

  http://www.wooyun.org/bugs/wooyun-2010-020625

  http://www.wooyun.org/bugs/wooyun-2010-020588

  http://www.wooyun.org/bugs/wooyun-2010-019769

  http://www.wooyun.org/bugs/wooyun-2010-018722

  预防思路:

  系统后台在重置密码页面验证是否为本用户等。
 

  4验证码回传:

  这个漏洞主要是发生在前端验证处,只要拦截数据包就可以获取敏感信息,并且经常发生的位置在于:账号密码找回、账号注册、支付订单等。验证码主要发送途径邮箱邮件、手机短信。黑客只需要抓取Response数据包便知道验证码是多少。

逻辑漏洞学习,网络安全培训面授9

  预防思路:

  response数据内不包含验证码,验证方式主要采取后端验证,但是缺点是服务器的运算压力也会随之增加;要进行前端验证的话使用加密进行。
 

  5接口无限制枚举:

  有些关键性的接口因为没有做验证或者其它预防机制,容易遭到枚举攻击。

  真实案例:用户激活邮件炸弹攻击

  问题描述:测试发现,用户使用邮箱注册时,发送激活邮件功能可进行邮件炸弹攻击。测试过程如下:

  1、用户在激活账号过程中选择“重新发送”:

逻辑漏洞学习,网络安全培训面授10

  2、将GET请求中的uid参数值为其他uid(需要此uid的用户也使用邮箱注册):

逻辑漏洞学习,网络安全培训面授11

  3、重放此数据包,可形成邮件炸弹攻击,响应包中提示发送成功:

逻辑漏洞学习,网络安全培训面授12

逻辑漏洞学习,网络安全培训面授13

  用户激活邮件炸弹

  风险程度:中度

  风险分析:攻击者可利用此漏洞对使用邮箱注册的用户实施邮件炸弹攻击,影响用户体验。

  修复建议:建议对激活邮件限制发送次数。

  防范措施:

  1、使用最小权限原则对用户进行赋权;

  2、永远不要相信来自用户的输入,使用合理(严格)的权限校验规则;

  3、使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

  4、cookie中设定多个验证,比如自如APP的cookie中,需要sign和ssid两个参数配对,才能返回数据。

  5、用户的cookie数据加密应严格使用标准加密算法,并注意密钥管理。

  6、用户的cookie的生成过程中最好带入用户的密码,一旦密码改变,cookie的值也会改变。

  7、cookie中设定session参数,以防cookie可以长时间生效。

  

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。