文件上传:覆盖.htaccess绕过+代码审计
.htaccess的基本作用
- 控制文件解析 //重要
- URL重写、自定义错误页面
- MIME类型配置
- 访问权限控制等
- 主要体现在伪静态的应用
- 图片防盗链
- 自定义404错误页面
- 阻止/允许特定IP/IP段
- 目录浏览与主页
- 禁止访问指定文件类型
- 文件密码保护
避免使用.htaccess文件有两个主要原因:
1)性能:如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录查找.htaccess文件,无论是否找到,启用都会导致性能下降。另外,对每一个请求,都需要读取一次.htaccess文件,还有Apache必须在所有上级的目录中查找.htaccess文件,以使所有有效的指令都起作用,例如:
如果请求/www/htdocs/example中的页面,Apache必须查找以下文件:
/.htaccess /www/.htaccess /www/htdocs/.htaccess /www/htdocs/example/.htaccess
2)安全:这样会允许用户自己修改服务器的配置,这会导致某些意想不到的修改。
3)作用域:当前目录
漏洞产生的原因
.htaccess文件(将filename.type文件按照说明的文件格式进行解析)
与等价后缀名原理相同,都是指定解析方法去解析指定文件
<FilesMatch "filename.type">
SetHandler application/x-httpd-php
</FilesMatch>
防御
随机为上传文件进行重命名
原理:更改了“.htaccess”文件名,apache只认识“.htaccess”文件,如果随机重命名,造成不识别该配置文件,那么文件中所指定的文件识别方式也将失效
操作过程
1)上传“.htaccess”文件
2)上传内容为一句话木马的jpg文件
3)菜刀链接


浙公网安备 33010602011771号