基于命名约定的漏洞利用

信息安全 已知漏洞
2021-09-01 19:26:24

Web Hacking Exposed 》一书有许多实例,攻击者基本上会使用命名约定中的模式来设计攻击。

任何人都可以指出我对基于“命名约定”的安全/隐私漏洞的任何研究......例如文件名、标识符名称(可能在 javascript 中)、url 参数等?您是否会说,通常此类漏洞(读取漏洞)仅限于 Web 应用程序?

4个回答

主机名揭示了有趣的信息,例如潜在的代码接收器(例如,ldap1.internal.companyname.com 将是 LDAPi,而 db1.internal.companyname.com 将是 SQLi)。这些可以使用host-extract.rb工具提取。

参数揭示了相同类型的信息,甚至可以说出关于查询类型的词语。例如,我经常看到 ASC 或 DESC 被列为参数名称(尤其是在 Web 应用程序中的排序按钮上),这表明 ORDER BY 或 GROUP BY 注入类型。有时参数名称是 sortby、groupby 或 sortorder 或简单的“order”或“group”。这些很能说明问题。

此外,有些被称为“limit”或“offset”,表示 SQL 查询的 LIMIT 或 OFFSET 部分。Web 应用程序评估员通常假设他或她正在注入 WHERE 子句,但它确实可能在这些其他地方。

一些参数名称给出了其他提示,例如它们是整数还是字符串。

通常,sqlmapMarathonbsqlbf-v2等 SQLi 漏洞利用工具将允许您更具体地配置攻击查询,是的,了解当前参数键和值在测试它们时肯定会有所帮助,尤其是在 SQLi 盲测试期间!

文件名(通过路径披露)更加明显。它们可用于辨别是否在 Web 服务器上安装了流行的开源(或者如果您阅读大量代码,则可能是封闭源代码!)包或组件。您通常可以深入到特定版本。InspathXWhatWeb利用这些技术—— inspathx 来识别路径泄露漏洞和 WhatWeb,好吧,让我们说 WhatWeb 可以做很多事情!

由于我在此答案中提到的工具中约有一半引用了YGN Ethical Hacking Group现任成员制作的工具,因此您应该查看他们的研究领域和实验室(可从他们的主页访问)。

“Hacking Exposed Web Applications, 2nd Edition”的作者(请注意,第三版已经发布,其中提供了额外的最新信息)主要指的是自定义目录/文件暴力破解列表,以及Direct Object引用(即 OWASP T10 强制浏览、OWASP T10 限制 URL 访问失败、OWASP 不安全的直接对象引用或 WASC TC 可预测资源位置)。

换句话说,如果你看到类似的东西,http://owaspbwa/external/你也可以检查是否存在http://owaspbwa/internal/或类似的东西。

可能易受攻击(或启用其他攻击)的另一个方面是用户名的命名约定。
即它使用户收集成为可能,有针对性的攻击更容易,如果您要进行帐户锁定 DoS,那么找到您的目标用户或生成整个用户列表当然更容易。
另一方面,我也看到了相反的情况——一种显示用户私人信息的命名约定。例如,使用某种形式的个人标识符(想想 SSN 或工资单号码)作为用户名的一部分。现在,只要有人看到用户名(在许多组织中,电子邮件地址是基于用户名的),就会显示该详细信息。

如果您正在讨论通过漏洞利用的路径遍历,那么网上有很多资源。路径遍历最常见的情况是在 SQL 注入中(即,如果您正在运行 Apache,我可以根据 linux/unix 操作系统的标准约定猜测您的个人文档在哪里)。

可以在这些网站上找到更多信息(这是来源的冰山一角):
- http://www.acunetix.com/websitesecurity/directory-traversal.htm
- http://www.cgisecurity.com /owasp/html/ch11s03.html

如果您正在查看根据命名方案(例如,主机名)生成的攻击,那将是一个非常具体的应用程序(应用逻辑中的应用程序,而不是可执行文件),并且将取决于组织正在成为目标。

另一方面,如果您谈论的是与恶意应用程序的实际文件名相关的命名约定,那么这是一个有趣的概念。我不确定这种恶意软件检测方法是否真的可行。这并不是因为缺乏技术知识,而是因为恶意软件本质上是为了保持隐蔽性。如果恶意软件实际上被命名为“hacked.exe”,那么我会感到非常惊讶。即使是这种情况,大多数反病毒/反恶意软件应用程序现在采用的基于签名的检测方法仍然应该适用。所以当你真的想捕捉所有矩形时,它相当于定位正方形。

我不知道您到底在寻找什么,所以这是一个很难回答的问题。如果您想了解更多信息,请扩展您的问题。

很难理解您的问题,但我认为 Ormis 的关键问题在于了解物品的位置。

我经常看到的唯一另一个方面是通过将财务服务器命名为“finance001”等,让攻击者的生活变得轻松......

最好不要,嗯:-)

使用命名约定,当然,但要遵循不喊“嘿,在这里——可爱的目标!”的系统。- 默默无闻的安全元素(但仅作为一个有帮助的层,不可依赖)