web网站安全之Apache漏洞系列

       现在我们已经了解了作为Web服务环境的组成部分之一的操作系统是不安全的了,用么其他层次呢?是不是也面临着和操作系统一样的威胁呢?实际上确实如此,无论是只能运行在Windows操作系统的IIS,还是可以跨平台使用的Apache、Nigix、Jboss、Tomcat也都同样可能会存在各种各样的漏洞。这些漏洞的成因与提作系统漏洞的成因相同,都是由于代码编写的失误造成的。

outputo-20210605-170344-858-zkbc.png

Apache是全球最大的Web服务器软件。该系统可运行于几乎所有广泛应用的计算机平台。它具有跨平台、安全等特点,应用广泛,是当前最流行的网络服务器软件之一。其速度快,可靠性高,并且通过简单的API扩展,可以在服务器上编译hython解释器。

简言之,使用方便,可以支持HTML、PHP、Perl、Python等基本语言。一句话:强盗!

Apache目录结构。

Bin包括httpd等常用命令工具。

CGI-bin-用于存储诸如xxx.sh这样的Linux下常用命令。

例如httpd.conf的Conf-Linux配置相关文件。

误差-误差记录。

Htdocs-为网站发布源码。

图示-网站图示。

记录-记录。

说明书-手册。

模组-扩充模组

Apache原则介绍。

Apache存在的漏洞在下面讨论,请确保理解Apache的工作原理。

在构建PHP环境的过程中,很多朋友经常使用PHP、LAMP、XAMPP等集成环境,这些原理容易被忽视。要更好地理解这节课中提到的漏洞,我们必须了解Apache和PHP之间的小秘密。

WEB请求流程通过图表进行解释,如下图所示:

上面的图片是灵魂画师Margin的作品

下面的图表简单描述了Apache和PHP协作完成WEB请求的过程,Apache位于第一位,PHP位于最后,那么它们之间的交流如何?首先学习PHP的体系结构。下面的图片

上面是鸟哥的文章,深入了解ZendSAPIs。

以上图片将PHP分成五个级别(类似于Android的架构图),如下:

ZendEngine是PHP的底层实现,包括编译和执行,用C语言实现底层实现。

ZendAPI和ZendExtensionAPI提供基于Zend基础的外部封装服务。

该扩展使用一个扩展的应用程序接口,如各种内置函数和MySQL连接库,来实现扩展库和标准库。

SAPI是全称的核心,它是服务器应用程序的界面,也就是服务器应用程序的界面。PHP与Apache、Nginx、FastCGI进行交互。

这个应用程序在顶层,即我们编写的PHP代码。

现在,上面提到的PHP架构已经非常清楚,Apache和PHP之间的通信流程也不清楚。Apache本身并不支持PHP解析,从架构图中可以看出它是通过SAPI进行通信的,那么Apache如何与SAPI进行通信?Apache如何知道解析为哪种PHP文件?若要手动构建Apache解析PHP的环境,则必须了解以下两个步骤:

分享: