目录
权限类逻辑漏洞
平行权限跨越
基于用户身份ID
基于对象ID
基于文件名
垂直权限跨越
未经授权访问
权限类逻辑漏洞
越权漏洞又分为平行越权,垂直越权和交叉越权。 平行越权:权限类型不变,权限ID改变
,垂直越权:权限 ID 不变,权限类型改变,交叉越权:即改变 ID,也改变权限
平行权限跨越
水平越权指的是攻击者尝试访问与他拥有相同权限的用户的资源,怎么理解呢?
比如某系统中有个人资料这个功能,A账号和B账号都可以访问这个功能,但是A账号的个人信息和B账号的个人信息不同 。
可以理解为A账号和B账号个人资料这个功能上具备水平权限的划分。此时,A账号通过攻击手段访问了B账号的个人资料,这就是水平
越权漏洞。
系统中所有具备水平权限划分的功能,都存在水平越权的风险,以下是常出现的水平越权的功能的几种场景:
基于用户身份ID
在使用某个功能时通过用户提交的身份ID(用户ID、账号、手机号、证件号等用户唯一标识)来访问或操作对应的数据。
举个栗子:①某航空公司存在水平越权漏洞,提交订单后抓取数据包。
②可以发现请求中有蛮多ID信息,通常情况下,我们一般会挨个测试,是否存在越权漏洞,其中passenger1d1是乘机人,contactId是联系人。
③经测试可发现,我们修改这两个参数后,可查看到其他乘机人的身份证及联系人信息。
基于对象ID
在使用某个功能时通过用户提交的对象ID(如订单号、记录号)来访问或操作对应的数据。
举个栗子:①某系统存在水平越权漏洞。
②抓取订单提交的数据包,发现有一个oid很可疑
③尝试进行测试发现,可遍历订单号,查看他人待付款订单信息。
基于文件名
在使用某个功能时通过文件名直接访问文件,最常见于用户上传文件的场景。
举个栗子:①某系统存在水平越权漏洞。
②遍历fileid可以下载到数十万的资质文件: http://**.**.**.**/sFile-image.action?fileid=9316
垂直权限跨越
垂直越权指的是一个低级别攻击者尝试访问高级别用户的资源。比如说某个系统分为普通用户和管理员,管理员有系统管理功能,而普通用户没有,那我们就可以理解管理功能具备垂直权限划分,如果普通用户能利用某种攻击手段访问到管理功能,那我们就称之为垂直越
权。
①某站点后台仅使用js跳转来限制未授权的用户访问。
②删掉前端的js代码可以成功访问后台,且可以进行操作。
未经授权访问:
举个栗子:①使用default用户名和密码:useradmin / admin!@#$%^登录系统。
②成功登录后台。
③依次点击“对象管理——>用户管理——>编辑‘useradmin’——>得到URL:*.*.*.*/cgi-bin/webif/Objset-users.sh?edituser=edituser&id=5
④修改参数id为:id=4,成功垂直越权telecomadmin。
⑤查看源码,可读取telecomadmin密码:telecomadmin34224223,至此已获得最高管理员权限
权限框架缺陷
权限控制框架是实现权限控制功能的基础,如果权限控制框架本身存在缺陷容易被攻陷会导致权限控制功能完全失效。
在cookie中使用简单的权限标识来标记用户的权限等级或使用用户请求参数中所带的简单用户ID来控制用户权限,是典型的权限框架缺陷。
①某系统存在弱口令:guest、guest,访问http://**.**.**.**/nbr.htm,然后登进去 只能看到系统首页和流量监控。
②然后用cookie修改工具,先登录guest账号。
③然后修改cookie信息,user=guest 改成user=admin 重要的是需要后面删掉分号。
④然后刷新。获取admin权限