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文件也无法解析运行。
这给我一个教训:漏洞复现需要注意环境的版本
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |