【发布时间】:2009-10-05 00:40:37
【问题描述】:
一般来说,Web 应用程序可以呈现它喜欢的任何 HTML。因此,理论上,任何语言都可以呈现相同的 HTML 输出。
但是,我们可以通过一些方法尝试推断服务器端正在运行什么。例如,文件扩展名通常是致命的赠品(尽管从技术上讲它们可能是伪造的)。由于我在 ASP.NET 方面的经验,我知道我们可以识别 ASP.NET 应用程序的一种方法是在呈现的文档中存在 VIEWSTATE,尽管缺少视图状态并不一定意味着应用程序不是 在 ASP.NET 上运行
我们可以在服务器上运行一些操作系统/服务器指纹,但总的来说这并没有多大帮助——如今,即使是 Windows 服务器也可以运行相当多的应用程序平台。
还有哪些其他分析技术可以帮助我们确定服务器上运行的内容?某些语言还留下了哪些其他线索?
如果我们能够更好地理解我们的应用程序留下的工件,可能太小以至于我们没有注意到它们,我们可以通过从输出中删除它们来开始提高我们的安全性。
【问题讨论】:
-
这不仅是重复的,我不认为它与编程相关,甚至一般有用。
-
如果你能指出重复的问题,我很乐意结束这个问题。我找不到。
-
我不会投票结束,@JJ,因为它至少与预编程相关,但我很难理解为什么你甚至会关心生成 HTML 的语言/技术。也许你可以启发我们了解它的用处。并不是说你必须证明你的问题是正确的,我只是对可能的应用程序真正感兴趣。
-
刚刚编辑了它。这是一个安全问题。公众对您的应用程序了解得越多,就越容易被利用。例如,如果发现了一个新的 PHP 安全漏洞并且每个人都知道您正在运行 PHP,那么您可能会受到试图利用它的请求的冲击。这类似于服务器不应该返回的口头禅,例如可以指纹识别的服务器标头。
标签: web-applications web fingerprinting