原理
文件上传并不是一个漏洞,而是web程序中常见的一个功能,经常听到的文件上传漏洞成因就是程序员在开发的时候由于某种原因对前端页面中用户上传的的文件没有进行安全性检查或者是检查不到位,导致能够上传任意文件,这时候上传一个带有恶意马的文件到服务器,就会形成文件上传漏洞。
条件
1.必须能够上传文件 。
2.文件能被服务端进行解析。
3.客户端能够访问到文件。
利用
在文件内写入一句话木马,然后上传到网站根目录进行访问拿到webshell。
常用的一句话木马:<?php eval($_REQUEST['id']?> eval函数表示将传入的参数作为php代码来执行
绕过
通常网站是不允许直接上传.php等后缀的文件,那么我们就需要各种绕过黑名单或检测机制,下面是几种常见的绕过方式:
- 抓包删除相关js检测代码
- 抓包修改文件后缀名
- 尝试上传.phtml php1 php2 php3 php4等文件后缀,php5.3版本以下是默认支持解析的,高版本需要手动更改php配置文件。
- .htaccess文件绕过
- 大小写绕过
- 双写绕过
- 后缀名加空格或加.空格或..
- 00截断
- 图片马绕过
- 条件竞争
防护
1.客户端检测:前端js代码检测,但是意义不大
2.服务端设置黑白名单,检查文件后缀、类型、针对上传文件更改后缀等。
以上就是文件上传的相关内容,是否能够帮助到你呢?内容仅供参考,欢迎各位同学多多指教~