【pikachu渗透靶场&Web安全从入门到放弃】之 越权漏洞

 

 

46.9-2 垂直越权漏洞原理和测试流程案例(Av96582332,P46)

 

 

 

 

if(isset($_GET['submit']) && $_GET['username']!=null){

    //没有使用session来校验,而是使用的传进来的值,权限校验出现问题,这里应该跟登录态关系进行绑定

    $username=escape($link, $_GET['username']);

    $query="select * from member where username='$username'";

    $result=execute($link, $query);

 

水平越权

lucy登陆之后

127.0.0.1:4431/pikachu/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

 

把名字换为kobe,也能查看信息

127.0.0.1:4431/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&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

 

46.9-2 垂直越权漏洞原理和测试流程案例(Av96582332,P46)

 

开bp,关闭拦截

用超级管理员登陆,添加账户,bp找到添加账户的post请求发到repeater

 

超级管理员已经退出登录,重放,会有重定向,检测到没有登陆,要求登录

 

登录普通账户,找到目前登录get请求,记下cookie到phpsessid,把前面的换成这个:普通用户的登录态重放超级管理员的操作(后台没有对权限限制,现实情况比较难,要抓到高级管理员有哪些操作)

重放时也会有重定向,不要跟踪,直接点开看,或者刷新一下,用户被重新添加了

 

 

$link=connect();

// 判断是否登录,没有登录不能访问

//这里只是验证了登录状态,并没有验证级别,所以存在越权问题。

if(!check_op2_login($link)){

    header("location:op2_login.php");

    exit();

}

if(isset($_POST['submit'])){

    if($_POST['username']!=null && $_POST['password']!=null){//用户名密码必填

        $getdata=escape($link, $_POST);//转义

        $query="insert into member(username,pw,sex,phonenum,email,address) values('{$getdata['username']}',md5('{$getdata['password']}'),'{$getdata['sex']}','{$getdata['phonenum']}','{$getdata['email']}','{$getdata['address']}')";

 

 

 

 

 

发布了27 篇原创文章 · 获赞 5 · 访问量 1686

猜你喜欢

转载自blog.csdn.net/vanarrow/article/details/105589127