文件上传
[TOC] 一篇很详细的参考博客
原理
- 在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。
- 文件上传漏洞对Web应用来说是一种非常严重的漏洞。一般情况下,Web应用都会允许用户上传一些文件,如头像、附件等信息,如果Web应用没有对用户上传的文件进行有效的检查过滤,那么恶意用户就会上传一句话木马等Webshell,从而达到控制Web网站的目的。
- 存在文件上传功能的地方都有可能存在文件上传漏洞,比如相册、头像上传,视频、照片分享。论坛发帖和邮箱等可以上传附件的地方也是上传漏阔的高危地带,另外像文件管理器这样的功能也有可能被攻击者所利用。
前端检测
个人理解就是因为它是在前端进行检测,检测过了就可以传到服务器,所以只要把前端的检测一绕过就文件上传了
后端检测_后缀名检测漏洞
就是会对文件后缀名进行检测,所以文件上传很多都是上传一个图片马和.htaccess,除非这里可以直接利用大小写或者php4这种东西绕过
这个会配合.htaccess使用,上传一个图片马,然后上传一个.htaccess文件,这样就可以把图片马解析成php
黑白名单的内容了解即可
- 黑名单
- 白名单
后端检测_00截断
- 这个还不是很懂,感觉用处也不大
后端检测_MIME检测
其实就是改content-type字段
后端检测_文件头检测漏洞
比如常见的GIF89a,而且这个不能在png里面加,要在burp里面加
- 上传图片马 copy 1.png/b + sh.php/a sh.png ,但是发现这个不好用
- 这里不知道为什么被吞了一个<,导致无法正常解析.php文件
- 还是用magic number顺手直接上传了图片马
解析漏洞
.htaccess
- 一般会配合图片马然后打白名单
<FilesMatch "shell.png">
SetHandler application/x-httpd-php
</FilesMatch>
Apache
- apache会从右往左解析后缀
IIS6.0解析漏洞
- 这个不是很常见见到了再说
IIS7.0 | IIS7.5 | Nginx的解析漏洞
- 没见过
<?过滤
猜测是对一句话木马的<?过滤,那么我们修改为js马
<script language="php">eval($_POST['cmd']);</script>