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

发布时间:2021-10-18 11:02:04 作者:柒染
来源:亿速云 阅读:187

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

一、漏洞介绍

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

影响范围:

漏洞影响版本 php < 5.3.12 or php < 5.4.2

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

二、PHP运行的四种模式

1)cgi 通用网关接口(Common Gateway Interface))

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

2) fast-cgi 常驻 (long-live) 型的 CGI 【php-fpm:PHP的FastCGI进程管理器】

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

3) cli  命令行运行   (Command Line Interface)

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

4)web模块模式 (apache等web服务器运行的模块模式)

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

三、漏洞复现

1、使用vulhub搭建漏洞环境

如何理解PHP-CGI远程代码执行漏洞以及CVE-2012-1823漏洞复现2、访问ip+端口访问漏洞环境

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

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、通过返回结果可以看到我们的命令已经被执行

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

四、POC

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

Poc运行结果,执行了ls命令

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

上述就是小编为大家分享的如何理解PHP-CGI远程代码执行漏洞以及CVE-2012-1823漏洞复现了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. ThinkPHP远程命令执行漏洞原理及复现
  2. Windows远程代码执行漏洞及Microsoft Excel远程代码执行漏洞的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:如何解决php获取时间对不上

下一篇:如何用php header延时跳转

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》