打开环境,是个文件上传题,试着上传一个php的文件,结果提示后缀不能有ph。
说明php和phtml都不能用了。再试试图片,可以上传,就上传一个php的post木马,结果显示:
说明php的木马不行,就试试js的图片木马:
GIF89a
上传成功,访问上传路径,但发现并未被解析。
此时就想到.user.ini和.htaccess
但.user.ini试了还是不行,那就试试.htaccess
.htaccess是什么 ?
.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
.htaccess使用条件:
.htaccess只适用apache ①、Allow Override All ②、LoadModule rewrite_module modules/mod_rewrite.so #rewrite模块为开启状态
.htaccess内容:
第一种:
AddType application/x-httpd-php .jpg
将所有后缀为.jpg的文件作为php文件解析
第二种:
<FilesMatch “BaiZe”>
setHandler application/x-httpd-phpBZ
将所有文件名包含BaiZe的文件作为php文件解析
所以此题就建一个内容为AddType application/x-httpd-php .jpg的.htaccess文件,注意直接上传是不行的要修改Content-Type: 为image/jpeg
然后再上传木马链接在文件路径就能在根目录下找到flag