网站APP越权漏洞检测的一些常用办法分享




      网络上,大家经常可以看到数据库被脱裤、用户信息泄露等由于安全漏洞引发的问题,给用

户和企业都带来了很大的损失。由于公司业务发展迅速,功能不断增加,用户数量不断增加,

安全问题日益受到人们的关注。业务部门和安全部门在实践安全测试时开展合作,早期测试人

员和安全同学通过手工执行安全测试用例来发现问题,随后慢慢地也开始使用一些安全工具,

通过自动化的方式来提高发现问题的效率。同时,我们还关注了与业务密切相关的一个安全

问题——界面越权问题,并试图通过自动扫描来发现此类问题,从而提高效率。越权问题是

指应用程序对访问请求的权限检查出现漏洞,使攻击者在使用了未获得权限的用户帐户之后

,以某种方式绕过权限检查,以访问或操作其他用户或更高权限者的对象。例如商店A可以

查看商店B的营业数据(水平越权),商店C的客户服务人员可以像商店C的店长一样进行采购

(垂直越权)。造成越权漏洞的原因主要是开发人员在对数据进行增、删、改、查询时,没有

对请求者是否具有权限进行验证。
 
 
之所以选择这类安全问题作为关注对象,有三个原因:
 
 
本人所在的业务线外部网关接口有2000多个,手工测试成本较高,希望通过一些自动化的

方法来提高效率。目前市面上的开源软件对于诸如SQL注入、XSS跨站脚本、端口暴露等

常见的安全问题已经有了较为成熟的解决方案,但很少能针对越权问题提出有效的解决方

案。这是因为账户权限体系如何,被请求访问的对象是否为私有,返回的结果是否包含越

权信息,这三个关键因素与业务密切相关,普通方法很难回答这三个问题。而且,业务部

门的研发人员对业务知识有了一定的了解,或许就能有针对性地回答这三个问题,从而自

动找到越权问题。
 
 
越早发现和解决安全问题,修复和回归的成本就越低,因此希望在早期研究与开发阶段就

能发现问题。
大多数自动化测试工具都是对手工测试的归纳总结,在此,我们首先来梳理

一下手工执行越权测试的方法。


 
若您手动测试界面是否越权,则可能采取以下步骤:

 
在页面上使用普通帐户操作请求,如登陆店铺A的员工帐户,查询订单1,获取查询订单1

的请求界面名称、参数,以及返回新的帐户,如登陆店铺B的员工帐户,调用同一次请求

,再次查询订单1(也可以直接用工具篡改原来请求的cookie来替换原来请求的cookie),然

后观察此时返回的信息是否越权。如商店B的员工也获得了订单1的信息,则存在越权问

题;如报错没有权限,则说明系统有针对性地进行了权限检查。
分享: