一、什么是 .htaccess 文件
1、官方解释:
.htaccess文件主要用于控制Web服务器(如Apache)的配置,使得无需修改主服务器配置文件即可对特定目录进行访问控制和功能设置。
2、通俗解释:
现有一份 写有恶意代码的 .php文件,若想绕过源代码中的黑名单,可以将后缀名改为黑名单后缀名之外的后缀名,如常见的:.jpg/.png/.gif 等等。但是这样操作会产生新的问题,如何让我们的Apache或其他的Web服务器去解析.jpg文件中的php代码,在这种情况下,可以先上传.htaccess文件,写有代码--让Web服务器能够解析.jpg中的php代码,从而达到上传恶意代码的目的。
二、通关思路
1、首先进行代码审计,观察到相较于Pass03,Pass04的黑名单增加了更多的限制,如php3,php5,phtml等后缀名也被加入进了黑名单中。
2、但我们发现.htaccess没有被加入黑名单中,这样就可以利用.htaccess文件来进行绕过。首先创建.htaccess文件,文件名就叫做 .htaccess。如图所示:
并在文件中写入代码:意思为让 Apache能够解析所有后缀名文件中的php代码。
3、接着修改.php文件的后缀名,将 test.php 改为 test.jpg,进行上传。
上传成功。
4、在新标签页中打开,发现Apache已经自动解析了 .jpg 文件中的 php 代码。
---通关。