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