逻辑漏洞 概述

逻辑越权

逻辑越权漏洞是一种可能导致未经授权的访问和操作的安全漏洞。它通常涉及到应用程序在访问控制方面的不足,导致攻击者能够绕过正常的权限验证,执行其本不应具备的操作

漏洞成因
  • 不足的身份验证: 如果应用程序在验证用户身份时存在漏洞,攻击者可能能够伪装成其他用户。

  • 弱授权机制: 如果应用程序的授权机制不够强大,攻击者可能能够绕过权限检查执行敏感操作。

  • 依赖客户端输入: 如果应用程序过度依赖客户端提供的输入进行访问控制决策,而不进行服务器端验证,就容易受到逻辑越权攻击。

水平越权

可以操作其他同级别的用户

原理

通过抓包查看后端接收的提交方式,GET、POST、COOKIE,看里面是否有类似ID的变量值传参,修改ID就能进入对应的用户页面

垂直越权

可以获得比当前更高的权限

前端产生的威胁

通过获取到管理员修改页面时的数据包,再登录普通用户,替换掉数据包中对应管理员身份的数据包,实现普通用户模拟管理员操作网页

后台只判断页面有没有登录,并没有判断用户级别

后端产生的威胁

当普通用户与管理员在同一张数据库表中,会加上类似usertype字段进行身份验证

在访问网站数据包中对用户编号、组编号、类型编号等进行修改,就是越权测试

实战中会遇到:

  • 将编号一类的数据进行加密:需逆向分析js代码中的加密方式,破解后才能修改
  • 数据包带有token值:是否支持重复发包,删除是否有影响

未授权访问

目前网站上最多的漏洞,通过无级别用户来达到获取非本权限所能获取到的信息

数据篡改

常见参数篡改

商品编号ID、购买价格、购买数量、支付方式、订单号、支付状态

篡改方法

修改数据包关键参数
  • 支付金额、数量所对应的参数位置

    改负数、判断溢出值+1

  • 用户对冲

    把自己对应数据包的值,修改成别人的值,造成用别人的积分换自己的物品

  • 订单对冲

    抓取两个物品支付时的数据包,将金额大关键位置的修改成金额小的

  • 支付口对冲

    修改支付跳转地址,改成自己的支付地址——(天方夜谭)

优惠卷复用

提交订单不付款,取消订单后在创建订单,锁住优惠卷,再支付订单1,前提是订单1还能支付——(条件苛刻)

签到奖励

判断系统对签到日期的监控,是否是监控本机上的日期,修改本机日期即可

找回密码–绕过手机验证码

情况一

手机获取验证码和修改密码在一个网页上

  • 验证码回显

    发送验证码时会在respond中找到验证码,直接修改指定验证码位置即可

  • 跳过步骤

    假设有三个步骤

    1. 发送验证码
    2. 验证
    3. 重置密码

    抓取最后一步的数据包,尝试能否直接从1跳到3

情况二

先提交验证码再跳转到修改密码页面

  • 获取输入验证码后返回的错误和正确时的状态值,在BP中设置抓取回显信息,修改状态值

    BP抓取回显信息为:右键–>Do intercept–>Response to this request

    要求:必须以前端接收为准,以服务器为准的话,改不改没意义

网站验证码

前端验证

验证码整套流程在JS中实现,可以在源代码发现

通过BP抓数据包就能绕过验证,因为验证是在前端进行的,抓包抓的是从前端出来的数据

后端验证

在对验证码验证过后

  • 销毁验证过的验证码
  • 加上过期时间—session生成后,默认过期时间24分钟

如果没有设置以上两种方式,那么验证码可以重复使用

URL重定向

当网站有出现跳转别的地址的时候,比如login登录页面,这时将该登录地址的html源码保存下来,并修改该网站的url跳转,跳转到自己的刚下载的html页面,从而实现钓鱼

构造钓鱼代码

从下载到的源码中查看获取用户名,密码表单的name值,将name值以request方式接受并输出到文件中

完整url

网站地址
http://x.x.x.x/?url=login.php	//会跳转到login.php,将这个页面的源码下载

payload
http://x.x.x.x/?url=自己利用login.php源码构造好的钓鱼网页	    //这样会在不知不觉中让用户输入密码并截获

你可能感兴趣的:(web安全)