最后更新于2024年1月3日(星期三)21:05:00 GMT

在Rapid7,我们喜欢一个好的渗透测试故事. 所以他们经常表现出聪明, skill, 弹性, 对客户安全的奉献只能来自于积极尝试打破它! 在本系列中, 我们将分享一些来自渗透测试台的我们最喜欢的故事,并希望强调一些您可以提高自己组织的安全性的方法.

Rapid7的任务是测试医疗保健行业的供应商网站. 供应商可以在网站上申请工作, 管理考勤卡, 与需要医院帮助的雇主联系, 申请合同, 以及管理履行职责所需的证书和文件. 提供商网站很想知道他们的web应用程序是否有任何可以被攻击者利用的缺陷, 因为应用程序是高度定制的.

我从测试输入字段的漏洞开始. 如果输入字段没有正确地对用户输入进行消毒,这可能会打开web应用程序,使攻击者能够注入代码. 然后,带有注入代码的易受攻击的表单可以用来攻击web应用程序或目标用户. 输入字段可以是允许您在web应用程序中输入信息的任何内容, 比如你的名字或电子邮件地址. 我发现一个字段在提交时没有正确地对输入进行消毒, 是否由具有管理权限的帐户查看.

利用从脆弱字段获得的杠杆作用,我能够执行跨站点脚本(XSS)攻击,该攻击以易受攻击的形式存储JavaScript并将JavaScript返回给用户. 当用户查看带有注入代码的易受攻击表单时, 代码在受害者的浏览器中执行. 创建了一个XSS有效负载, 当被用户查看时, 向我们控制下的服务器发送刷新令牌. 这使我们能够收集查看易受攻击表单的帐户的管理令牌, 导致帐户被接管. 我还发现刷新令牌配置错误,一旦获得就允许对web应用程序进行无限期访问. 有了上述刷新令牌,即使密码更改了,我也可以无限期地登录该帐户.

然后,我将注意力转向web应用程序上的授权问题. 作为一个非特权用户,我发现了一个仪表板,它允许提供商查看即将过期的文档. 该请求容易受到对象级授权破坏和不安全的直接对象引用(IDOR)的攻击。. 因此,我能够操纵请求,以访问所有在web应用程序上拥有帐户的最终用户的所有上传文档的流. 这些文档包括上传到应用程序的所有医疗保健文档,包括背景调查, 社会保障信息, 地址, 医生的文件, 和更多的.

对应用程序的进一步分析表明,非特权用户可以访问由管理用户使用的呼叫. 这些呼叫泄露了敏感信息,包括应用程序上与合同医院相关的供应商和员工的用户名和密码. 作为非特权用户帐户, 我将此授权问题与IDOR漏洞结合起来,从易受攻击的端点抓取了超过15年的用户名和密码,000个账户分分钟计算.

追逐一种预感,认为会有更多的错误配置可供利用, 我发现申请多个医院职位的候选人在web应用程序的管理部分存储了明文的社会安全号码. 使用API端点来检索信息,并且该端点容易受到IDOR的攻击. 我执行了暴力攻击,从存储在应用程序中的数百个帐户中检索姓名和明文社会安全号码.

这个测试突出了大量web应用程序中存在的一些问题. 我们演示了攻击者从没有适当保护的应用程序中窃取敏感数据的速度有多快. 我们还演示了确保在应用程序中正确处理用户输入的重要性,以及如果不能正确处理用户和公司将面临的风险. 确保用户被隔离并适当地实现授权是在医疗保健行业中运营时要考虑的另一个主要因素, 因为在处理受保护的健康信息和个人身份信息时,保护客户数据至关重要.


客户端对测试应用程序安全性的结果感到震惊. 该测试披露了一些严重的漏洞,这些漏洞是其他安全供应商在过去的测试中没有发现的, 强调持续测试的重要性,特别是对于不断发展的定制应用程序.