秘密 GET 请求可以被暴力破解吗?

信息安全 蛮力 网址 物理访问 路径注入
2021-08-19 03:45:49

比如说,我的服务器上有一个我想保密的页面或文件夹。

example.com/fdsafdsafdsfdsfdsafdrewrew.html

或者

 example.com/fdsafdsafdsfdsfdsafdrewrewaa34532543432/admin/index.html

如果路径的秘密部分很长,我是否可以假设拥有这样一个秘密页面或区域是安全的,并且很难猜测或暴力破解?

这种方法一般有什么问题?

请注意,我不是在问如何正确地做到这一点,而是这种方法的问题可能是什么,如果有的话。

4个回答

您实际上是在询问在 GET 请求中传递秘密参数是否安全。这实际上被归类为漏洞暴力破解足够长的伪随机字符串是不可行的,假设服务器在指定无效路径时仅返回静态 404 响应,但在实践中存在许多其他安全问题,使其成为一种危险的技术:

  • 日志软件通常以纯文本形式记录 GET 请求,而不是 POST。

  • 在处理活动内容时,使用 GET 使CSRF变得微不足道

  • 引用标头可能会将秘密值泄露给其他网站。

  • 浏览器历史记录将保留在 GET 请求中传递的秘密。

你的第二个例子/admin/在里面。这对我来说意味着仅此路径的知识就足以在管理员上下文中对服务器进行身份验证。这是非常不安全的,不应该再做/?password=hunter2一个主要的网络安全失礼

相反,秘密应该在 POST 请求中发送。如果这是不可能的,或者如果您的威胁模型专门用于防止 URL 的暴力破解(例如,在使用后立即失效的密码重置链接),那么如果小心操作,它应该是安全的。我不知道有任何旁道攻击会提供一种比蛮力更快地获取字符串的方法。

* 避免参数化的 GET 请求并不能防止 CSRF 攻击,这是一个常见的误解,因为有多种方式可以类似地滥用 POST(假表单等),但在 GET 中传递秘密确实使 CSRF 更容易。

这是一种共享公共事物的常用方法,仅限于知道 URL 的人。一个例子是谷歌文档:

在此处输入图像描述

第二个选项“知道链接的任何人”会创建一个与您的链接相似的链接。谷歌照片、Dropbox、...

  • 优点是内容的传播受到一定限制。
  • 缺点是这在某种程度上取决于您与谁共享链接,发布位置等。

您应该考虑的一件事是可以轻松地使其无效(通过更改/重新生成指向您的数据的链接)

馊主意。很多次,我看到一个“秘密”URL 很快就获得了搜索引擎爬虫的点击率,然后可以通过网络搜索发现。有一次我什至看到有人在他的域的子文件夹中设置了一个信誉良好的网站的副本,并与一个人共享,很快他就收到了一封电子邮件通知,警告他他的域可能已因网络钓鱼目的而遭到入侵。

这怎么发生的?在后一种情况下,Web 浏览器具有内置的反网络钓鱼功能,可将访问过的 URL 发送到欺诈检测服务。在其他情况下,浏览器可能正在收集浏览数据并将其发送到搜索引擎以收集用户习惯。

如果您这样做,请确保您的 robots.txt(或标题/元标记)设置为告诉搜索引擎不要索引内容。

互联网是一种将世界拉得更近的绝妙方式,但不幸的是,它让每个人都可以永久访问你碰巧喷出的任何东西。

如果路径的秘密部分很长 [...] 将很难猜测或蛮力它?

是的。攻击者必须猜测整个事情才能发现它。由于有很多可能性,这将花费不可行的时间。

这种方法一般有什么问题?

这样做的问题是 URL 不被视为机密,因此它们将存储在浏览器、日志和任何中间代理中。这样,您的“秘密” URL 可能会被暴露。

在处理活动内容时,使用 GET 使 CSRF 变得微不足道。

不可以。在 CSRF 攻击中,攻击者会伪造一个特定的请求。在 URL 中使用秘密时,攻击者甚至不知道伪造请求的正确 URL。这意味着只要 URL 是秘密的,CSRF 是不可能的。