服务器端检测上传(简单文件上传)

简单文件上传

文件上传(File Upload)是大部分Web应用都具备的功能,例如用户上传附件、修改头像、分享图片/视频等。正常的文件一般是文档、图片、视频等,Web应用收集之后放入后台存储,需要的时候再调用出来返回。
但如果代码写的不严谨,没有对上传的文件的文件名、文件类型等等进行严格限制的话,攻击者如果成功上传了恶意脚本文件就可以达到控制网站等目的。

文件上传的类型:

  1. 客户端检测绕过(js检测):
    利用firebug禁用js或使用burp代理工具可轻易突破。
  2. 服务端MIME检测绕过(Content-Type检测):
    使用burp代理,修改Content-Type的参数
  3. 服务端扩展名检测绕过:
    文件名大小写绕过,例如Php,AsP等类似的文件名
    后缀名字双写嵌套,例如pphphp,asaspp等
    可以利用系统会对一些特殊文件名做默认修改的系统特性绕过
    可以利用asp程序中的漏洞,使用截断字符绕过
    可以利用不再黑名单列表中却能够成功执行的同义后缀名绕过黑名单的限制
    可以利用解析/包含漏洞配合上传一个代码注入过的白名单文件绕过
  4. 服务端内容检测绕过:
    4.1文件内容头检测
    一些上传的地方会检测文件内容头判断是不是允许上传的文件类型,不同类型的文件文件头也是不一样的;

1.文件上传漏洞介绍:
如果文件内容检测设置的比较严格,那么上传攻击将变得十分困难,本实验就是绕过前端检测来上传文件;

2.实验目的:
通过本实验了解服务器端检测上传常见攻击手段;

3.实验过程:
打开phpstudy,进入文件上传靶场
在这里插入图片描述

3.1.提前准备好 一句话木马 php文件

<?php @eval($_POST['zsq']) ?>

在这里插入图片描述
然后打开靶场上传这个文件 会出现如图
在这里插入图片描述
在这里插入图片描述接着 在浏览器中输入地址如图

复制这一行地址 打开中国蚁剑
添加数据 输入密码 zsq 如图
在这里插入图片描述
然后双击 可以看到成功上传
在这里插入图片描述
黑名单检测

黑名单的安全性比白名单的安全性低很多,攻击首发自然也比白的名单多,一般有专门的blacklist文件,里面包含常见的危险脚本文件

1、文件名大小写绕过
用像ASP,PHP之类的文件名绕过黑名单检测

2、名单列表绕过
用黑名单里面没有的名单进行攻击,比如黑名单里没有asa或cer之类

3、特殊文件名绕过
比如发送的http包里把文件名改成test.asp. 或者test.asp_(下划线为空格),这种命名方式。在window 系统里是不允许的,所以需要在burp之类的抓包工具里修改,然后绕过验证后,会被window系统自动去掉后面的点和空格,这个只能在window系统中
4、0x00阶段绕过

白名单检测

白名单相对来说比黑名单安全一些,但也不见得就绝对安全了

1、0x00截断绕过
用像test.asp.jpg的方式进行阶段,属于白名单文件,再利用服务端代码的检测逻辑漏洞进行攻击

2、解析漏洞

总结:
大部分的网站和应用系统都有上传功能,而程序员在开发任意文件上传功能时,并未考虑文件格式后缀的合法性校验或者是否只在前端通过js进行后缀检验。这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(jsp、asp、php、aspx文件后缀)到服务器上,从而访问这些恶意脚本中包含的恶意代码,进行动态解析最终达到执行恶意代码的效果,进一步影响服务器安全。系统开发人员应有较强的安全意识,尤其是采用PHP语言开发系统。在系统开发阶段应充分考虑系统的安全性。

对文件上传漏洞来说,最好能在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。客户端的检查虽然对技术较好的攻击者来说可以借助工具绕过,但是这也可以阻挡一些基本的试探。服务器端的检查最好使用白名单过滤的方法,这样能防止大小写等方式的绕过,同时还需对%00截断符进行检测,对HTTP包头的content-type也和上传文件的大小也需要进行检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少说话多办事zsq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值