信息安全概述:保护信息系统与数据免受威胁的全面指南
1。信息安全概述

信息安全性是一个广泛的领域,旨在保护信息系统和数据免受未经授权的访问,使用,披露,破坏,修改或干扰。它涉及各种旨在确保信息的机密性,完整性和可用性的技术,策略和措施。信息安全的目的是保护组织的敏感信息,包括客户数据,商业秘密,财务信息和知识产权,并防止违反信息系统的漏洞,盗窃或滥用信息系统。
随着技术攻击和数据泄露的威胁,随着技术的发展,信息安全的重要性继续增加。信息安全涉及许多方面,包括网络安全性,应用程序安全性,数据保护,身份认证和访问控制。它需要全面应用技术,政策,教育和意识培训,以建立强大的防御机制和应急能力。
信息安全的目的是确保保护机构和个人的信息资产受到保护,并防止数据泄露,身份盗用,勒索软件攻击和其他恶意活动。为了实现这些目标,信息安全需要全面考虑以下方面:
·组织内的安全策略和程序,包括访问控制,身份验证,密码管理和员工培训。
·网络安全措施,例如防火墙,入侵检测和预防系统,安全监控和日志分析等。
·应用程序安全,包括代码审核,漏洞管理和安全测试。
·数据保护和加密,以确保传输和存储期间数据的安全性。
·应急和恢复计划,以应对安全事件和灾难。
简而言之,信息安全是保护信息系统和数据免受威胁和攻击的重要领域。它需要全面应用技术,策略和措施,以确保信息的机密性,完整性和可用性,并建立强大的防御和应急响应能力。
2。背景
1。CVE-2019-11043简介(PHP远程代码执行漏洞)
CVE-2019-11043漏洞是PHP中的远程代码执行漏洞。使用fastCGI_SPLIT_PATH_INFO使用NGINX发生此漏洞。当使用%0A处理请求时,path_info将由于遇到newline字符(%0a)而为空,最终可以导致执行任意代码。
通常可以在NGINX+PHP-FPM环境中看到此漏洞,而PHP版本在7.0-7.3之间。
**** 2。****技术和平台相关原理
为了了解CVE-2019-11043漏洞的原因,我们从NGINX处理PHP类型文件开始。在(Web1.0)早期,网络主要是静态页面。所谓的静态页面由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协议有许多改进的版本,但最具代表性的版本之一是快速CGI协议。快速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实现了快速CGI协议,并可以为过程管理提供相关功能。在PHP5.4之前,NGINX处理PHP的过程是调用php-fpm,php-fpm,然后创建该过程,然后调用PHP-CGI,从而意识到Ngixn解析PHP的问题。目前,PHP-FPM在管理PHP-CGI的作用中起着作用。 PHP 5.4后,将PHP-FPM集成到PHP内核中,并且具有PHP解析的功能,因此它不再使用PHP-CGI来解析PHP。
脆弱性的原因
NGINX的配置将导致CVE-2019-11043漏洞。漏洞的主要原因是以下配置:
fastcgi_split_path_info ^(。+。php)(/.*)$
当将%0A符号发送到目标服务器URL时,服务返回异常,并且存在漏洞。
如果用户传递的信息具有newline字符(URL编码为%0a),则它将在FastCGI_SPLIT_PATH_INFO参数之后打破正则表达式匹配,从而导致path_info变量为空,从而触发漏洞。
使用这些不正确的NGINX配置,攻击者可以让PHP-FPM仔细构造和使用数据包来执行任意代码。
有关此漏洞的详细分析,请参阅文章:
CVE-2019-11043 NGINX配置的详细说明-CSDN博客
影响范围
在NGINX + PHP-FPM环境中,当启用上述NGINX配置时,以下PHP版本会受此漏洞的影响。此外,PHP 5.6版本也受此漏洞的影响,但目前仅可以使用崩溃,也不能远程执行:
PHP版本7.0
PHP版本7.1
PHP版本7.2
PHP版本7.3
3。攻击行动步骤(和防御行动)
实验环境要求:
1.1目标机器:Kali-Linux-2024.1-VMware-AMD64
安装Vulhub以构建Docker映像,构建PHP和NGINX环境
目标机IP(192.168.6.124)和Doker Mirror IP如图1:
图1目标机和镜子IP
1.2攻击飞机:Kali-Linux-2024.1-VMware-AMD64
安装GO编译环境Golang并利用工具Phuip-fpizdam
攻击机IP(192.168.6.243),测试攻击机和目标机可以PING,如图2所示:
图2:攻击机和目标机ping
2 ****。**** CVE-2019-11043(php远程代码执行漏洞)脆弱性环境构建
2.1目标机环境构建
为了重现这种漏洞,我们首先需要构建目标机器漏洞环境。我们使用vulhub来构建这个脆弱的环境。安装VulHub后,我们可以在Vulhub的PHP目录中找到漏洞,并创建一个漏洞PHP和NGINX环境。
具体步骤如下:
执行命令CD vulhub/php/php/cve-2019-11043进入漏洞目录;
运行命令Docker-ComposeBuild以构建漏洞;
运行命令docker -compose -d以构建脆弱的环境(PHP,nginx);
运行Docker-Compose Config命令以查看漏洞的Docker配置。
该界面如图3所示:
图3建立目标机器的脆弱性环境
使用浏览器访问镜像端口8080(:8080/)以验证漏洞环境已建立,并且接口如图4:所示。
图4目标机脆弱性环境的验证
2.1攻击飞机环境建设
为了重现这种脆弱性,我们首先需要建立攻击飞机环境。我们在GitHub上使用漏洞的公共POC,GIT克隆POC的安装程序包。在此之前,为了编译环境,需要在本地安装GO本地环境。
2.1.1 Go Locale构造
有关相关过程,请参阅文章:具体步骤如下:
下载Linux二进制软件包,然后在攻击计算机Kali Linux系统上执行命令:
wget
解压缩下载的安装程序包并执行命令:
tarxf go1.19.4.linux-amd64.tar.gz
如下图5所示:
图5 Go Locale构造
配置环境变量和执行命令:
导出gopath =/home/kali/go
出口路径= $ Gopath/bin
测试GO语言汇编环境并执行命令:
GO版本
去
如下图6所示:
图6 GO LOCALE测试
2.1.2安装脆弱性利用工具
有关相关过程,请参阅文章:具体步骤如下:
git克隆漏洞利用工具phuip-fpizdam安装软件包,执行命令:
git克隆
下载后,您可以看到Phuip-Fpizdam目录在本地出现,并在目录中查看文件,如下图7所示:
图7安装利用工具
3 ****。**** CVE-2019-11043(php远程代码执行漏洞)脆弱性递归
3.1汇编环境
输入phuip-fpizdam目录,使用GO语言来编译环境以完成安装漏洞利用POC,然后执行命令:
Go Env -W goproxy = https://goproxy.cn
去获取-v &&去构建
上述命令执行结果如图8:
图8脆弱性POC安装
3.2漏洞利用
使用在发送数据包的过程中给出的工具使用该工具执行命令:
去跑。 “目标机IP:8080/index.php”
上述命令执行结果如图9:
图9发送数据包
打开浏览器并访问“:8080/a = cat%20/etc/passwd”,以查看该命令已成功执行。接口结果如图10所示:
图10漏洞利用
4 ****。**** CVE-2019-11043(php远程代码执行漏洞)漏洞利用
4.1执行cat /etc /passwd命令
图11漏洞1
4.2执行PWD命令
您可以看到它当前位于/var/www/html Hello World Directory中:
图12漏洞2
4.3执行LS命令
图13漏洞3
4.4执行ID命令
图14漏洞4
4.5执行Whoami命令
图15漏洞5
5 ****。**** CVE-2019-11043(PHP远程代码执行漏洞)漏洞防御操作
5.1解决方案1
在不影响正常业务的情况下,删除NGINX配置文件中的以下配置:
fastcgi_split_path_info ^(。+。php)(/.*)$;
fastcgi_param path_info $ fastcgi_path_info;
5.2解决方案******* 2
更新的PHP版本:高于PHP版本7.3
5.3解决方案******* 3
打开UFW防火墙,命令如下:sudo ufw enable
4。摘要
通过CVE-2019-11043的复制和研究(PHP远程代码执行漏洞),我们对漏洞的原理和危害有了深入的了解。这种漏洞的存在使攻击者可以通过精心构造的请求远程执行恶意代码,从而获得系统权限,窃取敏感信息或损坏系统。
我们的研究不仅揭示了对脆弱性的特定剥削,而且还突出了常用技术(例如PHP和NGINX)安全性的弱点。这种脆弱性的存在提醒我们,信息安全是一个持续的挑战,我们不能放松对安全的重视。
为了有效处理此类漏洞,我们需要采取一系列安全措施。首先,及时更新和升级软件,组件和框架以修复已知漏洞。其次,加强网络安全保护,包括使用防火墙,入侵检测系统和加密传输等技术手段。此外,开发人员应专注于编写安全代码,执行安全测试和代码审查,以减少潜在的漏洞。
在我的研究中,我们成功地复制了CVE-2019-11043脆弱性,并提供了相应的解决方案。我们的研究为安全团队和开发人员提供了宝贵的参考和指导,以加强对这些漏洞的理解。
但是,我们还意识到,这种漏洞只是许多安全威胁之一,信息安全的挑战还远远没有结束。我们需要不断学习和更新我们的知识,跟踪最新的漏洞和攻击技术,以保持对安全问题的敏感性。只有通过共同的努力,我们才能建立一个更安全,更可靠的网络环境。
V.结论
这项研究不仅揭示了利用漏洞的特定方法,而且还突出了常用技术(例如PHP和NGINX)安全性的薄弱环节。我们应该认识到,信息安全的重要性不能忽略,尤其是对于Web应用程序和服务器环境。只有通过充分理解和了解这些潜在的漏洞,我们才能更好地保护系统和数据的安全性。
为了有效处理此类漏洞,我们需要采取一系列安全措施。首先,及时更新和升级软件,组件和框架以修复已知漏洞。其次,加强网络安全保护,包括使用防火墙,入侵检测系统和加密传输等技术手段。此外,开发人员应专注于编写安全代码,执行安全测试和代码审查,以减少潜在的漏洞。
最后,信息安全是一个正在进行的过程,需要持续学习和更新知识,跟踪最新漏洞和攻击技术以及采取相应的保护措施。只有通过全面的安全意识和行动,我们才能确保信息系统和数据的安全性,并有效应对未来的安全挑战。
在未来的研究中,我们可以进一步探索其他相关的漏洞和安全问题,并提出更有效的解决方案。通过持续的研究和实践,我们可以为信息安全的发展和保护做出更大的贡献。让我们共同努力建立安全可靠的网络环境。
6。参考
[1] Chen Zhong,Zhang Qianlin。 PHP程序安全性和漏洞挖掘[M]。电子行业出版社,2018年。
[2]张·鲁伊,杨夏芬,李维。 PHP Web应用程序安全保护和漏洞挖掘[J]。中国科学技术论文在线,2017,12(6):621-626。
[3] Kaur,A。和Sharma,S。(2018)。 PHP漏洞和预防技术的分析。在国际信息系统设计和智能应用程序中(第571-579页)。施普林格,新加坡。
[41]冯帮,周基于PHP [J]的Web应用程序漏洞的分析和预防。现代计算机,2016年,(12):62-65。
[5] Alshammari,A。和Alghamdi,M。(2020)。 PHP Web应用程序的漏洞分析。国际计算机科学与网络安全杂志,20(6),38-43。
[6] Rios,M。和Baudot,A。(2019)。 Web应用程序安全:利用PHP应用程序中的常见漏洞。在国际网络安全情报与分析会议上(第37-49页)。施普林格,康。
[7] Wang Yongzheng,Wang Ruiqin。 Web应用程序安全漏洞和预防基于PHP [J]。现代信息,2019年,(9):57-59。
[8]刘东。讨论PHP计划安全漏洞的分析和预防[J]。计算机技术与发展,2018,28(11):117-123。
[9] Kim,H.,Lee,D。,&Huh,JH(2020)。 PHP Web应用程序中的安全漏洞和对策的分析。在智能计算和大数据服务的国际安全会议上(第118 -126页)。施普林格,康。
[10] Bortolameotti,R。和Massacci,F。(2017)。 PHP Web应用程序的脆弱性分析:案例研究。在计算机辅助验证国际会议上(第304-319页)。施普林格,康。