两种越权类型

越权漏洞案例演示

水平越权

  1. 登录成功后点击查看信息,发现url中携带username=XXX的明文参数

    http://lzctf.thecat.top/vul/overpermission/op1/op1_mem.php?username=lucy&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF

  1. 将username=XXX改为我们需要查询的用户名,即可越权查看该用户的信息。

代码分析

if(isset($_GET['submit']) && $_GET['username']!=null){
    //没有使用session来校验,而是使用的传进来的值,权限校验出现问题,这里应该跟登录态关系进行绑定
    $username=escape($link, $_GET['username']);
    $query="select * from member where username='$username'";

前端传入的值没有进行处理,直接带入数据库查询。

锤子越权

  1. 先登录到admin管理员界面,抓取添加用户的数据包。

  1. 登录普通用户账户,将管理员添加用户数据包中的cookie值换成普通用户登陆状态下的

  1. 成功

代码分析

$link=connect();
// 判断是否登录,没有登录不能访问
//这里只是验证了登录状态,并没有验证级别,所以存在越权问题。
if(!check_op2_login($link)){
    header("location:op2_login.php");
    exit();
}
最后修改:2020 年 11 月 06 日 04 : 31 PM