从零开始的白帽子学习--stage1--常见漏洞类型介绍--part3--不安全的文件上传

  • Q:什么是文件上传漏洞
  • A:文件上传功能在web应用系统很常见,好比不少网站注册的时候须要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 好比是不是指定的类型、后缀名、大小等等,而后将其按照设计的格式进行重命名后存储在指定的目录。 若是说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,好比一句话木马,从而致使后台服务器被webshell。因此,在设计文件上传功能时,必定要对传进来的文件进行严格的安全考虑。好比:验证文件类型、后缀名、大小,验证文件的上传方式,对文件进行必定复杂的重命名,不要暴露文件上传后的路径等。
  • Q:文件上传时校验的姿式有哪些
  1. 客户端JavaScript校验客户端校验通常只检查文件的后缀名,有白名单和黑名单
  2. 服务端校验。服务端校验又有多种校验方式。如:文件头中content-type校验,文件内容头校验,后缀黑白名单检查,自定义正则表达式检查等
  3. WAF检查
  • Q:绕过校验的姿式有哪些php

  1. 对于客户端校验来讲,禁止浏览器使用js
  2. 对于服务端校验,大部分状况下经过burp抓包便可绕过。检查啥改啥就能够了
  3. 对于WAF检查,略
  • 靶场实验

这里以pikachu靶场为例子来演示文件上传漏洞web

此时,咱们能够看到这里只支持上传图片文件,不容许上传其余类型的文件,那么咱们先上传一下php文件尝试一下(文件内包含一句话木马),而后根据提示来肯定他是什么类型的校验方式。正则表达式

根据网站的报错提示,查看相应的元素代码以后发现这是一个js的弹窗。那么咱们只须要禁用js就能够绕开这个检测。在禁用js刷新页面以后,发现1.php文件就能够正常上传了shell

切换一下校验的种类,切换到服务端校验,选择1.php文件,而后上传。在上传时使用burp抓包浏览器

 

 

网站提示上传的格式不对。而后咱们上传一个正常的,能经过网站检测的文件,并使用burp抓包,对比先后两次抓包数据的区别。这里经过对比以后发现content-type有变化。安全

咱们再次尝试上传1.php文件,并在抓包后修改 content-type image/jpeg。而后将修改以后的数据包发送到burp的repeater中,模拟上传,看可否经过服务器验证服务器

 

ok了,模拟上传成功了。那么就说明这样绕过检测的姿式是正确的。网站

因为本人学识有限,暂时就不实验其余的检测方式和检测方式,待往后补充spa

相关文章
相关标签/搜索