逻辑越权——垂直、水平越权

水平越权:通过更换的某个ID之类的身份标识,从而使A账号获取(修改、删除等)B账号数据。 垂直越权:使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作。 未授权访问:通过删除请求中认证信息后重放该请求,依旧可以访问或者完成操作。 垂直越权利用:添加用户 前提条件:获取添加用户的数据包

  1. 普通用户前端有操作页面可以抓取数据包
  2. 通过网站源码本地搭建自己去模拟抓取
  3. 盲猜

原理: 前端安全造成:界面 判断用户等级后,代码界面部分进行可选显示。或只是判断是否登录,并没有验证级别,所以存在越权问题。 后端安全造成:数据库 如果在访问网站数据包中有传输用户的编号、用户组编号或类型编号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。

修复防御方案:

  1. 前后端同时对用户输入信息进行校验,双重验证机制
  2. 调用功能前验证用户是否有权限调用相关功能
  3. 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
  4. 直接对象引用的加密资源id,防止攻击者枚举id,敏感数据特殊化处理
  5. 永远不要相信来自用户的输入,对可控参数进行严格的检查与过滤。

身份认证失效漏洞实战

使用提示账号test登录 通过抓包在URL处发现id值,尝试修改成2012880323,发现登录账号变成daxue

设置后两位变量,进行爆破,范围为1-99 成功爆破出其他账号的用户名和密码 需寻找的马春生的账号密码如下,密码经过md5加密 MD5解密密码:9732343

经验分享 程序员 微信小程序 职场和发展