zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    0x00 简介

    在长亭科技举办的 Real World CTF 中,国外安全研究员 Andrew Danau 在解决一道 CTF 题目时发现,向目标服务器 URL 发送 %0a 符号时,服务返回异常,疑似存在漏洞。

    在使用一些有错误的Nginx配置的情况下,通过恶意构造的数据包,即可让PHP-FPM执行任意代码。

    但由于是配置文件的开放性。还请使用 nginx+php-fpm 的服务管理员/运维人员及时做好自查自检工作。

    0x01 漏洞详情

    由于 (%0a)的传入导致nginx传递给php-fpm的PATH_INFO为空。

    进而导致可以通过FCGI_PUTENV与PHP_VALUE相结合,修改当前的php-fpm进程中的php配置。在特殊构造的配置生效的情况下可以触发任意代码执行。

    注:完全复制Nginx官方给出的php-fpm示例配置的用户受到此漏洞影响

    示例配置如下:

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

    0x02 漏洞复现

    在vulhub上已经更新了相应的靶场环境:

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

    拉取镜像环境:

    环境启动后,访问http://your-ip:8080/index.php即可查看到一个默认页面。

    使用https://github.com/neex/phuip-fpizdam中给出的工具,发送数据包:
    (前提本机拥有正常的golang环境)

    可见,这里已经执行成功。

    我们访问http://your-ip:8080/index.php?a=id,即可查看到命令已成功执行:

    注意,因为php-fpm会启动多个子进程,在访问/index.php?a=id时需要多访问几次,以访问到被污染的进程。

    0x03 修复建议

    1.修改 nginx 配配置文件中fastcgi_split_path_info的正则表达式,不允许.php之后传入不可显字符
    2.暂停使用 nginx+php-fpm 服务
    3.删除如下配置

    fastcgi_split_path_info ^(.+?.php)(/.*)$;
    fastcgi_param PATH_INFO       $fastcgi_path_info;
    

    0x04 参考链接

    https://www.anquanke.com/post/id/189415
    https://github.com/vulhub/vulhub/blob/master/php/CVE-2019-11043/README.zh-cn.md
    https://mp.weixin.qq.com/s/XPFIEiNvNorfgQHein_NGw

  • 相关阅读:
    使用VisualStudio2015开发QT项目
    界面控件
    SmartGit 试用过期
    视图和模型变换
    模型变换和视图变换
    一元二次方程
    论cudnn与cuda之间的关系,和实际例子测试。
    在Ubuntu 18.04上安装Tensorflow
    ubuntu14.04安装CUDA8.0
    Windows10系统远程桌面连接出现卡顿如何解决
  • 原文地址:https://www.cnblogs.com/-mo-/p/11732157.html
Copyright © 2011-2022 走看看