文件上传

[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>