文件上传 一、原理 在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。 二、高危触发点 相册、头像上传 视频、照片分享 附件上传(论坛发帖、邮箱) 文件管理器 三、常见的文件上传检测及利用 1、没有任何限制和过滤 直接上传webshell文件 2、客户端 javascript检测 只会检测上传文件的后缀名 如何绕过? (1)禁用浏览器js功能 (2)先把所要上传的文件修改成允许上传的文件类型,通过burp抓包进行重命名进行绕过。 3、服务器 MIME类型检测 ----content-type 服务器对用户上传文件的文件类型进行检测,不允许上传的文件类型会被禁止。 比如,上传正常图片可以通过,但是把图片的content-type修改为其他值application/octet-stream之后上传失败,说明存在MIME类型检测 怎么绕过? 把所要上传文件的content-type,修改为允许上传的文件的文件类型。
文件扩展名检测 通过黑白名单对上传的扩展名进行过滤和限制 黑名单(php,asp,jsp) (1)大小写绕过; pHp ASp (2)名单列表绕过;php可以换成.phtml/.php3/.php5 asp改成aspx (3)特殊文件名;通过burp抓包把文件名改成xx.php.或者xx.php_(下划线代表空格)或者 .空格.的方式 。这种命名方式在windows系统是不允许的,只能在burp里修改。当绕过之后,windows会自动去掉后面的.和_ linux下没有这种特性 ::$DATA windows下的NTFS的数据流格式 (4)