在本节中, 我们将了解什么是网站。网站只不过是设备或计算机上安装的应用程序。网站有两个主要应用程序, 分别是Web服务器(例如Apache)和数据库(例如MySQL)。
- Web服务器用于理解和执行Web应用程序。 Web应用程序可以用Java, Python, PHP或任何其他编程语言编写。唯一的限制是Web服务器需要能够理解和执行Web应用程序。
- 该数据库包含Web应用程序使用的数据。所有这些都存储在称为服务器的计算机上。该服务器已连接到Internet并具有IP地址, 任何人都可以访问或ping它。
该Web应用程序可以由目标执行, 也可以由安装在我们服务器上的Web服务器执行。因此, 无论何时我们运行Web应用程序或请求页面, 它实际上都是在Web服务器上执行的, 而不是在客户端计算机上执行的。在Web服务器上执行后, Web服务器将发送一个HTML页面, 该页面已准备就绪可以读取给目标客户端或个人, 如下图所示:
假设我们正在使用计算机或电话, 并且想要访问google.com。在我们的网址中, 如果我们键入google.com, 它将使用DNS服务器转换为IP地址。 DNS是将每个名称, .com, .edu或任何具有名称或域名的网站转换为其相关IP地址的服务器。如果我们请求google.com, 则请求将转到DNS服务器, 并将google.com转换为存储Google的IP。然后, DNS服务器将转到Google的IP地址, 并使用我们所说的所有应用程序执行我们想要的页面, 然后给我们准备好HTML页面。
现在该程序在服务器上执行, 并且由于该程序, 我们仅获得HTML, 这是一种标记语言。这一点非常重要, 因为在将来, 如果我们想让Web服务器上执行的任何事情(例如shell), 那么我们都需要以Web服务器可以理解的语言(例如PHP)发送它, 在服务器内部执行它, 它将在目标计算机上执行。
这意味着, 无论访问页面的人员是什么, 我们将要发送的Web Shell(如果使用Java或服务器可以理解的语言编写)将在服务器而不是我们的计算机上执行。因此, 它将使我们能够访问服务器, 而不是访问服务器的人。
另一方面, 某些网站使用JavaScript, 这是一种客户端语言。如果我们能够找到一个允许我们运行JavaScript代码的网站, 则该代码将由客户端执行。即使代码可能被注入到Web服务器中, 它也将在客户端执行, 这将使我们能够在客户端计算机而不是服务器上进行攻击。因此, 区分客户端语言和服务器端语言非常重要。
评论前必须登录!
注册