未授权访问的缺陷原理的一种可能性
好久没写文章了,水一篇。
我们挖掘漏洞有时候发现改参数就导致未授权跳步骤了。
比如修改密码 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
简单记录下。