php-fpm (CVE-2019-11043)漏洞复现

图片

漏洞详情

来自Wallarm的安全研究员Andrew Danau在9月14号至16号举办的Real World CTF中,向服务器发送%0a(换行符)时,服务器返回异常信息,疑似存在漏洞。

当Nginx使用特定的fastcgi配置时,存在远程代码执行漏洞,但这个配置并非Nginx默认配置。

当fastcgi_split_path_info字段被配置为 ^(.+?\.php)(/.*)$;时,攻击者可以通过精心构造的payload,造成远程代码执行漏洞,该配置已被广泛使用,危害较大

影响版本

当Nginx + php-fpm 的服务器有如下配置时,存在此漏洞。

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

实验环境

docker环境 https://github.com/vulhub/vulhub/tree/master/php/CVE-2019-11043

docker-compose up -d

图片

docker镜像下载完成

图片

环境准备好了:》

图片

利用的工具:

https://github.com/neex/phuip-fpizdam

图片

克隆到本地

git clone https://github.com/neex/phuip-fpizdam.git

图片

编译利用工具

没有go环境

图片

安装go环境

wget -c https://storage.googleapis.com/golang/go1.13.3.linux-amd64.tar.gz

解压到/usr/local

目录tar -C /usr/local/ -xzf go1.13.3.linux-amd64.tar.gz

vim 编辑/etc/profile

文件最后加上export PATH=$PATH:/usr/local/go/bin

执行 source /etc/profile 命令 就安装成功了

图片

获取工具

图片

执行exp攻击 在/tmp/写入 文件a

图片

攻击成功后会在tmp目录下写入a

图片

winddows下面也是类似的。

图片

修复建议:

1.修改nginx配置文件中fastcgi_split_path_info的正则表达式,不允许.php之后传入不可显字符

2.暂停使用 nginx+php-fpm 服务

根据实际生产环境的业务需求,将以下配置删除

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

fastcgi_param PATH_INFO  $fastcgi_path_info;

总结:

1、docker环境相对实现容易一些(Linux本机尝试构造漏洞,但是花的时间很多,建议docker)。

2、还有就是go语言下载的phuip-fpizdam注意最后编译后的位置(本机在此目录下)

图片

3、最近工作闲暇漏洞复现一下(安全贵在坚持),如果有纰漏,望大佬指正。

这个是前面复现的存货(给以前单位实验室投过稿),最近有时间整理发一下。

免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

参考:

https://mp.weixin.qq.com/s/pnuMJ8x6k_r2lmgId93Cuw

https://mp.weixin.qq.com/s/NFPVPSUHJKr4ghfa0ofoWQ

https://mp.weixin.qq.com/s/kE4nP8sewd7OnJ0WUDw3iA

公众号:

图片

thelostworld:

图片

个人知乎:https://www.zhihu.com/people/fu-wei-43-69/columns

个人简书:https://www.jianshu.com/u/bf0e38a8d400

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值