vulhub-php cve-2019-11043

漏洞描述:

Nginx上fastcgi_split_path_info在处理带有%0a的请求时,会因为遇到换行符\n导致PATH_INFO为空。而php-fpm在处理PATH_INFO为空的情况下,存在逻辑缺陷。攻击者通过精心构造和利用的PAYLOAD,可以导致远程代码执行。但Nginx使用的这个fastcgi配置,并非Nginx默认配置
受影响的版本:

使用Nginx + php-fpm配置的服务器,并且在nginx/conf/nginx.confg配置文件中采用如下配置的时候,都会出现RCE漏洞

Location ~[^/]\.php(/|$){
  ...
  fastcgi_split_path_info  ^(.+?\.php)(/.*)$;
  fastcgi_param PATH_INFO       $fastcgi_path_info;
  fastcgi_pass   php:9000;
  ...
}

fastcgi_split_path_info字段配置为 ^(.+?.php)(/.*)$;时,攻击者可以通过精心构造的payload,触发远程代码执行漏洞,GitHub公开的POC代码是写入一个Webshell到网站目录下,从而开启后门创建。虽然在PHP >= 5.3.3以后,php-fpm并入php核心,但采用以上配置的服务器依然有被攻击的危险。
漏洞原理:

此次漏洞主要由于 PHP-FPM 中 sapi/ fpm/ fpm/ fpm_main.c 文件内的 env_path_info 下溢导致,在“fpm_main.c“文件的第1150行代码中由于\n(%0a)的传入导致nginx传递给php-fpm的PATH_INFO为空。进而导致可以通过FCGI_PUTENV与PHP_VALUE相结合,修改当前的php-fpm进程中的php配置。在特殊构造的配置生效的情况下可以触发任意代码执行。
准备漏洞复现

输入:docker-compose up -d

 sudo docker-compose up -d

输入kali密码后成功启动

在vulhub/php/CVE-2019-11043目录下查看服务器配置信息default.conf

利用phuip-fpizdam工具进行漏洞利用。
访问wget https://github.com/neex/phuip-fpizdam,解压进入目录后执行go build生成phuip-fpizdam(此工具将根据OS自动生成对应的OS版本)

使用刚刚生成的工具phuip-fpizdam发送数据包

 可见,这里已经执行成功,接下来访问http://192.168.221.128:8080/index.php并带上参数a,其中a就是可以执行命令注入的注入点,利用/bin/sh±c ‘PAYLOAD’&,向其中注入命令代码如id或者whoami,可以发现有返回结果证明利用成功。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值