目录
- 原理:文件上传功能缺乏严格的验证和过滤,攻击者可以越过其本身权限向服务器上传可执行的动态脚本(木马,病毒,恶意脚本等)。
- 危害:黑客会通过上传的病毒和木马从而获得系统的控制权,或者上传的钓鱼图片会被用与钓鱼和欺诈
- 绕过姿势
-
前端验证:(前端检测或js检测)
- 找到合法的拓展名然后上传burp抓包修改后缀名和内容为一句话木马,然后发包就能看到上传路径
- 方法
- 用shell利用工具(菜刀、蚁剑)连接
- 执行命令
- 绕过方法:通过F12修改文件后缀名完成绕过,或将木马修改后缀名后上传,通过改包修改上传。若是JS脚本检测,在浏览器客户端禁用JS。
- eg:准备一句话木马:<?php @eval($_POST['shell']); ?> 并且修改后缀名为jpg,上传操作,通过burpsuit抓包改包,使其后缀名修改回php。
-
后端校验:检查Content-Type,修改mime类型
- 绕过方法:使用工具(例burpsuite)强行篡改Header就可以,将Content-Type: application/php改为其他web程序允许的类型(常见的 image/png、image/jpeg)
- 常见类型
- .user.ini 配置文件和.htaccess 一样是目录的配置文件,.user.ini 就是用户自定义的一个 php.ini,通常用php.ini 是 php 的一个全局配置文件,对整个 web 服务起作用;而.user.ini这个文件来构造后门和隐藏后门。
- .htaccess解析
- .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以实现:网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
- MIME绕过
- 利用Burp抓包,将报文中的Content-Type改成允许的类型
- Content-Type: image/gif(gif图像)
- Content-Type: image/jpg(jpg图像)
- Content-Type: image/png(png图像)
- 确保浏览器能够正确识别并处理服务器返回的各种文件类型。
- 示例: 使用AddType指令,如AddType application/x-httpd-php .jpeg .png,一般情况下会用来指定正确的静态资源类型。
- 利用Burp抓包,将报文中的Content-Type改成允许的类型