关于流量获取,首先要考虑的是环境问题:在哪个环境中获得请求,然后返回到哪个环境中。
由于水平越权地访问写入接口可能会导致脏数据,因此整个扫描环境都选择在测试环境中。选
择测试环境的另一个好处是,您可以提前发现测试中尚未上线的界面存在的安全问题,直接在
项目测试过程中进行修复和回归验证,从而最大限度降低修复成本和推进难度。
接下来,通过抽样和过滤后,将获得的请求重新组装以重放。重新播放时,至少需要准备一个
无权限帐户和一个有权限帐户。在零售业务场景中,横向越权主要是指跨店横向越权。例如有
两个商店A和B,每个商店都有店员和主管角色,如果商店A的主管能够访问商店B主管能够访
问的敏感信息,那么就存在水平越权;如果商店A的主管能够操作只有商店A主管才能操作的
功能,那么就存在垂直越权。因此,对于垂直越权,为同一店铺中不同角色准备账户,以模
拟有权限和无权限访问的情况。而且对于级别越权,有权限的账户可以在原始请求中获取账
户信息,而无权限的账户可以在新的账户中单独设置账户。
无权限帐户和一个有权限帐户。在零售业务场景中,横向越权主要是指跨店横向越权。例如有
两个商店A和B,每个商店都有店员和主管角色,如果商店A的主管能够访问商店B主管能够访
问的敏感信息,那么就存在水平越权;如果商店A的主管能够操作只有商店A主管才能操作的
功能,那么就存在垂直越权。因此,对于垂直越权,为同一店铺中不同角色准备账户,以模
拟有权限和无权限访问的情况。而且对于级别越权,有权限的账户可以在原始请求中获取账
户信息,而无权限的账户可以在新的账户中单独设置账户。
最终,获得对应的返回结果,根据对应的检查类型采取不同的检查方法。纵向越权主要看接
口是否配置了权限,权限检查是否生效。横向越权比较复杂,需要根据界面参数中的对象访
问、界面操作行为等多个特征综合判断。
口是否配置了权限,权限检查是否生效。横向越权比较复杂,需要根据界面参数中的对象访
问、界面操作行为等多个特征综合判断。
核心算法设计,在界面越权扫描平台中,能够发现越权问题的最基本逻辑是:有权限的人获
取对象信息,无权限的人获取对象信息,从两者的回溯上可以看出区别。主要算法逻辑是围
绕这一基本判断标准,努力提高越权问题的发现效率,并减少错误报文。我们应该让代码在
尽可能多的时间内识别被访问对象,同时能够理解返回的对象信息,识别越权。怎样实现这
一目标,既困难又具有挑战性:从请求中可以获得的信息很少,但返回的结果却千差万别,
判断越权时常常要借助于一些额外的信息,对于越权的处理没有标准化,特别是在水平越权
中,这一现象更为严重:有些代码对越权进行了单独的检查,有些则通过关联查询数据进行
保护,而在返回的性能方面则有所不同。大量的额外工作是确定各种不规范的回车。因此,
这个部分需要不断的观察分析和优化。
取对象信息,无权限的人获取对象信息,从两者的回溯上可以看出区别。主要算法逻辑是围
绕这一基本判断标准,努力提高越权问题的发现效率,并减少错误报文。我们应该让代码在
尽可能多的时间内识别被访问对象,同时能够理解返回的对象信息,识别越权。怎样实现这
一目标,既困难又具有挑战性:从请求中可以获得的信息很少,但返回的结果却千差万别,
判断越权时常常要借助于一些额外的信息,对于越权的处理没有标准化,特别是在水平越权
中,这一现象更为严重:有些代码对越权进行了单独的检查,有些则通过关联查询数据进行
保护,而在返回的性能方面则有所不同。大量的额外工作是确定各种不规范的回车。因此,
这个部分需要不断的观察分析和优化。