如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现

介绍

这期内容当中小编将会给大家带来有关如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、漏洞介绍

这个漏洞简单来说,就是用户请求的变量(变量字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析,这里也是只http请求中所带的数据)被作为了PHP-CGI的参数,最终导致了一系列结果。

影响范围:

漏洞影响版本php & lt;5.3.12或php & lt;5.4.2

PS: cve - 2012 - 1823是在php-cgi运行模式下出现的漏洞,其漏洞只出现在以cgi模式运行的php中

二,<强> php运行的四种模式

<强> 1)cgi通用网关接口(公共网关接口))

cgi即通用网关接口(公共网关接口),它是一段程序,通俗的讲cgi就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。

<强> 2)fast-cgi常驻(万岁)型的CGI 【php-fpm: php的FastCGI进程管理器】

fast-cgi是cgi的升级版本,FastCGI像是一个常驻(万岁)型的cgi,它可以一直执行着,只要激活后,不会每次都要花费时间去叉一次(这是cgi最为人诟病的fork-and-execute模式)。

<强> 3)cli,命令行运行,(命令行界面)

cli是php的命令行运行模式,大家经常会使用它,但是可能并没有注意到(例如:我们在linux下经常使用“php -m"查找php安装了那些扩展就是php命令行运行模式,有兴趣的同学可以输入php - h去深入研究该运行模式)

<强> 4)网络模块模式(apache等web服务器运行的模块模式)

模块模式是以mod_php5模块的形式集成,此时mod_php5模块的作用是接收apache传递过来的php文件请求,并处理这些请求,然后将处理后的结果返回给apache。

三,漏洞复现

1,使用vulhub搭建漏洞环境

如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现“> 2,访问ip +端口访问漏洞环境<br/> </p> <p> <img src=

3,访问http: ip +端口/index . php ?- s,返回源码说明存在漏洞

过返回结果可以看到我们的命令已经被执行

如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现

4,使用抓包工具截包构造playload

Cgi模式下命令行参数有如下一些参数可用

- c指定php。ini文件的位置

- n不要加载php。ini文件

- d指定配置项

- b启动fastcgi进程

s显示文件源码

- t执行指定次该文件

- h和- ?显示帮助

如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现“> 5,通过返回结果可以看到我们的命令已经被执行<br/> </p> <p> <img src=

四,POC

如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现“> <br/> </p> <p> <强> POC运行结果,执行了ls命令</强> </p> <p> <img src=上述就是小编为大家分享的如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

如何理解PHP-CGI远程代码执行漏洞以及cve - 2012 - 1823漏洞复现