天天看點

未授權通路的缺陷原理的一種可能性

  好久沒寫文章了,水一篇。

    我們挖掘漏洞有時候發現改參數就導緻未授權跳步驟了。

    比如修改密碼 step=1 step=2 step=3 step=4

    我們可以直接step=3/4直接修改使用者密碼

    比如簽約金融合同等,未認證使用者可以未授權簽約或者是垂直越權如userId=1111111 ->userId=1 管理者賬号

    導緻這些問題的一個原因:

     

$action = $_GET['do'];
$r=$db->query("select role".((int)$action)." from users where id=".((int)$_SESSION['user_id']));
if($row=$r->fetchArray()){
        if((int)$row[0]!==1){
                die('permission denied');
        }else{
                doAction($action);
        }
}      

  表結構

  role0  text

  role1 manager

  role2 admin  

  不能sql注入但是可以

  type=1  ->manager

  type=2 ->admin

  簡單記錄下。

繼續閱讀