文件上传

文件上传

概述

因为业务功能需求,很多web站点都有文件上传的接口,如:

  1. 注册上传头像(如jpg,png,gif等)
  2. 上传文件附件

文件上传本身没有问题关键在于文件上传后服务器怎么处理、解释文件。

要能利用有几个要素

  1. 文件能被访问(可配合php文件解析漏洞)
  2. 文件能被当作脚本执行

上传和绕过

客户端
  • javascript校验(一般只校验后缀名)
服务端
  • 文件头content-type字段校验(image/gif)
  • 文件内容头校验(GIF89a)
  • 后缀名黑名单校验
  • 后缀名白名单校验

PUT方法

当WebDAV开启PUT,MOVE,COPY,DELETE方法时,攻击者就可以向服务器上传危险脚本文件。使用OPTIONS探测服务器支持的http方法,如果支持PUT,就进行上传脚本文件,在通过MOVE或COPY方法改名。当开启DELETE时还可以删除文件。

客户端校验

JS通过验证上传文件的扩展名来判定是否符合上传行为

通过修改js代码绕过验证,或之间通过burp抓包改字段,绕过js验证

服务器端校验

文件头content-type字段校验

绕过方式

使用Burp截取上传数据包,修改Content-Type的值,改为image/gif即可成功绕过上传webshell

服务端文件扩展名检测

检测扩展名发生在存储文件之前,然后保存,也就是说保存的文件扩展名一定,只能通过web容器等漏洞来欺骗http服务器,让他执行这个文件,即使他的扩展名不应当被执行。

  1. Apache的.htaccess文件上传解析漏洞
  2. IIS6.0解析漏洞:(Windows2003)目录路径检测解析绕过上传漏洞、分号解析、畸形文件名解析
  3. ngnix解析漏洞

参考

http://thief.one/2016/09/21/服务器解析漏洞/

https://paper.seebug.org/560/#_17

https://www.secpulse.com/archives/78800.html

白帽子讲web安全

黑白名单绕过

  1. 文件名大小写绕过:用像 AsP,pHp 之类的文件名绕过黑名单检测
  2. 名单列表绕过:用黑名单里没有的名单进行攻击,比如黑名单里没有 asa 或 cer 之类

白名单绕过

  1. 0x00 截断绕过:用像 test.asp%00.jpg 的方式进行截断。

如果上传是程序员自己写的可以尝试上面的,如果是编辑器的搜一下历史漏洞。

防御

  1. 文件上传的目录不可执行
  2. 白名单文件类型检测

转载于:https://www.cnblogs.com/wan-xiang/p/11563709.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值