#渗透测试#红蓝攻防#HW#SRC漏洞挖掘03之逻辑漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅#渗透测试#红蓝攻防#HW#SRC漏洞挖掘03之逻辑漏洞_第1张图片

目录

一、逻辑漏洞的定义

二、逻辑漏洞的常见类型

(一)权限相关

(二)注册相关

(三)登录相关

(四)密码找回/修改相关

(五)支付相关

三、逻辑漏洞的挖掘步骤

四、逻辑漏洞的利用方式

(一)用户凭证暴力破解

(二)密码找回漏洞利用

五、如何检测程序中的逻辑漏洞?

1. 理解业务逻辑

2. 手动测试

3. 数据流分析

4. 使用调试工具

5. 安全审计

6. 自动化辅助工具

六、漏洞经验总结!!!!

一、权限相关漏洞:

二、登录模块

三、密码找回模块

四、注册模块

五、验证码模块

9、示例:

六、支付逻辑漏洞

七、业务办理模块

测试手段


一、逻辑漏洞的定义

逻辑漏洞是指在程序的代码阶段,对一些数据处理产生逻辑上的漏洞,是由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞,并且逻辑漏洞只能人工手动测试才能发现。攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性。

二、逻辑漏洞的常见类型

(一)权限相关
  • 平行权限问题
    • 例如A、B同为普通用户,他们之间彼此的个人资料应该相互保密,但如果因为程序访问控制缺失,A的资料能被B用户查看,这就是平行权限的关系下产生的逻辑漏洞.
  • 垂直权限问题
    • 如A是普通用户,B是管理员,B的页面登录访问需要密码和token,若A账号能直接输入管理页面URL的方式绕过管理员登录限制查看管理员页面,此时就体现了垂直关系下的逻辑漏洞.
  • 越权修改与查询
    • 在开发中,有时会出现调用数据时不考虑当前登陆用户是否有权限调用的情况。例如后台本是管理员权限,正常用户管理数据包id = 5,但可以越过权限去修改超管账户;或者修改密码时,不检验当前登陆用户是否有权限调用对应数据就进行操作.
(二)注册相关
  • 注册覆盖
    • 当用一个已注册手机号再次注册时,正常后端检测已注册会返回true,没注册返回false。但存在漏洞时,可修改回传参数,从而达到重复注册目的,覆盖之前的注册记录.
  • 注册遍历
    • 注册时若重复的用户名会提示已被注册,就可能被利用来猜测用户名.
(三)登录相关
  • 登录认证绕过
    • 直接访问登录后的界面:若登录成功后跳转到主页面(如main.php ),但没有校验机制,就可直接访问主页面绕过登录认证.
    • 前端认证问题:如果仅以登陆状态码(如session)判断登陆成功标识,修改登陆状态码就能进行登录.
  • 验证码相关
    • 图形验证码
      • 前端可获取验证码:验证码可能直接出现在html源码中或者隐藏在Cookie中.
      • 图形验证码可识别:没有做模糊处理的验证码,可利用脚本直接识别.
      • 验证码重复利用:只要不刷新页面,验证码就能重复被利用,原因是服务器端受理请求后没有及时清空上一次保存的session,导致可被重复使用来进行密码爆破等操作.
    • 短信验证码
      • 短信验证码可重复利用:若服务端未对短信验证码的验证时间/次数进行限制,就能被利用进行爆破.
      • 短信验证码与用户未绑定:正常短信验证码仅供自己使用一次,若未与手机号绑定,就可能出现张三的手机验证码李四拿来用的情况.
(四)密码找回/修改相关
  • 短信找回密码
    • 若短信验证码可以重复使用,攻击者就能修改用户密码;短信验证码未与用户绑定,攻击者可利用其他用户的包来修改本用户密码.
  • 用户名找回密码
    • 随便输入一个用户进行包检验是否存在时,可能回显用户全部信息.
  • 邮箱找回密码
    • 链接弱token可伪造:找回密码链接处若对用户标识明显,弱token能够轻易伪造和修改,如基于用户id标识或者基于服务器时间构造的情况,知道构造方式就可以自己构造找回密码的链接.
  • 修改密码未验证旧密码
    • 输入错误旧密码也能成功修改账户密码,没有对旧密码进行正误判断,这样就可通过修改id参数的值,利用此漏洞进行任意用户密码修改.
(五)支付相关
  • 修改支付金额
    • 例如顺丰宝存在支付逻辑漏洞,可以允许用户将1元修改为1亿元。在支付过程中,若金额后端没有做校验,传递过程中也没有做签名,就可随意篡改金额提交.
  • 修改购买数量
    • 没有对购买数量进行负数限制,可使购买数量为负数或者无限大。当购买数量无限大时程序可能处理出错,从而实现0金额支付;使购买数量为负数时可购买负数量商品,从而扣除负积分(即增加积分)等情况.
  • 请求重放
    • 可实现一次购买多次收货等情况.
  • 其他参数干扰
    • 在支付时直接修改数据包中的支付金额,实现小金额购买大金额商品等操作.

三、逻辑漏洞的挖掘步骤

  1. 尝试正确操作流程并记录数据包
    • 先尝试正确的操作流程,比如密码找回操作,要记录不同找回方式的所有数据包.
  2. 分析数据包找到有效数据部分
    • 在记录的数据包中,分析并确定有效数据部分,这是挖掘逻辑漏洞的关键步骤.

你可能感兴趣的:(安全,面试,逻辑漏洞,漏洞挖掘)