目录

1、水平越权

(1)闯关

(2)原因

(3)防御

2、垂直越权

(1)闯关

(2)原因

(3)防御

3、尾声


这关也挺简单

1、水平越权

也称为横向越权,指相同权限下不同的用户可以互相访问,比如A和B是同权限的用户,如果A能看到理论上只有B能看到的信息,或者A能执行理论上只有B能执行的操作,那就是水平越权啦。

(1)闯关

进入pikachu的水平越权关卡,一开始要求登录

越权总要先用一个用户登录成功吧,点一下提示,这关有三个同级别的用户,账号密码分别是lucy/123456,lili/123456,kobe/123456

先用lucy登录,发现有个可以点击查看个人信息的地方

点一下,回显了lucy的个人信息

注意到上图中url的参数username的值是用户名lucy,那么会不会该参数值是哪个用户名就回显哪个用户的信息呢?

来试一下payload:http://ip:port/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&submit=点击查看个人信息#

成功看到kobe的个人信息,lili也是一样,就不演示了

(2)原因

到底为啥会出这种问题?来看一下源代码

啊,和猜想的一样,是因为查找用户信息的时候传入的参数是直接从url中获取的,没有校验当前用户

(3)防御

接下来我想试一下防御水平越权。

如下图所示,27行增加判断url传入的username和当前用户是否匹配,如果匹配则为$username赋值,若不匹配则不赋值。

尝试一下,首先是直接点“点击查看个人信息”按钮,返回了当前登录用户lucy的个人信息

再尝试一下把url中的lucy改成kobe,没有返回kobe的个人信息,成功防御水平越权

2、垂直越权

又称纵向越权,指使用权限低的用户可以访问到权限较高的用户。比如A用户权限比B低,如果A可以访问理论上只有B才能访问的资源,或者执行理论上B才能执行的操作,那就是垂直越权啦。

(1)闯关

点进这关又是个登录页面

点一下提示,看看有哪些用户:

admin/123456,pikachu/000000,admin是超级boss

先用pikachu登录看看有哪些权限:

pikachu只有后台管理中心的查看权限

退出登录,再用admin用户登录,看看有哪些权限:

admin可以查看,添加,删除

下面分别进行添加和删除操作,记录相关的url

添加用户

url是:http://ip:port/pikachu/vul/overpermission/op2/op2_admin_edit.php

创建一个用户haha

再来看删除

点击刚创建的haha用户那行的删除按钮,haha被删掉了,注意到url如下:

http://ip:port/pikachu/vul/overpermission/op2/op2_admin.php?id=25

好了,现在admin退出登录,再用pikachu登录

直接输入地址栏输入payload:http://ip:port/pikachu/vul/overpermission/op2/op2_admin_edit.php

顺利来到了添加用户的页面

创建用户enen,创建完之后会跳到登录页面,但是不要担心,用pikachu登录之后,发现用户enen已经创建成功

下面再来试试浏览器地址栏直接输入http://ip:port/pikachu/vul/overpermission/op2/op2_admin.php?id=26

回车之后也跳转到登录页面了,登录之后发现heihei还在,没有删除成功。

此时有两种可能性,要么是heihei的id并不是26,要么是这个url不存在垂直越权漏洞。

用admin登录之后删除heihei,确认heihei的id确实是26,那么就说明这个url不存在垂直越权漏洞。

这表示本关的垂直越权漏洞仅存在于http://ip:port/pikachu/vul/overpermission/op2/op2_admin_edit.php,不存在于http://ip:port/pikachu/vul/overpermission/op2/op2_admin.php?id=

(2)原因

看一下这两个操作的具体处理过程有什么区别:

先看没问题的删除操作op2_admin.php:

主要是23~26行,判断了用户是否登录,是否权限级别为1(超级boss),如果任意一条不满足,就跳转到登录页面

再来看看有问题的op2_admin_edit.php:

22~25行,只验证了用户是否登录,如果没登录就跳转到登录页面,没有验证用户权限等级,但前端显示添加用户是权限等级为1的用户才能执行的操作,因此这里有垂直越权漏洞。

(3)防御

来试一下防御,应该很简单,根据op2_admin.php修改一下op2_admin_edit.php:

22行增加对用户权限等级的判断$_SESSION['op2']['level']!=1

现在代码的意思变成,如果用户没登录或者权限等级不为1,则跳转到登录页面

用pikachu用户登录,直接在浏览器地址栏输入http://ip:port/pikachu/vul/overpermission/op2/op2_admin_edit.php,结果不再是跳转到添加用户的页面,而是跳转到用户登录的页面。防御成功

3、尾声

pikachu对越权漏洞的解释也有点怪怪的,这里就不贴了,网上看到一篇比较简洁的介绍还不错:水平越权与垂直越权

