当前位置: 首页 > news >正文

31_逻辑漏洞、水平垂直越权、垂直越权漏洞测试、水平越权

概述

如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。

一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

水平越权

抓个包看一下,一般不是get请求,post为多,不过都一样,开个代理抓个包看看

 登录后,点击“查看个人信息”可以看到自己的信息。

修改地址栏中的数据,将username=kobe,修改为lili。结果看到了lili的信息。即水平越权。

以后找越权就是这么找,自己登录个账号,自己测试可以注册两个账号

那么可以猜测源码里是什么限制都没做的,传什么数据进来就搜什么数据,造成越权的原因

水平越权的防护:

有个小技巧,例如找escape这个函数不清楚它的作用,在PHP手册、百度等查不到,那么可能是自定义的函数,或者去公用的函数库里面去查找

由此可知它的作用是         //这里如果不对获取的cookie进行转义,则会存在SQL注入漏洞,也会导致验证被绕过

它的作用是SQL注入防御的那么就先不管他了,接下来继续看越权

想看登录的代码怎么写那就看这儿

$_SESSION['op']['username']=$username; $_SESSION['op']['password']=sha1(md5($password));

将用户名和密码的SHA1哈希值存储到会话变量中。这里使用了双重哈希(先MD5再SHA1)来存储密码,这是一种安全措施。

if(mysqli_num_rows($result)==1){检查查询结果是否有且仅有一条记录,这表示用户名和密码匹配。

$_SESSION['op']['username']  这是一个二维数组,数组里面套数组

改源代码:

    if($_SESSION['op']['username']!=$username){$username = $_SESSION['op']['username'];}

 保存后去测试一下就懂了

垂直越权

1、打开burp,抓取“添加用户”的数据包

登录admin的先抓admin添加用户的包,再登pikachu的普通账号抓;分别给该包添加一个高亮显示(等会好找)

 

2、抓取普通用户的Cookie

不同的cookie代表了不同的权限

3、使用普通用户的Cookie(普通用户权限)发送添加用户的数据包

将添加用户的包发送Repeater

点击GO,发送数据包(可以尝试多点几次)

 

 

发现多了好多bbb用户,说明使用普通用户权限,成功添加了账号,即垂直越权漏洞。

防御方式:

找到源代码增加以下,或者自行手敲

if($_SESSION['op2']['level']!=1){    //垂直越权防御代码header("location:op2_login.php");  //调整到登录页exit(); //退出程序
}

代码生效了,跳转到登录页了,且添加数据页不成功了

测试:

挖越权的漏洞可以找类似开源的CMS,源码下载下来,自己部署一下,自己注册两账号,用相同的方式测试一下,提交漏洞拿到赏金

http://www.lryc.cn/news/420599.html

相关文章:

  • css写一个按钮流光动画效果
  • AxMath保姆级安装教程(word联用)及使用TIPS
  • Vue-03.指令-v-on
  • 接口基础知识6:详解http request body(一篇讲完常见请求体)
  • Windows Server 安装Web,DHCP,DNS,FTP四大服务及其配置和监控方式
  • 创意指南丨VR游览沉浸式空间体验
  • 【iOS】—— autoreleasePool以及总结
  • 培训第二十五天(python中执行mysql操作并将python脚本共享)
  • LVS实战项目
  • 笔记小结:《利用python进行数据分析》之层次化索引
  • Linux的线程篇章 - 线程池、进程池等知识】
  • 汇昌联信做拼多多运营正规吗?
  • 240810-Gradio自定义Button按钮+事件函数+按钮图标样式设定
  • 排序算法--快速排序
  • springMVC -- 学习笔记
  • 修复本地终端(windows)连接服务器使用zsh出现乱跳的问题
  • 【扒代码】regression_head.py
  • vue2 使用axios 请求后台返回文件流导出为excel
  • MATLAB数据可视化:在地图上画京沪线的城市连线
  • 【AI】CV基础1
  • 数据结构《栈》
  • 说一说mysql的having?和where有什么区别?
  • LeetCode45. 跳跃游戏 II
  • 算法打卡 Day19(二叉树)-平衡二叉树 + 二叉树的所有路径 + 左叶子之和 + 完全二叉树的节点个数
  • 国际以太网专线 (IEPL)/国际专线(IPLC)-全球覆盖,无界沟通
  • 信息安全管理知识体系攻略(至简)
  • HCIE学习笔记:IPV6 地址、ICMP V6、NDP 、DAD (更新补充中)
  • 人工智能】Transformers之Pipeline(九):物体检测(object-detection)
  • [SWPUCTF 2021 新生赛]easy_md5
  • Redis面试题大全