越权漏洞
越权访问(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传参来进行越权:
2.通过修改post传参来进行越权:
3.通过cookie传参来进行越权
抓取参数可以在浏览器、app、应用程序(exe)
4.未授权访问
未授权访问,严格意义上这个不属于越权漏洞,但是在日常测试中常常会遇见。即只要输入正确的网址就可以访问,例如admin默认是登录,登录后跳转到user.php,然后你直接访问user.php,发现你直接有后台的权限。
未授权访问产生的原因是因为开发在后台代码中没有验证用户状态(是否已经登录,例如可以通过isset($_SESSION['username'])来判断用户是否是登录状态)
参考链接
标签:漏洞,水平,用户,垂直,访问,权限,id,越权
来源: https://www.cnblogs.com/dummersoul/p/13475010.html