pikachu Over permission 越权(皮卡丘漏洞平台通关系列)相关推荐

  1. pikachu SQL 注入(皮卡丘漏洞平台通关系列)

    一.数字型注入 目录 一.数字型注入 二.字符型注入 在burp抓包 使用reprter注入 找列数id=2 order by 2# &submit=%E6%9F%A5%E8%AF%A2,如果 ...

  2. pikachu File Inclusion 文件包含漏洞 (皮卡丘漏洞平台通关系列)

    目录 一.来自官方的简介 二.来自小可爱的通关步骤 第一关  File Inclusion(local) 1.读取"隐藏"文件 2.读取系统文件 3.结合文件上传getshell ...

  3. pikachu SQL注入 (皮卡丘漏洞平台通关系列)

    目录 一.官方的戏精引言 二.仙女在认真闯关 一重天 数字型注入 二重天 字符型注入 三重天 搜索型注入 四重天 xx型注入 五重天 insert/update注入 (1)insert注入 (2)up ...

  4. pikachu RCE(remote command/code execute)(远程命令执行/远程代码执行)(皮卡丘漏洞平台通关系列)

    目录 一.官方介绍 二.诚意推荐 三.悠闲通关 第1关 exec "ping" 第2关 exec "eval" 一.官方介绍 本节引用内容来源pikachu漏洞 ...

  5. pikachu XXE (XML外部实体注入)(皮卡丘漏洞平台通关系列)

    目录 一.来自官方的介绍以及来自民间的扩展 1.pikachu官方简介 2.小女子之前画的脑图 3.两个不错的博客 二.小白菜的闯关 1.查看系统文件内容 2.查看php源代码 3.爆破开放端口 三. ...

  6. pikachu XSS Cross-Site Scripting(皮卡丘漏洞平台通关系列)

    目录 一.听pikachu介绍xss 二.羞耻又走心的推荐 三.比较EASY的闯关 第1关 反射型xss(get) 1.阳关道 2.独木桥 3.第三种方法 第2关 反射型xss(post) 第3关 存 ...

  7. pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)

    这关也几乎是一步就能搞定 1.轻松过关 进入本关看到下图的页面,点击球员名字可以下载头像图片 点击之后直接下载了,没有页面跳转,地址栏的url没有变化 右键 查看网页源代码 通过球员名称快速定位到相关 ...

  8. pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)

    目录 一.client check 客户端验证 1.现象 2.绕过姿势 方法一.浏览器禁用javascript 方法二.burpsuite抓包改后缀 3.问题分析 二.MIME type 1.现象 2 ...

  9. pikachu 暴力破解 Brute Force(皮卡丘漏洞平台通关系列)

    目录 一.官方概述 二.小白菜的通关 第一关  基于表单的暴力破解 第二关  验证码绕过(on server) 1.绕过步骤 2.一点思考 第三关  验证码绕过(on client) 1.绕过步骤 2 ...

最新文章

  1. Android内核开发必备知识
  2. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY1-绪论
  3. spring boot+mybatis-plus+SQL server调用有返回值的存储过程
  4. poj 2769 感觉♂良好 (单调栈)
  5. php 获取文件扩展名的方法,PHP获取文件扩展名的4种方法,_PHP教程
  6. DISCUZ 嵌入点 输出插件模版内容
  7. C语言填空题10道,3道C语言填空题,谁帮忙做下,谢谢
  8. Java之volatile
  9. BZOJ4360 : achievement
  10. 软件测试——软件测试的实质
  11. 用DropDownList做的日期
  12. 设计模式-模板方法模式-以简历模板为例
  13. SSH配置-使用Bitvise SSH Client工具在Windows下远程登陆Linux服务器
  14. 横向移动-WINRM
  15. java调用商汤摄像头会推_​商汤科技推出人像识别SDK软件,可赋能安防摄像机等产品...
  16. Python 二进制数与十进制数转换表的制作
  17. Web 开发中地图使用——高德地图定位功能
  18. STM32系统时钟详解
  19. 淘宝店铺宝贝转化率该如何提升
  20. 棋牌算法——“贰柒拾”(字牌)

热门文章

  1. npm 版本更新指令
  2. 零基础入门C 语言如何实现面向对象编程
  3. 大计基编程题(第十一周)
  4. 政府信息化需求开启 OA办公系统平台化时代
  5. 详解eclipse如何配置tomcat
  6. Django-数据库使用
  7. RabbitMQ双节点集群搭建
  8. 什么是集合?集合的相关知识
  9. 台式计算机如何取消屏幕密码,电脑屏幕密码如何取消
  10. Ubuntu下查看显卡型号及NVIDIA驱动版本