gpt4 book ai didi

javascript - 防止攻击者获取系统的用户名

转载 作者:行者123 更新时间:2023-11-29 10:08:37 25 4
gpt4 key购买 nike

我们在忘记密码页面上有一个安全问题被标记为:

ISS-0003938 Web Inspect Open Medium Suspicious Files Found in Recursive Directory ****** Remove any unnecessary pages from the web server If any files are necessary restrict access to those that are not supposed to be publicly accessible Remove any backup files and temporary files that were on the server for development testing Please remove backup files alternative login files, files that contain functionality that are depreciated and any short cut files that developers use.

被标记的文件是/js/pmailer_minimal.js,因为.js文件中有如下内容。

url: URL + '/login/forgot-password/request/'+ username,

通过使用该信息,攻击者随后能够开始枚举用户名,直到他们从响应中获得成功消息。

这个问题的最佳解决方案是什么?我们会改变我们的 react 吗?我们是否限制重试次数?还有哪些其他解决方案?

还应该考虑的是,如果攻击者拥有用户名,他就可以尝试暴力攻击。

我正在寻找尽可能多的建议来解决这个威胁。

最佳答案

我将为此添加渗透测试人员的观点。

获取公司人员名单非常容易。只需谷歌 LinkedIn 等。我什至有一些潜在的密码(密码转储、愚蠢的密码,如 Pa$$w0rd、公司名称或其他常见模式)。

问题是将这些应用于公开的随机网络应用程序。用户名格式是 first.lastname、email、firstinitiallastname 还是其他格式。我将采用这些并尝试使用一些潜在密码的所有用户。目标是获得一次有效登录。然后就可以很容易地从应用本身中提取真实用户的完整列表。

在登录页面上给出一个通用的答案确实让我们的努力受挫。如果我可以获得正确的用户名,我最多可以为每个用户尝试大约 24 个密码(每个用户每小时一个密码,以尝试避免锁定)。在尝试一天后我没有成功登录的组织并不多。

如果我不能确定用户名是否正确,那么我必须为每个可能的密码尝试用户名的每个组合。因此,我可能只能为每个潜在用户尝试 3-4 个密码,否则会变得太费力。因此,除非用户选择非常愚蠢的密码,否则我可能不会进入该应用程序。

有时您可以根据应用程序的其他部分检查用户名,尤其是密码重置功能。对于抽查很有用,但不是暴力破解,因为它通常会向用户发送电子邮件,并且可能会锁定帐户,直到密码被重置。太多这些通常会提醒 IT 发生了某些事情。

就像其他人提到的那样,我将把它列为一个漏洞。如果我开始使用它,它就会出现在报告中。如果没有,我会告诉 IT 人员,但将其排除在报告之外。试图找到任何东西添加到报告中的较小的渗透测试者确实会将其标记为关键并将其夸大。

我通常推荐的解决方案是为失败登录总数添加一个阈值。锁定在每个用户的基础上效果很好,因此在一段时间内登录失败很多。为尝试对所有用户输入密码的人添加其他内容,例如在一段时间内 XX 唯一失败的用户登录。总会有一些基本的噪音,但暴力攻击很快就会变得非常明显。

关于javascript - 防止攻击者获取系统的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38219263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com