Unsafe Fileupload

1.client check

标题叫客户端check,文件校验应该是在客户端进行的。

可以先把一句话木马改成图片格式,然后再抓包修改回PHP格式。

一句话木马内容:

抓包修改:

可以看到上传成功,并且给出了路径。

根据给出的路径用中国蚁剑来连接:

可以看到成功连接并且爆出了目录:

2.MIME type

按照刚才的步骤抓包

可以看到HTTP请求包中的Content-Type,MIME检测就是检测它的值判断文件类型。

PHP文件的Content-Type值是 application/octet-stream

上传会发现上传失败:

把 Content-Type 值修改成 image/png即可通过服务端校验,成功上传文件。

成功连接:

3.getimagesize

这里的getimagesize函数是根据文件的文件头来判断是否为图片文件的,如果是图片就成功返回一个数组,失败则返回 FALSE。

这里还会校验后缀名,目前暂无好的绕过思路。

这里配合pikachu的文件包含漏洞利用。

首先上传带有图片文件头(这里是GIF89a)的一句话木马,注意后缀名是图片格式的:

然后在文件包含那里把file改成一句话木马的路径

http://192.168.171.30/pikachu/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2022/03/21/6906176238508fe5bb2295885217.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

这里文件包含会把文件当php解析,所以即使后缀名是jpg也没关系。

蚁剑连接成功。

Pikachu漏洞靶场 Unsafe Fileupload(文件上传)的更多相关文章

  1. 对FileUpload文件上传控件的一些使用方法说明

    //创建时间:2014-03-12 //创建人:幽林孤狼 //说明:FileUpload文件上传控件使用说明(只是部分)已共享学习为主 //可以上传图片,txt文档.doc,wps,还有音频文件,视屏 ...

  2. FileUpload文件上传控件

    1.FileUpload控件的主要功能是向指定目录上传文件.FileUpload控件不会自动上传控件,而需要设置相关的事件处理程序,然后在程序中实现文件上传. 2.FileUpload控件常见的属性 ...

  3. ASP.NET中的FileUpload文件上传控件的使用

    本篇文章教大家如何将客户端的图片或者文件上传到服务器: 无论是上传图片(.jpg .png .gif等等) 文档(word excel ppt 等等). 第一步:放入以下三个控件 Image控件,Fi ...

  4. PHP漏洞全解(九)-文件上传漏洞

    本文主要介绍针对PHP网站文件上传漏洞.由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 P ...

  5. apache fileupload 文件上传,及文件进度设置获取

    文件上传action处理: boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) ...

  6. Commons FileUpload文件上传组件

    Java实现的文件上传组件有好几种,其中最为“官方”的要数Apache Commons库中的FileUpload了吧. 页面 <form method="POST" enct ...

  7. PHP代码审计3-SQL注入,CSRF,动态函数执行与匿名函数执行,unserialize 反序列化漏洞,变量覆盖,文件管理,文件上传

    SQL注入 审计语句 [输入参数] SELECT,DELETE,UPDATE,INSERT 防御 转义: 1.开启gpc:判断解析用户提示的数据 2.mysql_real_escape_string( ...

  8. web漏洞-命令执行、文件上传、XSS

    一.命令执行   1:什么是命令执行? 命令执行漏洞是指攻击者可以随意执行系统命令.属于高危漏洞之一任何脚本语言都可以调用操作系统命令. 应用有时需要调用一些执行系统命令的函数,举个例子如:PHP中的 ...

  9. Bootstrap Fileupload 文件上传

    1.在jsp中引入css与js文件, <link href="${ctx}/plugins/fileup/css/fileinput.css" media="all ...

  10. commons.fileupload 文件上传

    编辑jsp页面获取文件 <html> <head> <base href="<%=basePath%>"> <title> ...

随机推荐

  1. Denpendcy Injection 8.0新功能——KeyedService

    Denpendcy Injection 8.0新功能--KeyedService 本文只介绍 .NET Denpendcy Injection 8.0新功能--KeyedService,假定读者已熟练 ...

  2. element-ui实现弹窗

    element-ui实现弹窗 需要的官网组件 要弹出的页面 <template> <el-form :model="ruleForm" :rules=" ...

  3. Redis系列之——Redis介绍安装配置

    文章目录 第一章 redis初识 1.1 Redis是什么 1.2 Redis特性(8个) 1.3 Redis单机安装 1.3.1下载安装 1.3.2三种启动方式 1.3.2.1 最简启动 1.3.2 ...

  4. Oracle中的substr()函数和INSTR()函数和mysql中substring_index函数字符截取函数用法:计算BOM系数用量拼接字符串*计算值方法

    最近一直在研究计算产品BOM的成本系数,将拼接的元件用量拼接后拆分计算是个问题,后来受到大佬在mysql中截取字符串的启发在oracle中以substr和instr实现了  1.以下是我在mysql中 ...

  5. 软件开发人员 Kubernetes 入门指南|Part 2

    在第 1 部分中,我们讲解了 Kubernetes 的核心组件,Kubernetes 是一种开源容器编排器,用于在分布式环境中部署和扩展应用程序:我们还讲解了如何在集群中部署一个简单的应用程序,然后更 ...

  6. influxdb 连续查询使用总结

    转载请注明出处: 1.定义: InfluxDB 连续查询(Continuous Query)是一种自动化查询类型,该查询会根据定义的时间间隔定期运行,并将结果存储在新的目标测量中.这样的查询通常用于处 ...

  7. Keil MDK忽略警告, 包括文件末尾空白行, 未使用等警告

    首先应该了解为什么Keil MDK 会有这样的警告, 原因简单说就是C99规定了要在末尾行加回车 一. 你可以使用格式化工具对所有源文件进行一次格式化处理. 二. 在Keil MDK中查看 Build ...

  8. git 忽略已提交(commit)的文件/文件夹

    git 忽略已提交的文件或文件夹 最好是在工程一开始就编辑好 .gitignore 文件, 在第一次提交的时候仔细检查避免添加那些无用的文件 因为 .gitignore 只能对未提交过的文件起效, 也 ...

  9. 开发现代化的.NetCore控制台程序:(3)将nuget包发布到GitHubPackages

    前言 上一篇文章已经把项目模板的nuget包发布到了 nuget 的官方源了,其实还可以发布到其他源,比如 GitHub ,本文记录一下发布到 GitHub Packages 的过程. 注意:本文建立 ...

  10. (Good topic)哈希表:最长回文串(3.19 leetcode每日打卡)

    给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字符串的长度不 ...