您的当前位置:首页Web业务安全测试方法(1)—越权测试

Web业务安全测试方法(1)—越权测试

2024-12-13 来源:哗拓教育

来这家公司快四个月了,现在对这四个月的工作做一个总结。挖过越权漏洞、低价买服务漏洞、未鉴权的接口、CSRF漏洞、软件升级未做校验、组件暴露等漏洞,主要是业务方面的。下面我首先针对越权漏洞说下测试方法:

1. 越权漏洞

1.1 首先说先越权漏洞的分类:

  • 水平越权:A用户与B用户的级别权限是一样的,但A用户能够去查看B用户的敏感信息,或进行其它恶意操作。
  • 垂直越权:A用户提升了自己的权限,譬如:A用户是普通员工股,C用户是经理,经理能看到所有人的工资,但A不能,垂直越权后A用户就有C用户的权限了。

1.2 什么地方容易出现越权呢?记住以下重点:

  • 用户除了身份(会话ID)标识外,站点还用其它信息(手机号、员工编码、工号或者使用Hash算法生成的)用来标识用户或用户信息。

大家可能对用户信息又疑问,下面我举例来说明用户信息:譬如A用户的订单号是唯一的,B用户删除自己的订单时,把自己的订单号改为A的,如果有越权漏洞,那么B用户就删除了A用户的订单。

1.3 越权实例

1.3.1 水平越权—

删除用户的数据包

从数据包中,我们可以看到addr_id是唯一标识用户地址的,服务器并没有去做判断用户是否有权限操作,导致了越权漏洞。诸如此类的还有保单信息、医疗保险等信息。这种改id号的最为初级的,也是最容易发现的越权漏洞。下面来看个进阶版。

1.3.2 垂直越权

测试环境:

  • A用户的操作界面没有审批接口
  • C经理或管理员界面有审批接口
    那么只要爬取到经理或管理员的接口,使用自己的身份标识去调用此接口,后台如果没有做权限判断,那么必定有此漏洞。

1.3.3 进阶版越权

一次测试过程中,发现获取用户信息的时候要提交自己的用户名,假设是XML文件:

<username>A_user</username>

我尝试改为

<username>B_user</username>

发现没有权限获取信息。怎么办呢?想到XML文件解析时,可能解析所有的节点,那么我同时提交两者的用户名:

<username>A_user</username>
<username>B_user</username>

即可得到B用户的信息。

1.4 修复越权漏洞方法:

  • 用户进行操作时一定要判断其是否有权限
显示全文