Pikachu漏洞靶场 Unsafe Fileupload(文件上传)
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(文件上传)的更多相关文章
- 对FileUpload文件上传控件的一些使用方法说明
//创建时间:2014-03-12 //创建人:幽林孤狼 //说明:FileUpload文件上传控件使用说明(只是部分)已共享学习为主 //可以上传图片,txt文档.doc,wps,还有音频文件,视屏 ...
- FileUpload文件上传控件
1.FileUpload控件的主要功能是向指定目录上传文件.FileUpload控件不会自动上传控件,而需要设置相关的事件处理程序,然后在程序中实现文件上传. 2.FileUpload控件常见的属性 ...
- ASP.NET中的FileUpload文件上传控件的使用
本篇文章教大家如何将客户端的图片或者文件上传到服务器: 无论是上传图片(.jpg .png .gif等等) 文档(word excel ppt 等等). 第一步:放入以下三个控件 Image控件,Fi ...
- PHP漏洞全解(九)-文件上传漏洞
本文主要介绍针对PHP网站文件上传漏洞.由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 P ...
- apache fileupload 文件上传,及文件进度设置获取
文件上传action处理: boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) ...
- Commons FileUpload文件上传组件
Java实现的文件上传组件有好几种,其中最为“官方”的要数Apache Commons库中的FileUpload了吧. 页面 <form method="POST" enct ...
- PHP代码审计3-SQL注入,CSRF,动态函数执行与匿名函数执行,unserialize 反序列化漏洞,变量覆盖,文件管理,文件上传
SQL注入 审计语句 [输入参数] SELECT,DELETE,UPDATE,INSERT 防御 转义: 1.开启gpc:判断解析用户提示的数据 2.mysql_real_escape_string( ...
- web漏洞-命令执行、文件上传、XSS
一.命令执行 1:什么是命令执行? 命令执行漏洞是指攻击者可以随意执行系统命令.属于高危漏洞之一任何脚本语言都可以调用操作系统命令. 应用有时需要调用一些执行系统命令的函数,举个例子如:PHP中的 ...
- Bootstrap Fileupload 文件上传
1.在jsp中引入css与js文件, <link href="${ctx}/plugins/fileup/css/fileinput.css" media="all ...
- commons.fileupload 文件上传
编辑jsp页面获取文件 <html> <head> <base href="<%=basePath%>"> <title> ...
随机推荐
- jenkins更换国内插件源
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' ...
- 【好玩】如何在github主页放一条贪吃蛇
前言 缘由 github放小蛇,就问你烧不烧 起因看到大佬github上有一条贪吃蛇扭来扭去,觉得好玩,遂给大家分享一下本狗的玩蛇历程 成果初展 贪吃蛇 访问地址 https://github.com ...
- virsh domxxx命令
1. 摘要信息类 1.1 dominfo 获取配置等摘要信息 [root@hyperhost ~]# virsh dominfo --domain centos7.6 Id: 1 Name: cent ...
- Linux账号密码安全运维
前言 随着云计算厂商的兴起,云资源如ECS不再只有企业或者公司才会使用,普通人也可以自己买一台ECS来搭建自己的应用或者网站.虽然云计算厂商帮我们做了很多安全相关的工作,但并不代表我们的机器资源就绝对 ...
- 浅析 C# 控制台的 Ctrl+C 是怎么玩的
一:背景 1. 讲故事 上一篇我们聊到了 Console 为什么会卡死,读过那篇文章的朋友相信对 conhost.exe 有了一个大概的了解,这一篇更进一步聊一聊窗口的特殊事件 Ctrl+C 底层流转 ...
- Spring Boot整合OAuth2实现GitHub第三方登录
Github OAuth 第三方登录示例 1.第三方登录原理 第三方登录的原理是借助OAuth授权来实现,首先用户先向客户端提供第三方网站的数据证明自己的身份获取授权码,然后客户端拿着授权码与授权服务 ...
- 详述Java内存屏障,透彻理解volatile
一般来说内存屏障分为两层:编译器屏障和CPU屏障,前者只在编译期生效,目的是防止编译器生成乱序的内存访问指令:后者通过插入或修改特定的CPU指令,在运行时防止内存访问指令乱序执行. 下面简单说一下这两 ...
- Linux 中如何修改终端提示符颜色?
哈喽大家好,我是咸鱼 我们知道默认情况下,Linux 终端提示符都是简单的黑白色 这种黑白提示一方面看久了容易视觉疲劳,另一方面由于没有高亮显示,看着很不方便,视觉体验极差 所以我们需要修改我们的终端 ...
- ST 表
ST 表 定义 ST 表是用于解决 可重复贡献问题 的数据结构,通俗来说,一般可以解决区间查询问题. 区间最值和 \(gcd\) 我们以最大值为例,然后可以再推广到最小值和区间 \(gcd\) 首先你 ...
- 不要轻易定义指向std::vector中的元素的指针
类应该是被封装的,类的用户通过接口使用类提供的功能,而不必关心类的内部如何实现.然而,C++标准库容器 std::vector 的实现渗透到了接口中来.对于以下代码: const int pushNu ...