0
点赞
收藏
分享

微信扫一扫

文件上传原理

一ke大白菜 2022-04-24 阅读 72

目录

 一、什么是文件上传漏洞

二、漏洞产生的原因 

三、常见校验上传文件的方法

四、绕过方法

五、文件防御



 

 

 

(图片来源于网络)

 一、什么是文件上传漏洞

二、漏洞产生的原因 

三、常见校验上传文件的方法

通常情况下,如果白名单能满足需求,就尽量使用白名单,因为白名单更加的安全,而黑名单容易被意想不到的方法进行绕过。

  • HTTP协议规定了上传资源的时候会在请求头Header中添加一项MIMETYPE,即Content-Type,用来标识上传资源内容的类型,这个动作一般由浏览器来完成,常见的MIMETYPE类型如下:

  • text/plain,纯文本
  • text/html,HTML文档
  • text/javascript,JS代码
  • application/x-www-urlencoded,POST方法提交的表单
  • application/msword,MicrosoftWord文件
  • application/变成语言,该种编程语言的代码
  • application/pdf,PDF文档
  • application/octet-stream,二进制数据
  • application/xhtml+xml,XHTML文档
  • image/gif+jpeg+png,各种类型的图片
  • vedio/mpeg,动画
  • multipart/form-data,POST提交时伴随文件上传的表单
  • 后端在处理上传请求的时候,可以获取header种的Content-Type类型,来判断上传的文件是否符合要求。当然这种方式也很容易被绕过,使用BP工具,拦截浏览器请求,修改Content-Type类型就行了,虽然这种方法不保险,但是加上一层防护也还是必

  • JPG,JPE,JPEG对应FF D8 FF E0 00 ”JPGGraphicFile”
  • GIF对应47 49 46 38 39 61 ”GIF89A”
  • PNG对应89 50 4E 47
  • ZIP对应50 4B 03 04 ”ZipCompressed”
  • RAR对应52 61 72 21
  • DOC/XLS/PPT对应D0 CF 11 E0 A1 B1 1A E1
  • doc;.xls;.xlt;.ppt;.apr,”MSCompoundDocumentv1orLotusApproachAPRfile”(D0CF11E0A1B11AE1)

后端可以检查文件头的前几位字节,就可以判断是否为合法的文件类型,但是这种方式也不是完全保险的,并不能替代检查文件后缀的方式,因为黑客完全可以构造一个脚本文件,其文件头伪装成正常的上传文件类型。

  • 一次渲染(代码注入)
  • 二次渲染 

 四、绕过方法

1.前端绕过

  • 通过浏览器F12很简单的修改文件后缀名就可以完成绕过检查。
  • 木马修改后缀名后上传,通过改包工具修改上传。
  • 如果是JS脚本检测,在本地浏览器客户端禁用JS即可。可使用火狐浏览器的NoScript插件、IE中禁用掉JS等方式实现绕过。

2. 校验请求头content-type字段绕过

3. 文件头检查文件

4.二次渲染绕过

5.文件加载检测:

  • 后缀名检测

    后缀黑名单检测:找查blacklist(黑名单列表)的漏网之鱼,例如

    • 大小写:如果检测的时候不忽略大小写,那么可以改变后缀名的大小写绕过

    • 扩展名:列表中如果忽略了某些后缀

    1.      能被解析的文件扩展名列表:

    2.      jsp jspx jspf

    3.     asp asa cer aspx

    4.     php php php3 php4 pht

    5.     exe exee

  • 后缀白名单检测:白名单检测还是会比黑名单强一点,常见的绕过方法有%00截断,还有服务器的解析漏洞

  • %00截断漏洞:如果存在这类漏洞,那么后缀名的检测都可以绕过,此时我们可以如下命名一个上传文件

test.php%00.jpg

  • 解析漏洞:这类漏洞是本身服务器的中间件产生的,例如apache,nginx都被爆出过存在解析漏洞,存在解析漏洞的话,上传的安全性几乎就完全失去了,下面再详细分析。文件上传漏洞 )

五、文件防御

文件上传漏洞防御

  • 首先,上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径。
  • 其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法得到Web容器解释这个脚本,那么也不能称之为漏洞。
  • 最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。

防范文件上传漏洞常见的几种方法:

作者还是小白菜鸟阶段,文章总结有些不全,望见解,后续会逐渐完善 

更多知识点详情请见: 

文件上传漏洞 (上传知识点、题型总结大全-upload靶场全解)_Fasthand_的博客-CSDN博客_uaf漏洞

举报

相关推荐

0 条评论