前段时间,也就是我刚到武汉的第二个星期吧。
站点被人攻击了。
原理很简单:我有一个上传的功能。这个上传功能限制了不能上传html、php等扩展文件内容。这哥们利用apache的规则,给我上传了一个.htaccess
与a文件。.htaccess
对于apache来说,是管理当前目录下规则的。他给我上传的.htaccess
里面拦截请求,然后额外添加了一套逻辑,将a改为a.php
,然后调用a.php
,妙就妙在这个a.php
,是将我当前目录下所有内容发到他的服务器!
后来仔细研究了下,之所以.htaccess
放在路径下面,是因为有的虚拟主机,仅仅是一个提供站点功能的主机,你并没有权限进行web服务器的修改。
但是,我就不一样了,我的服务器上的各种配置都是我配的,服务器都是我自己的。所以,我完全可以将.htaccess
配置放到web服务器的配置中,由此,问题解决!
在配置文件中,将.htaccess
添加到服务器配置里,这个是美化下载用的,也是我之前为啥在文件夹目录下用.htaccess
,并不是解决办法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <Directory "D:/Develop/youarebitch/cloud"> <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$ RewriteRule ^(.*)$ - [E=BASE:%1] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule download/(.*)/sh/(.*) %{ENV:BASE}/vfm-admin/vfm-downloader.php?q=$1&sh=$2 [L] RewriteRule download/(.*)/h/(.*) %{ENV:BASE}/vfm-admin/vfm-downloader.php?q=$1&h=$2 [L] RewriteRule download/zip/(.*)/n/(.*) %{ENV:BASE}/vfm-admin/vfm-downloader.php?zip=$1&n=$2 [L] </IfModule> </Directory> <Directory "D:/Develop/youarebitch/cloud/cloud"> <Files "*.php"> SetHandler none SetHandler default-handler Options -ExecCGI RemoveHandler .php </Files> <IfModule mod_php5.c> php_flag engine off </IfModule> Order Deny,Allow Deny from all </Directory>
解决办法也很简单,根目录下,将配置修改为如下。禁用.htaccess
中所有可用的命令!
1 2 3 4 5 6 # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None
参考文件上传漏洞之.htaccess_欧阳大仙萌萌哒的博客-CSDN博客_htaccess文件上传漏洞