- ：在本节中, 我们将讨论Web应用程序渗透测试｡
在我们开始讨论之前,
我们需要了解什么是网站｡
就像我之前说的,
网站只是安装在电脑上的应用程序｡
那台电脑可能只是比你的电脑有更好的规格,
但从根本上说, 它的工作原理和另一台电脑完全一样｡
它有一个操作系统,
也有一些应用程序, 使它可以作为一个Web服务器｡
它可能拥有的两个主要应用程序是Web服务器和数据库｡
Web服务器就像Apache,
而数据库就像MySQL｡
Web服务器基本上理解并执行Web应用程序｡
您的Web应用程序可以用PHP或Python编写,
实际上可以用任何编程语言编写｡
唯一的问题是Web服务器需要能够理解并执行此Web应用程序｡
数据库包含Web应用程序使用的数据｡
所有这些都存储在一台名为服务器的计算机上｡
计算机连接到互联网, 它有一个真正的IP地址,
所以任何人都可以访问这台计算机,
并可以ping它｡
Web应用程序由安装在目标服务器上的Web服务器执行｡
因此, 无论何时请求页面或运行Web应用程序,
实际上都是在Web服务器上执行,
而不是在客户端计算机上执行｡
它在Web服务器上执行,
然后发送一个HTML页面, 该页面可供目标用户或客户阅读｡
让我们看一个例子｡
假设你正在打电话或用电脑, 你想上facebook｡
com的网站｡
所以, 你输入facebook｡ com进入您的URL｡
这将使用DNS服务器转换为IP地址｡
有一个服务器可以翻译每个名字｡ . com上的链接｡ edu, 或者任何有域名的网站, 所以这是一个域名,
到它的相关IP地址｡
所以, 你请求Facebook｡ 请求会被送到DNS服务器, 它会翻译facebook｡
然后它会转到Facebook的IP地址,
它会使用我们提到的所有应用程序来执行你想要的页面,
然后给你一个现成的HTML｡
你得到的只是一个用HTML写的标记,
HTML是一种标记语言, 是执行程序的结果｡
程序在服务器上执行,
然后你只得到结果｡
这一点非常重要, 因为将来如果我们希望在Web服务器上执行任何内容,
如果我们希望在目标计算机上执行shell､ 反向shell或病毒, 那么我们需要将其发送为Web服务器能够理解的语言｡
例如, PHP｡
一旦你在那里执行它, 它将在那台计算机上执行,
而不是在你的计算机上｡
不管访问页面的人是谁, 你要发送的web shell,
如果它是用PHP编写的, 用服务器理解的语言编写的, 它将在服务器上执行,
而不是在你的计算机上执行｡
因此, 它将授予您访问服务器的权限,
而不是访问访问该服务器的人员的权限｡
JavaScript, 另一方面, 有一些网站使用JavaScript｡
JavaScript是一种客户端语言｡
如果您设法找到一个允许您运行JavaScript代码的网站,
那么代码将由客户端执行｡
即使代码可能被注入到Web服务器中,
它也将在客户端执行, 并且它将允许您对客户端计算机而不是服务器执行操作｡
区分客户端语言和服务器端语言是非常重要的｡