您现在的位置是:首页 > 技术教程 正文

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

admin 阅读: 2024-03-18
后台-插件-广告管理-内容页头部广告(手机)

版本: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博客

  1. LoadModule fcgid_module modules/mod_fcgid.so
  2. AddHandler fcgid-script .fcgi .php
  3. FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
  4. FcgidMaxRequestsPerProcess 1000
  5. FcgidMaxProcesses 15
  6. FcgidIOTimeout 120
  7. FcgidIdleTimeout 120
  8. AddType application/x-httpd-php .php
  9. # 全局默认使用的PHP版本配置
  10. FcgidInitialEnv PHPRC "C:/ProgramFiles(x86)/php5.6"
  11. FcgidWrapper "C:/ProgramFiles(x86)/php5.6/php-cgi.exe" .php
  12. # 上传文件的最大尺寸 100MB
  13. FcgidMaxRequestLen 104857600
  14. 以上代码来自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那行配置文件里原来有就不加了

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

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

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

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

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索