【漏洞复现】CVE-2019-11043(PHP远程代码执行漏洞)信息安全论文_含漏洞复现完整过程_含Linux环境go语言编译环境安装

一、信息安全概述

信息安全是一个涵盖广泛的领域,旨在保护信息系统和数据免受未经授权的访问、使用、披露、破坏、修改或干扰的威胁和攻击。它涉及各种技术、策略和措施,旨在确保信息的保密性、完整性和可用性。信息安全的目标是保护组织的敏感信息,包括客户数据、商业机密、财务信息和知识产权,以及防止信息系统遭受破坏、盗窃或滥用。

信息安全的重要性不断增加,因为随着技术的发展,网络攻击和数据泄露的威胁也在不断增加。信息安全涉及多个方面,包括网络安全、应用程序安全、数据保护、身份验证和访问控制等。它需要综合应用技术、政策、教育和意识培训等措施,以建立强大的防御机制和应急响应能力。

信息安全的目标是确保机构和个人的信息资产受到保护,防止数据泄露、身份盗窃、勒索软件攻击和其他恶意活动。为了实现这些目标,信息安全需要综合考虑以下几个方面:

·机构内部的安全政策和流程,包括访问控制、身份验证、密码管理和员工培训等。

·网络安全措施,如防火墙、入侵检测和预防系统、安全监控和日志分析等。

·应用程序安全,包括代码审查、漏洞管理和安全测试等。

·数据保护和加密,以确保数据在传输和存储过程中的安全性。

·应急响应和恢复计划,以应对安全事件和灾难。

总之,信息安全是保护信息系统和数据免受威胁和攻击的重要领域。它需要综合应用技术、策略和措施,以确保信息的保密性、完整性和可用性,并建立强大的防御和应急响应能力。

二、背景

1.CVE-2019-11043(PHP远程代码执行漏洞)简介

CVE-2019-11043漏洞是PHP的一个远程代码执行漏洞,该漏洞产生与Nginx利用fastcgi_split_path_info在处理带有 %0a 的请求时,会因为遇到换行符(%0a)导致PATH_INFO为空,最终可导致任意代码执行。

扫描二维码关注公众号,回复: 17553483 查看本文章

该漏洞普遍出现在Nginx+php-fpm环境中,且PHP版本在7.0-7.3之间。

****2.****技术以及平台的相关原理

要想理解CVE-2019-11043漏洞成因,我们从Nginx处理PHP类型的文件开始讲起。在早期(Web1.0)时期,web大多是静态页面,所谓静态页面,即HTML、JPG等静态资源组成,没有PHP、JSP等的动态页面语言。

后来PHP等动态语言出现以后,Nginx如何支持PHP语言的网站称为了一个问题。Apache的解决方案是将处理PHP等动态语言的程序编译成一个模块,当我们需要处理PHP页面时,就可以调用这个模块。而对于Nginx而言,选择的是另一种解决方案,即Nginx本身只解析静态资源,如果有PHP页面,就将这个请求给PHP相关程序来进行处理,然后将处理后的结果反馈给用户。

为了解决这种PHP(语言解析器)与Nginx(Web服务器)之间的通信问题,我们制定了cgi协议。有了cgi协议以后,意味着以后出现新的动态语言(比如go语言),出现了新的Web服务器,只要遵循了cgi协议,就可以快速方便的实现语言解析器和Web服务器之间的通信问题。cgi协议非常重要,但是也有其自身的缺点,那就是每次语言解析器和Web服务器之间的通信,都需要创建一个进程,当通信结束后,就要杀死这个进程,这样的机制无疑大大浪费了系统资源。为了解决这一问题我们,我们对cgi协议进行了修改,cgi协议的改良版本有很多,但是其中一个很具有代表性的就是fast-cgi协议。fast-cgi协议改进了进程的处理模式,当一次通信完成后,通信进程会得以保留,不会杀死通信使用的进程,其他的通信还可以继续使用这个进程,这样一来,就大大提升了系统资源使用效率。

对于Nginx而言,为了实现与PHP的通信交互,因此出现了php-cgi和php-fpm。php-cgi支持cgi协议,可以用于处理和解析PHP脚本程序,php-cgi通过调用PHP的php_execute_script函数来解析和运行PHP脚本。php-cgi的问题在于,尽管其本身可以解析和处理PHP脚本程序,但是其本身没有进程管理的相关功能。为了解决这一问题,就出现了php-fpm。php-fpm全称是php Fastcgi Process Manager,php-fpm实现了Fast-cgi协议,并可以提供进程管理的相关功能。在PHP5.4版本之前,Nginx处理PHP的流程是调用php-fpm,php-fpm再创建进程,调用php-cgi,以此实现了Ngixn对PHP的解析问题,