专栏首页中二病也要当白帽子Apache CGI模式下修改.htaccess导致服务器500的解决办法

Apache CGI模式下修改.htaccess导致服务器500的解决办法

通过向.htaccess文件添加AddType或AddHandler使非php文件被解析

介绍

除了正常的用途外,在渗透中的Apache环境下,可以用.htaccess来重写Apache配置以绕过上传,或者留后门什么的。

条件

一般网上复现给出的条件是

  1. httpd.conf中 AllowOverride All (文件中可能有多处,仅改DocumentRoot指向我们文件的即可)
  2. 开启mod_rewrite.so模块,这个一般是默认开启的。 以上两处都是服务端配置,实际上实战场景,我们也改不了。但本地复现的时候可能会遇到这个问题。 接下来给出的.htaccess写法都类似于
AddType application/x-httpd-php .jpg

亦或者是

  <FilesMatch "test.jpg">
    SetHandler application/x-httpd-php
  </FilesMatch>

但这两种写法其实都没有本质的区别。 在Apache模块DLL模式下,应该是能成功的。 但是如果你使用的是PHPStudy在windows下面,可能会有复现失败的情况。这是因为PHPStudy在大部分情况(我遇到的)下,使用的是CGI/FastCGI模式。

解决方法

以后缀名abc为例,路径自行进行替换。(经测试更改.htaccess是可以不重启服务器的)

AddHandler fcgid-script .abc
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .abc

这里将AddHandler替换为SetHandler也是可以的。

这个写法,参考了vhosts.conf或者Apache2.4.39\conf\vhosts\localhost_80.conf这里。 也就给我们拓宽了思路,如果我们自己的.htaccess失效。可以参考默认生成的配置文件是如何对php进行解析的。

<VirtualHost _default_:80>
    DocumentRoot "D:/phpstudy_pro/WWW/localhost"
    FcgidInitialEnv PHPRC "D:/phpstudy_pro/Extensions/php/php7.3.4nts"
    AddHandler fcgid-script .php
    FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php
    ErrorLog "D:/phpstudy_pro/Extensions/Apache2.4.39/logs/localhost_error.log"
    CustomLog "D:/phpstudy_pro/Extensions/Apache2.4.39/logs/localhost_acess.log" common
  <Directory "D:/phpstudy_pro/WWW/localhost">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
      DirectoryIndex index.php index.html
  </Directory>
  ErrorDocument 400 /error/400.html
  ErrorDocument 403 /error/403.html
  ErrorDocument 404 /error/404.html
  ErrorDocument 500 /error/500.html
  ErrorDocument 501 /error/501.html
  ErrorDocument 502 /error/502.html
  ErrorDocument 503 /error/503.html
  ErrorDocument 504 /error/504.html
  ErrorDocument 505 /error/505.html
  ErrorDocument 506 /error/506.html
  ErrorDocument 507 /error/507.html
  ErrorDocument 510 /error/510.html
</VirtualHost>

.htaccess中添加php_value auto_append_file导致500错误

介绍

.htaccess中除了上面的添加文件的php解析以外。还可以通过添加auto_append_fileauto_prepend_file向所有php文件中的开头或最后插入指定的文件内容。可以用来制作后门。具体可自行百度。

复现方式

网上给出的方法一般是在.htaccess中添加如下代码

php_value auto_prepend_file "/home/fdipzone/header.php"
php_value auto_append_file "/home/fdipzone/footer.php"

但是如果运行在CGI模式下,这个php_value是不能被识别的,会导致服务器500错误。

解决方案

1. 通过.user.ini来实现

可以通过 .user.ini 来设置auto_append_file、auto_prepend_file。来添加后门。 自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件。此类文件仅被 CGI/FastCGI SAPI 处理 在目录下创建.user.ini文件。内容如下:

auto_prepend_file = 123.gif

123.gif自行替换为需要引入的文件。可以是.user.in的相对路径。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 你知道短URL服务是怎么设计的吗?

    想必大家也经常收到垃圾短信吧... 短信中的链接一般都是短链接, 类似于下图这样:

    JAVA葵花宝典
  • Segment Routing 之 Data-Plane & Control-Plane

    作者简介:张磊,思科原厂8年多technical consulting engineer,精通思科数据中心/园区网产品及技术;精通SAN网络架构及产品;熟悉广域...

    SDNLAB
  • CORS跨域资源共享(一):模拟跨域请求以及结果分析,理解同源策略【享学Spring MVC】

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    BAT的乌托邦
  • phpstudy后门文件分析以及检测脚本

    2019.9.20得知非官网的一些下载站中的phpstudy版本存在后门文件,基于研究的目的,于是有了以下这文。

    ChaMd5安全团队
  • iOS 中 HTTPS 证书验证浅析

    客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数random_C,扩展字段等信息。

    用户6094182
  • 爬虫之urllib库的使用

    简单的说就是别人写好的东西,你拿来调用就可以实现基本的操作。比如电视你只用看,不用知道他是如何成像的。

    不断折腾
  • 腾讯云服务器搭建网站教程【PHP+MYSQL环境】

    到目前为止本人做网站已经有半年了,对服务器配置略有了解。目前基本掌握了在cent os和windows server 2008/2012系统下搭建PHP+MYS...

    用户2416682
  • Python的urllib库

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    于小勇
  • 为什么大部分的码农都做不了架构师?

    一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。

    编程珠玑
  • PHP设计模式之代理模式

    代理人这个职业在中国有另外一个称呼,房产经济人、保险经济人,其实这个职业在国外都是叫做房产代理或者保险代理。顾名思义,就是由他们来帮我们处理这些对我们大部分人来...

    硬核项目经理

扫码关注云+社区

领取腾讯云代金券