Pass-04
Pass-04
第四关我们看一下提示:
以下文件的后缀名被加入黑名单,所以,我们依旧选择另一种方式去绕过
在这种多情况的限制下,我们可以写一个".htaccess"文件
黑名单拒绝了几乎所有有问题的后缀名,除了.htaccess
这样会把所有传入的文件当做php来进行处理。
“.htaccess”:
原理:
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
一般情况下,不应该使用.htaccess文件,除非你对主配置文件没有访问权限。有一种很常见的误解,认为用户认证只能通过.htaccess文件实现,其实并不是这样,把用户认证写在主配置文件中是完全可行的,而且是一种很好的方法。
.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有root权限的情况下。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在同一个机器上运行了多个用户站点,而又希望用户可以自己改变配置的情况下。
虽然如此,一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的<Directory>段中,而且更高效。
避免使用.htaccess文件有两个主要原因。
首先是性能。如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到,启用.htaccess都会导致性能的下降。另外,对每一个请求,都需要读取一次.htaccess文件。
我们需要用到的是:
第一步:
上传一个.htaccess文件
接下来所有的文件都会被当做php来进行处理。
上传.htaccess文件
第二步:
我们创建一个.png格式的文件,使用notepad++打开
写入下列内容
紧接着上传shell.png这个文件
紧接着就上传成功!
我们使用蚁剑进行连接,测试:
连接成功!
注意:在这里 ,我们在.htaccess文件里面写的文件名要和接下来传入的文件名保持一致(也就是:shell.png)