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

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

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

此时,我们可以看到这里只支持上传图片文件,不允许上传其他类型的文件,那么我们先上传一下php文件尝试一下(文件内包含一句话木马),然后根据提示来确定他是什么类型的校验方式。

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

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

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

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

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

由于本人学识有限,暂时就不实验其他的检测方式和检测方式,待日后补充

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

  1. struts2视频学习笔记 15-17 (访问或添加request属性,文件上传)

    课时15 访问或添加request/session/application属性 1.简单说 page指当前页面.在一个jsp页面里有效 2.request 指从http请求到服务器处理结束,返回响应的 ...

  2. java struts2入门学习实例--使用struts2快速实现多个文件上传

    一.错误提示信息配置 昨天说到更改默认错误配置信息,我测试很多遍,一直都不对.下面贴出来,待以后有好方法了再补充吧. 首先新建一个properties文件,这里命名为testupload.proper ...

  3. Spring 4 官方文档学习(十一)Web MVC 框架之multipart(文件上传)支持

    http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multipart 1.简 ...

  4. web安全之文件上传漏洞攻击与防范方法

    一. 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行.这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等.这种攻击方式是最为直接和有效 ...

  5. WEB安全性测试之文件上传漏洞

    1.漏洞描述:文件上传漏洞,是指可以利用WEB上传一些特定的文件包含特定代码如(<?php phpnfo;?> 可以用于读取服务器配置信息.上传成功后可以点击) 上传漏洞是指用户上传了一个 ...

  6. 7.CSRF攻击和文件上传漏洞攻击

    一.CSRF攻击及防范措施 1.概念 请求来源于其他网站,请求并不是用户的意愿,而是伪造的请求,诱导用户发起的请求 2.场景 攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以 ...

  7. CVE-2018-20129:DedeCMS V5.7 SP2前台文件上传漏洞

    一.漏洞摘要 漏洞名称: DedeCMS V5.7 SP2前台文件上传漏洞上报日期: 2018-12-11漏洞发现者: 陈灿华产品首页: http://www.dedecms.com/软件链接: ht ...

  8. 1.5 webshell文件上传漏洞分析溯源(1~4)

    webshell文件上传漏洞分析溯源(第一题) 我们先来看基础页面: 先上传1.php ---->   ,好吧意料之中 上传1.png  ---->   我们查看页面元素 -----> ...

  9. web文件上传漏洞

    什么是文件上传漏洞? 指利用系统的对文件上传部分的控制不足或处理缺陷,上传可执行的动态脚本文件/webShell进行攻击行为. 原因 对于上传文件的后缀名(扩展名)没有做较为严格的限制 对于上传文件的 ...

随机推荐

  1. WHU个人赛第二场C——前缀和&&后缀和

    题目 链接 题意:给定 $n$ 个整数,去掉其中一个数使得剩下数字的gcd最大,求最大的gcd.($3 \leq n \leq 100000$) 分析 枚举每一个位置,显然每次枚举都计算所有数的gcd ...

  2. 洛谷P1233 木棍加工【单调栈】

    题目:https://www.luogu.org/problemnew/show/P1233 题意: 有n根木棍,每根木棍有长度和宽度. 现在要求按某种顺序加工木棍,如果前一根木棍的长度和宽度都大于现 ...

  3. qt 防止应用重复启动

    QApplication a(argc, argv); QSharedMemory singleton(a.applicationName()); if(!singleton.create(1)) { ...

  4. 人脸检测之Haar-like,Adaboost,级联(cascade)

    最新版本整理完毕,见: http://face2ai.com/MachineLearning-Haar-like-Adaboost-cascade 0:写在前面的话           写在前面的牢骚 ...

  5. eclipse中不能找到dubbo.xsd

    使用dubbo时遇到问题: org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'htt ...

  6. Mac Appium环境搭建

    安装brew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 安装java brew install ...

  7. Contos 安装Tomcat

    # 下载安装包 wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8. ...

  8. hdu6568 Math (概率dp)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6568 题意: 在$0$到$L$的坐标轴运输货物,在每个整数点可能丢失货物,丢失概率为$p$,丢失后可 ...

  9. Nginx访问非常慢

    由于域名绑定服务器IP,而服务器上部署了多个应用,想都通过域名访问,故弄了个Nginx转发. 加了Nginx以后,服务访问明显卡顿. 查看配置: location / { proxy_pass htt ...

  10. linux上安装openssl的步骤

    需要准备  openssl 稳定版文件: 从openssl官网下载最新的稳定版本,https://www.openssl.org/source/ 当前的稳定版是 openssl-fips-2.0.16 ...