水平越权与垂直越权

越权漏洞

  越权访问(Broken Access Control,简称BAC)是Web应用程序中一种常见的漏洞,由于其存在范围广、危害大,被OWASP列为Web应用十大安全隐患的第二名。

  该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。其与未授权访问有一定差别,目前存在着两种越权操作类型,横向越权操作(水平越权)和纵向越权操作(垂直越权)。

概念问题 

水平越权:指相同权限下不同的用户可以互相访问

垂直越权:指使用权限低的用户可以访问到权限较高的用户

水平越权测试方法:主要通过看看能否通过A用户操作影响到B用户

垂直越权测试思路:看看低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能。

越权测试过程

把握住传参就能把握住逻辑漏洞的命脉

越权测试:

登录用户A时,正常更改或者是查看A的用户信息,然后抓取数据包,将传参ID修改为其他用户,如果成功查看或者修改了同权限其他用户信息就属于水平越权测试(如果可以影响到高权限用户就是垂直越权)

传参ID需要自己检测(例如:uid= id= user=等)通常使用burp进行爆破传参(传参可能在get post cookie)

常见平行越权:

例如:

不需要输入原密码的修改密码

抓包改用户名或者用户id修改他人密码

修改资料的时候修改用户id

查看订单的时候,遍历订单id

常见越权漏洞

1.通过修改get传参来进行越权:

http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2016-0205340

2.通过修改post传参来进行越权:

http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2016-0207583

3.通过cookie传参来进行越权

https://www.uedbox.com/post/12566/

抓取参数可以在浏览器、app、应用程序(exe)

 4.未授权访问

未授权访问,严格意义上这个不属于越权漏洞,但是在日常测试中常常会遇见。即只要输入正确的网址就可以访问,例如admin默认是登录,登录后跳转到user.php,然后你直接访问user.php,发现你直接有后台的权限。

未授权访问产生的原因是因为开发在后台代码中没有验证用户状态(是否已经登录,例如可以通过isset($_SESSION['username'])来判断用户是否是登录状态)

http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2016-0189174

防范措施

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

参考链接

https://blog.csdn.net/weixin_43415644/article/details/104376764

https://blog.csdn.net/u012068483/article/details/89553797

原文地址:https://www.cnblogs.com/dummersoul/p/13475010.html