phpstudy的apache服务器无法解析运行以.php5,.phtml等非.php后缀的文件的解决方法

版本:phpstudy_x64_8.1.1.3

最近在做upload-labs的文件上传漏洞的实验,发现上传的.php5,.phtml文件无法被apache服务器解析运行,访问这些文件只会显示代码,估计是配置问题。

尝试在网上查了phpstudy无法运行phtml,但找到的解决方法都是针对phpstudy2018版等带有TS版PHP的,参考网页关于PHPStudy中使用AddType application/x-httpd-php该Apache的设置命令无效的问题 - 爱码网

记录BUG—在uploadlabs第三关中—关于phpstudy中修改httpd.conf依旧无法解析.php3d等问题_upload-labs第三关php3不被解析_dfzy$_$的博客-CSDN博客

还是自己看看配置文件吧,在httpd.conf里查找'php',没有找到和php相关的配置

 

 

然后上网查了一下,phpstudy的apache是通过mod_fcgid.so来实现对php的解析运行的

后来在网上查了一圈且尝试了许多修改配置的方法,最后在这篇博客里发现对fcgid的配置修改方法Apache使用fcgid模块配置多个PHP版本共存_fcgid_module_神神的蜗牛的博客-CSDN博客

LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .fcgi .php
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 15
FcgidIOTimeout  120
FcgidIdleTimeout  120
AddType application/x-httpd-php .php
# 全局默认使用的PHP版本配置
FcgidInitialEnv PHPRC "C:/ProgramFiles(x86)/php5.6"
FcgidWrapper "C:/ProgramFiles(x86)/php5.6/php-cgi.exe" .php
# 上传文件的最大尺寸 100MB
FcgidMaxRequestLen 104857600

以上代码来自https://snail.blog.csdn.net/article/details/53995566?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-53995566-blog-79180162.235%5Ev38%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-53995566-blog-79180162.235%5Ev38%5Epc_relevant_anti_t3_base&utm_relevant_index=1

我尝试向配置里加入这段代码并针对我的php版本进行了修改,LoadModule那行配置文件里原来有就不加了

AddHandler fcgid-script .fcgi .php .php5 .phtml
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 15
FcgidIOTimeout  120
FcgidIdleTimeout  120
# 全局默认使用的PHP版本配置
FcgidInitialEnv PHPRC "D:/phpstudy_pro/Extensions/php/php7.3.4nts"
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php 
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php5
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .phtml
# 上传文件的最大尺寸 100MB
FcgidMaxRequestLen 104857600

保存配置后重启apache服务器,成功解析

主要起作用的是这几行代码

#告诉服务器,对于以.fcgi、.php、.php5或.phtml为后缀的请求,应该使用FPM进行处理。
AddHandler fcgid-script .fcgi .php .php5 .phtml
#设置了全局默认使用的PHP版本路径
FcgidInitialEnv PHPRC "D:/phpstudy_pro/Extensions/php/php7.3.4nts"
#告诉服务器,对于以.php、.php5、.phtml为后缀的请求,应该使用指定路径下的php-cgi.exe来执行PHP脚本,有需要可以自己加
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php 
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php5
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .phtml

-----------------------------------------------------------更新----------------------------------------------------------------

找到了这篇文章

Apache漏洞防御及分析 - 哔哩哔哩 (bilibili.com)

里面提及了影响2.4.0~2.4.29 这几个版本的Apache的漏洞,其原理为

SetHandler application/x-httpd-php +文件名

这条用于httpd.conf的表达式,可以让Apache服务器将对应文件名的文件当作php文件处理。

而我的Apache版本已经修复了SetHandler application/x-httpd-php这条表达式引起的漏洞

 而我之前查阅的大部分资料都是通过SetHandler application/x-httpd-php .php5 .phtml的方法来让服务器把这些文件当作php文件来解析运行,然而我的apache版本太高了,运行这个表达式无法解决问题,还可能导致原来能解析的php文件也无法解析运行。

这给我一个教训:漏洞复现需要注意环境的版本

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值