什么是文件上传漏洞

文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。

常见类型:

  • 文件包含绕过
  • 前端限制绕过
  • 文件扩展名绕过
  • ashx上传绕过
  • 特殊文件名绕过
  • 00截断绕过上传
  • htaccess解析漏洞
  • 突破MIME限制上传
  • 解析漏洞绕过
  • 条件竞争绕过
  • CONTENT-LENGTH绕过

一、客户端check

先上传个php文件,发现被过滤了,

尝试上传一个jpg文件,上传成功



这里可以利用bp抓包修改头和类型上传php文件,修改如下,然后放行

可以看到上传成功

源码如下:

二、MIME type

上传一个php文件,发现只能上传以下三种图片



上传这三种类型的文件,即可上传成功



有一种方法,上传php文件利用bp抓包,修改文件类型,即:

Content-Type: image/jpeg



上传成功

三、getimagesize()

这个代码可以获取图片宽高等参数,如果不是真实的图片,则没有信息

上传一个图片

实际情况下,我们可以利用windows命令,制作一个图片马,在这个文件夹下打开命令控制面板



输入:copy 1.php+12.jpg 123.jpg

这样就可以把内容输入到一起,成为一个图片马,然后去上传,即可成功

pikachu文件上传_2024-11-26的更多相关文章

  1. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  2. 11.struts2文件上传

    文件上传 1.上传单个文件 2.上传多个文件   1.上传单个文件 实现步骤: (1)导入一个Jar包:commons-io-1.3.2.jar.只所以要导入这个Jar包,是因为要用到一个工具类Fil ...

  3. 补习系列(11)-springboot 文件上传原理

    目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...

  4. 文件上传漏洞(pikachu)

    文件上传漏洞 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像,附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断,比如是否是指定的类型.后缀名.大小等等,然后将其按照设 ...

  5. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  6. JAVA中使用FTPClient实现文件上传下载实例代码

    一.上传文件 原理就不介绍了,大家直接看代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  7. [转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例

    原文地址:http://www.stepday.com/topic/?459 作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的. ...

  8. (转载)JavaWeb学习总结(五十)——文件上传和下载

    源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...

  9. PHP+ExtJS 文件上传示例

    xtJS 4 有一个非常方便的文件上传组件,可以用来将文件上传到服务器.本文PHP教程UncleToo将介绍使用PHP和ExtJS实现文件上传功能. 首先,创建文件上传组件Ext.form.Panel ...

  10. 几款极好的 JavaScript 文件上传插件

    文件上传功能作为网页重要的组成部分,几乎无处不在,从简单的单个文件上传到复杂的批量上传.拖放上传,需要开发者花费大量的时间和精力去处理,以期实现好用的上传功能.这篇文章向大家推荐几款很棒的 JavaS ...

随机推荐

  1. chatGPT能做职业规划?看完之后发现3年软测白做了!

    "每天都是重复.单调的工作,收入不理想,想跳槽无力,学习又没有动力和方向,不知道未来的发展在哪里,甚至想转行·····" 做测试久了,很多人都有诸如此类的疑惑,不想一直停留在测试需 ...

  2. namenode rpc 请求队列调优

    当 datanode 上新写完一个块,默认会立即汇报给 namenode.在一个大规模 Hadoop 集群上,每时每刻都在写数据,datanode 上随时都会有写完数据块然后汇报给 namenode ...

  3. SCHED_RR和SCHED_FIFO的区别

    SCHED_RR和SCHED_FIFO是Linux内核中用来调度进程的两种调度策略,它们有以下几点区别: 调度方式:SCHED_RR采用轮转调度方式,而SCHED_FIFO则采用先进先出调度方式. 优 ...

  4. 利用cv2.dilate对图像进行膨胀

    cv2.getStructuringElement(cv2.MORPH_RECT, (7,7))介绍,请看这个博客.我简要说一下cv2.getStructuringElement,可用于构造一个特定大 ...

  5. web服务器静态资源下载

    1. 使用 Beego 实现静态文件下载 Beego 是一个强大的 Go Web 框架,提供了处理静态文件的功能.通过简单的配置,我们可以将本地文件夹作为静态资源目录,并为用户提供下载链接. 1.1 ...

  6. 凌晨 12 点突发 istio 生产事故!一顿操作猛如虎解决了

    事故起因 业务上新集群,本来以为"洒洒水",11 点切,12 点就能在家睡觉了.流量切过来后,在验证过程中,发现网页能够正常打开,在登录时返回了 502,当场懵逼.在相关的容器日志 ...

  7. 快速部署sqlserver AlwaysOn集群

    点击查看代码 丐版sqlserver集群 之前试过docker的,k8s的,然后发现,还是最朴素的是最简单的,希望有大佬能够汉化,他妈的,那些英文看得人要发癫啊. 前置准备,参照丐版pxc集群: ht ...

  8. ToDesk云电脑堪比万元PC?黑悟空、老头环及战锤40K实测体验!

    2009年,OnLive首次在旧金山游戏开发者大会推出"云游戏"的概念,但受限于当时的网络宽带技术,云游戏并不被十分看好.现如今,5G时代已然到来,数据通量和画质传输给予云游戏崛起 ...

  9. Web渗透03_扫描技术

    前言 在获取目标主机的各类信息时,有一些综合工具可以一键扫描完成,大大方便了测试效率.但扫描结果并非100%的正确,需要我们的判断. namp NMAP(Network Mapper)是一款开放源代码 ...

  10. Power BI使用技巧

    一.筛选器相关 1.筛选器的可选择范围不正确 在Power BI中,维度表和事实表之间的数据建模非常重要,我们在进行关系的建立的时候,PBI Desktop会根据我们的数据情况自动选择两个表之间的基数 ...