1

通常,Web 应用程序可以呈现它喜欢的任何 HTML。因此,理论上,任何语言都可以呈现相同的 HTML 输出。

但是,我们可以通过一些方法尝试推断服务器端正在运行什么。例如,文件扩展名通常是致命的赠品(尽管它们在技术上可能是伪造的)。由于我在 ASP.NET 方面的经验,我知道我们可以识别 ASP.NET 应用程序的一种方法是在呈现的文档中存在 VIEWSTATE,尽管缺少视图状态并不一定意味着应用程序没有在 ASP 上运行。网

我们可以在服务器上运行一些操作系统/服务器指纹,但总的来说这并没有多大帮助——如今,即使是 Windows 服务器也可以运行相当多的应用程序平台。

还有哪些其他可用的分析技术可以帮助我们确定服务器上正在运行什么?某些语言还留下了哪些其他线索?

如果我们能够更好地理解我们的应用程序留下的工件,可能太小以至于我们没有注意到它们,我们可以通过从输出中删除它们来开始提高我们的安全性。

4

3 回答 3

2

检查 HTTP 标头是一个好的开始。默认情况下,IIS6 和 ASP.Net 似乎插入了一个 X-Powered-By 标头,其中 ASP.Net 作为值。

于 2009-10-05T00:47:29.443 回答
0

在 HTTP 标头中,您将(通常但不总是)找到一个名为的标头Server,它指示用于为网页提供服务的 Web 服务器。有时您会发现一个名为的标头X-Powered-By,它指示 Web 服务器使用的平台/技术。

于 2009-10-05T00:45:51.570 回答
0

https://addons.mozilla.org/en-US/firefox/addon/2166

正如其他人提到的,您可以签出ServerX-Powered-By标题。例如,stackoverflow 的服务器是这样的,Server: Microsoft-IIS/7.0所以我可以推断这是由 ASP 驱动的。

以下是我访问的一些随机站点和一些 X-Powered-By 标头:

  • X-Powered-By: PHP/5.2.9. (php论坛)
  • X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.0.3(rubyonrails.org)

其他 Web 应用程序在可以看到的页脚中有一个签名,例如 Powered-By(应用程序名称)。

于 2009-10-05T00:59:03.757 回答