越权漏洞测试之网站渗透测试服务
网络上,大家经常可以看到数据库被脱裤、用户信息泄露等由于安全漏洞引发的问题,给用户和企业都带来了很大的损失。由于公司业务发展迅速,功能不断增加,用户数量不断增加,安全问题日益受到人们的关注。业务部门和安全部门在实践安全测试时开展合作,早期测试人员和安全同学通过手工执行安全测试用例来发现问题,随后慢慢地也开始使用一些安全工具,通过自动化的方式来提高发现问题的效率。同时,我们还关注了与业务密切相关的一个安全问题——界面越权问题,并试图通过自动扫描来发现此类问题,从而提高效率。越权问题是指应用程序对访问请求的权限检查出现漏洞,使攻击者在使用了未获得权限的用户账户之后,以某种方式绕过权限检查,以访问或操作其他用户或更高权限者的对象。例如商店A可以查看商店B的营业数据(水平越权),商店C的客户服务人员可以像商店C的店长一样进行采购(垂直越权)。造成越权漏洞的原因主要是开发人员在对数据进行增、删、改、查询时,没有对请求者是否具有权限进行验证。
之所以选择这类安全问题作为关注对象,有三个原因:本人所在的业务线外部网关接口有2000多个,手工测试成本较高,希望通过一些自动化的方法来提高效率。目前市面上的开源软件对于诸如SQL注入、XSS跨站脚本、端口暴露等常见的安全问题已经有了较为成熟的解决方案,但很少能针对越权问题提出有效的解决方案。这是因为账户权限体系如何,被请求访问的对象是否为私有,返回的结果是否包含越权信息,这三个关键因素与业务密切相关,普通方法很难回答这三个问题。而且,业务部门的研发人员对业务知识有了一定的了解,或许就能有针对性地回答这三个问题,从而自动找到越权问题。
越早发现和解决安全问题,修复和回归的成本就越低,因此希望在早期研究与开发阶段就能发现问题。大多数自动化测试工具都是对手工测试的归纳总结,在此,我们首先来梳理一下手工执行越权测试的方法。若您手动测试界面是否越权,则可能采取以下步骤:
在页面上使用普通帐户操作请求,如登陆店铺A的员工帐户,查询订单1,获取查询订单1的请求界面名称、参数,以及返回新的帐户,如登陆店铺B的员工帐户,调用同一次请求,再次查询订单1(也可以直接用工具篡改原来请求的cookie来替换原来请求的cookie),然后观察此时返回的信息是否越权。如商店B的员工也获得了订单1的信息,则存在越权问题;如报错没有权限,则说明系统有针对性地进行了权限检查。越权漏洞只能是通过渗透测试服务来手动检测才能检测出问题来,如果想要进行更详细的安全测试的话推荐国内网站安全公司SINESAFE,鹰盾安全,绿盟,大树安全等等这些安全公司来做详细的渗透测试服务。