.htaccess和.user.ini文件构造后门

一、.htaccess

  .htaccess 是Apache HTTP Server的文件目录系统级别的配置文件的默认的名字。它提供了在主配置文件中定义用户自定义指令的支持。其主要作用有URL重写、自定义错误页面、访问权限控制等。也就是说我们可以通过这个文件来达到更改Apache配置的目的。.htaccess的用途范围主要针对当前目录。

  1、开启.htaccess支持

  启用.htaccess,需要修改httpd.conf,启用AllowOverride,即将原有配置:

    Options FollowSymLinks
    AllowOverride None

  改为

    Options FollowSymLinks
    AllowOverride All

  2、通过.htaccess文件来控制文件的访问权限

  我们在很多时候会遇到这样的情况,可以上传后门文件到服务器上,但是改上传目录不能禁止外部访问,或者是不解析脚本,但如果他开启了.htaccess的支持,我们就可以通过它来重写Apache配置(只对当前目录有效),然后执行我们的脚本文件。比如下面的情况:

  

  可以看到服务器支持.htaccess,它禁止了E:/WWW/tes/这个目录下的php文件的访问和解析。

  

  假如这是个上传目录,我们就可以通过上传.htaccess文件来重写apache配置,从而达到我们上传后门的目的。

  .htaccess文件内容:

<FilesMatch ".php">
    Order Allow,Deny
    Allow from all
</FilesMatch>

    

  然后再访问我们的php文件。

  

  这时候,就可以成功解析php文件了。当然我们也可以构造其他后缀的后门文件上传,让它可以解析就可以了,在本地的phpstudy环境中,AddType的指定有问题,就在linux环境下测试了,相信平时我们遇到的情况大多也是在linux环境中。

  

  构造其他后缀名支持php解析,.htaccess文件如下:

AddType application/x-httpd-php .png
php_flag engine 1

  

  利用的时候可以结合实际情况,来达到其他的目的。需要对apache的配置熟悉些。

 

二、.user.ini

  自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件。此类文件仅被 CGI/FastCGI SAPI 处理。除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。在 .user.ini 风格的 INI 文件中除了PHP_INI_SYSTEM以外的模式 INI 设置都可被识别。

  这里需要借助php配置项中的两个核心配置:auto_append_file、auto_prepend_file

  

  这两个配置的作用其实就是:auto_prepend_file 在页面顶部加载文件,auto_append_file  在页面底部加载文件,他是通过 require来自动调用文件的,所以我们的.user.ini文件的内容就可以是:

auto_prepend_file = 123.gif

  

  然后我们访问正常的index.php文件,就会包含123.gif中的phpinfo()了。

  

posted on 2016-11-10 16:25  镱鍚  阅读(1017)  评论(0)    收藏  举报

导航