HAwebsso.nl未受保护API端点泄露1.5万医生凭证数据

未受保护的API端点导致HAwebsso.nl泄露1.5万医生用户名和密码哈希

背景

我白天是全科医生,晚上是安全研究员。在道德黑客领域,我的目标之一是尽可能多地学习,以便能够审计医疗保健产品、应用程序、网站或基础设施的安全性。

今天我们将关注荷兰全科医生协会(NHG)和荷兰全科医生联盟(LHV)的安全性。这些是荷兰全科医生的专业组织。NHG为全科医生制定标准并提供教育和培训,而LHV代表全科医生的利益,致力于提高初级保健的质量和可及性。

侦察从何处开始?

NHG和LHV都有许多在线应用程序供医生登录和交互。例如HAweb.nl(医生在线社区)和richtlijnen.nhg.org(允许医生在专业指南中添加个人笔记)。

大多数LHV和NHG应用程序共享使用hawebsso.nl域的单点登录(SSO)身份验证方法。

SSO系统分析

SSO是一种身份验证方法,允许用户使用一组登录凭据访问多个应用程序和服务。好消息是,如果我们入侵SSO,就能访问所有系统。坏消息是,大多数使用的SSO系统都是经过严格测试的软件。

登录页面引用了名为admin.js的JavaScript文件。

Admin.js分析

登录页面加载不同的JavaScript文件,其中一个加载的文件引起了我的注意:admin.js。

admin.js文件中的部分源代码:

$scope.GetAdmin = function () {
    return $http({
        method: 'GET',
        url: '/api/v1/user/admin',
    }).then(function (response) {
        $scope.adminUser = response.data;
        // ... 角色权限处理代码
    });
};

有一个管理员可以访问的端点,返回用户的不同角色。奇怪的是这段代码被分享在主登录屏幕上。

漏洞发现

作为拥有SSO登录的全科医生之一,我可以登录并访问该端点。

该端点没有正确检查请求者身份,返回了所有用户信息,包括电子邮件、全名、密码哈希和一些会员详细信息。

如果我们访问相同的端点并将/admin替换为ID(比如15000):https://hawebsso.nl/api/v1/user/15000

用户ID 15000存在,所有账户详细信息都与我们共享,包括密码。

我们现在展示了这个端点的影响,它泄露了注册在SSO服务hawebsso.nl中的所有用户详细信息。

在技术术语中,我们称这种错误为IDOR(不安全的直接对象引用)。

无需身份验证

在浏览器的隐身模式下打开相同的端点。没有设置cookies,我没有登录。所有用户详细信息都被返回。

答案是肯定的。此端点不需要任何登录。在技术术语中,我们现在有另一个错误,关键功能缺少身份验证。

密码哈希分析

现在我们有了密码的哈希值。使用密码哈希减少了数据泄露的影响,因为必须首先破解哈希才能检索密码。

通过将我的密码更改为相同的密码,我可以确认生成了新的唯一哈希。这给了我们一个线索,彩虹表在这里可能不起作用(例如,如果它们为每个用户包含唯一的盐)。

经过一段时间的黑客攻击,您可以通过查看它来识别大多数哈希类型,就像皮肤病一样。

但是在这里我现在不知道使用了哪种哈希算法。知道ASP在服务器上运行,我们可能会从Microsoft提供的文档中获得更多线索。

ASP.NET Core Identity版本3:PBKDF2 with HMAC-SHA256,128位盐,256位子密钥,10000次迭代

这给了我一个提示,ASP开箱即用地使用了适当的哈希算法,这是我目前无法轻易破解的。

结论

我们发现了一个数据泄露,泄露了荷兰全科医生使用的所有电子邮件和密码哈希。这个端点未受保护,不需要任何授权。由于它是一个通用路径,黑客可以轻松猜到。

讨论

LHV在其网站上发布了负责任的披露政策,允许我进行这项研究。

防止此类数据泄露的良好保护是双因素认证(2FA),HAwebsso.nl支持此功能,但默认未激活。我的建议是激活它,以便在密码泄露时使攻击者更难访问您的账户。

如何避免此类错误?

这个错误存在了约3年,所以有很长时间可以发现它。

有不同方法来解决这个问题。一种是在管理层面上:获得认证并采用行业标准。

另一种方法是执行定期渗透测试:聘请公司并要求他们入侵您。

威胁建模:我是INCLUDESNODIRT.com方法的忠实粉丝;聚集一群人(即开发人员、道德黑客、全科医生、产品所有者和隐私官),填写问卷并 brainstorming 20分钟。

时间线

  • 2022年12月4日 — 发现错误,通过电子邮件向LHV隐私官报告
  • 2022年12月5日 — 隐私官回复确认错误
  • 2022年12月6日 — 隐私官更新
  • 2022年12月8日 — 隐私官更新:错误存在3年(自2019年底以来),过去2年的日志中没有滥用迹象
  • 2022年12月11日 — 撰写此博客
  • 2022年12月12日 — 通过电子邮件将博客草稿发送给隐私官
  • 2022年12月12日 — LHV和NHG通过电子邮件通知所有会员数据泄露;要求会员重置密码
  • 2022年12月13日 — LHV建议一些微小更改
  • 2022年12月14日 — 发布博客
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

posted @ 2025-11-06 09:24  qife  阅读(6)  评论(0)    收藏  举报