第72天:业务逻辑篇&水平越权&垂直越权&未授权访问&检测插件&SRC项目

第72天:WEB攻防-业务逻辑篇&水平越权&垂直越权&未授权访问&检测插件&SRC项目

第72天:WEB攻防-业务逻辑篇&水平越权&垂直越权&未授权访问&检测插件&SRC项目1

MetInfo4.0漏洞演示

水平越权

定义:同权限的用户进行越权操作

首先创建两个用户:xiaodi1xiaodi2

image-20250825135815893

用其中一个用户进行修改密码的操作,然后将修改密码的数据包抓取到。

image-20250825135939219

image-20250825135933717

image-20250825140009633

改成同为普通用户的xiaodi1

image-20250825140038832

这个时候在用修改的密码去登陆xiaodi1用户,就可以发现登陆成功。

垂直越权

定义:从低到高的权限跨越,当然从高到低也可以叫垂直越权(但是没有什么作用)

image-20250825140358520

image-20250825140419033

发现同样可以修改成功。

未授权

定义:前面两种都是基于一个低权限,但是未授权,就是没有权限都可以进行访问。

image-20250825140717173

发现还是可以修改成功。

工具

真实情况下,批量跑才会用到,一般一对一测,目标很少的时候基本不用

  1. BP 检测插件:

    • xia_Yue 的 GitHub 地址:

      https://github.com/smxiazi/xia_Yue

      • 这个感觉,可能就比自己测试快一丢丢?
      • 感觉也不怎么好用
    • auth-analyzer-plus 的 GitHub 地址:

      https://github.com/VVeakee/auth-analyzer-plus

      • 这个也没演示
  2. 检测项目:

    • GitHub 地址:

      https://github.com/ztosec/secscan-authcheck

      • 好像是有点 bug,不过小迪修好了,直接用小迪发的就行,没有的直接看 GitHub 提交记录有填坑
      • 管理员用户 admin:admin123
      • 使用需要配置 bp 插件或者浏览器插件,直接看 GitHub 配置就行
    • GitHub 地址:

      https://github.com/y1nglamore/IDOR_detect_tool

      • 小迪没演示这个,不过说效果也一般

image-20250825141343663

如果是上图这样的,有两把勾,就说明可能存在越权,因为,有些页面本身也不用cookie进行访问,有些页面是报错页面,所以就会造成一些误报。上面这些工具里面还是推荐这个插件吧,其他的用的太复杂了。

总结

  • 有点开发者偷懒,不同用户页面差异只是区别于显示没显示出来

    • 所以功能点可能依旧存在,只是没有显示,通过 js 获取的 url 进行访问,可能可以找到一些接口功能点可以使用
    • 从而挖掘漏洞
  • 抓数据包和用户身份相关的地方进行修改去测试

    • 有的地方,分辨用户身份只使用一个可以遍历的数字或者加密后的东西来判断用户身份
    • 通过修改身份识别的标志来尝试是否可以水平越权,获取其他用户数据

    这里可以用meinfo的案例进行说明,可以看到admin的usertype在数据库中是3

    image-20250825141855333

    而其他用户是1,如果将其他用户修改成3,就可以这个用户提升到管理员:

    image-20250825142119617

  • 没有点测试的时候翻 js 文件,把 js 文件中找到了 url 都去访问,测试一遍,然后对数据包中带有身份的地方批量去跑

  • 获取 js 接口可参考信息打点:

    • 第 14 天:信息打点 - JS 架构 & 框架识别 & 泄漏提取 & API 接口枚举 & FUZZ 爬虫 & 插件项目
  • 小迪说如果有 token

    1. 直接将 token 删掉
    2. 不管 token
      如果 token 验证是安全的,测不了,数据包就有唯一性了
  • 实战测试 (越权):

    1. 找到当前用户相关的参数名,添加返回包里面的参数名参数值去提交,
    2. 参数值请求数据加密:JS 中找逆向算法,还原算法重新修改发包测试
    3. 请求包带 token:直接复用和删除测试。