1.php-fpm漏洞详情 当nginx使用特定的fastcgi配置的时候,就会存在远程代码执行漏洞,但是这个配置并不是默认配置 fastcgi_split_path_info字段配置为^(.+?\.php)(/.*)$;时,攻击者可以通过精心构造playload造成远程代码执行,改配置已经被广泛使用,危害较大。 2.复现 安装docker环境 git clone https://github.com/vulhub/vulhub.git 1 2.进入目录 /vulhub/vulhub/tree/master/php/CVE-2019-11043并运行安装环境 docker-compose up -d 1 查看镜像docker images 查看环境:http:ip:8080 下载exp,安装go环境 git clone https://github.com/neex/phuip-fpizdam.git wget -c https://storage./golang/go1.13.3.linux-amd64.tar.gz //解压到/usr/local目录 tar -C /usr/local/ -xzf go1.13.3.linux-amd64.tar.gz 1 2 3 4 编辑/etc/profile,在文件最后添加export PATH=$PATH:/usr/local/go/bin,执行source /etc/profile 获取工具:go get github.com/neex/phuip-fpizdam 执行exp:./phuip-fpizdam http://ip/index.php 在/tmp/写入文件a 在docker中进入镜像环境,查看tmp的目录 查看效果: 3.修复 修改nginx配置文件中fastcgi_split_path_info的正则表达式,不允许.php之后传入不可显字符 暂停使用 nginx+php-fpm 服务 根据实际生产环境的业务需求,将以下配置删除 fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; ———————————————— 版权声明:本文为CSDN博主「frinck」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/frinck/article/details/102976531
|
|