我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CTFHub-Web-文件上传

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CTFHub-Web-文件上传

目录

知识点

一、无验证

二、前端验证

三、.htaccess

1、题目简介

2、解题思路

3、解题:上传htaccess文件==》上传符合我们重新后规则的文件==》蚁剑连接

四、MIME绕过

1、知识点

2、解题思路

 五、文件头检查

六、00截断

1、知识点:PHP 5.2 00截断上传的原理

2、题目简介

3、解题步骤

七、双写后缀

1、题目简介

2、解题步骤


知识点

文件上传漏洞的前提条件:

(1)、可以成功上传木马;

(2)、上传成功的木马能够解析;

(3)、我们知道上传之后文件的路径;

当php文件被过滤,可以尝试图片马;

文件上传的防御:

(1)、上传后的文件重新命名;

(2)、不进行解析;

(2)、重新生成文件。

一、无验证

这里对文件没有限制,所以我们直接上传一句话木马

上传成功后给出相对路径,所以直接拿出蚁剑或者菜刀进行连接

连接成功后,查看目录,获取flag

 

拿下flag: ctfhub{5a9ca5dff20570539153fad1}

二、前端验证

绕过方法:改后缀找漏网,burp抓包改后缀。

题目简介

查看源代码

白名单验证,只验证文件后缀,且只能上传.jpg、.png、.gif

burp抓包,由于是前端认证,所以我们将木马后缀改为.jpg,burp抓包放过时改为.php

(1)、将一句话木马后缀改为png

(2)、点击上传,burp改后缀

后缀改为php且上传成功获取到路径。

 3、蚁剑测试连接

获取flag

 

flag:ctfhub{c8233e314667d80cf9c1f230} 

三、.htaccess

1、题目简介

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能;

2、解题思路

根据题目以及题目源码过滤了php,因此这道题解题思路如下:

上传一个.htaccess文件,替换掉本地服务器上的源文件,重写规则,是我们能够上传脚本。

(1)、上传一个.htaccess文件,让文件名中含有数字‘6’的文件当作php文件解析;

#.htaccess文件内容  SetHandler application/x-httpd-php

(2)、上传一个.htaccess文件,让文件名后缀为.png的文件当作php文件解析;

.htaccess文件内容AddType application/x-httpd-php png

3、解题:上传htaccess文件==》上传符合我们重新后规则的文件==》蚁剑连接

(1)、上传htaccess文件

(2)、上传文件名中含有‘6’的木马

 

(3)、蚁剑连接 

 (4)、获取flag

flag:ctfhub{a061b1c7d9adc5af113c630d}

四、MIME绕过

1、知识点

MIME:

它全名叫多用途互联网邮件扩展(Multipurpose Internet Mail Extensions),用来标注网络数据的格式。MIME的常见形式是一个主类型加一个子类型,用斜线分隔。比如text/html、application/javascript、image/png等。在访问网页时,MIME type帮助浏览器识别一个HTTP请求返回的是什么内容的数据,应该如何打开、如何显示。

2、解题思路

上传一句话木马==》burp抓包==》更改Content-Type类型为:image/png==>放包

(1)、上传木马,该MIME类型为:image/png

(2)、一句话木马上传成功 

 

(3)、蚁剑连接

 

(4)、获取flag

 

flag:ctfhub{01fb19ac79a30497d8b8d53f} 

 五、文件头检查

题目简介

设置了白名单,只允许图片中列举出来的文件上传。

上传php,burp抓包改成白名单允许的文件,进行绕过

 

 改后显示文件错误,结合题目,说明他检验文件头部。

上传一个正常图片,burp抓包,文件名改为:1.php;在图片内容后面写上一句话木马。

 一句话木马:

 4、蚁剑连接时,文件路径最后的文件名是我们更改后的后缀为php的文件

获取flag

 

flag:ctfhub{3bc1bfb2b65cd9d0e19a5c68}

六、00截断

1、知识点:PHP 5.2 00截断上传的原理

php 00截断前提:

php版本要小于5.3.4,5.3.4及以上已经修复该问题

magic_quotes_gpc需要为OFF状态

原理

%00表示截断,

例如:

?filename=123.txt                输出的是123.txt文件

加上%00后

?filename=123.php%00.txt        后缀为.txt,但是输出的是.php,因为00截断了后面

2、题目简介

 

前端会验证,只能上传图片中列出的类型

3、解题步骤

上传一句话木马php==》 burp抓包加上%00进行截断==》蚁剑连接获取flag

(1)、上传抓包改包:yjh.php%00;.png

 

  

(2)、蚁剑连接

文件路径为:/upload/yjh.php

 

 (3)、获取flag

 flag:ctfhub{38a79af8fb63f33caf4e4390}

七、双写后缀

1、题目简介

将文件名后缀含有的这些全部替换为空。

 

2、解题步骤

进行后缀的复写,如:123.phphpp,代码将后缀里的php替换后,前面的ph和后面的p又重新组成php后缀;

(1)、提交改包

 

(2)、木马php文件上传成功

 

(3)、蚁剑连接

(4)、获取flag

flag :ctfhub{21d38ee8c77b731a74eeb554}


有问题的地方大家指正!!!

来源地址:https://blog.csdn.net/qq_54037445/article/details/128093423

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CTFHub-Web-文件上传

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android上传文件到Web服务器 PHP接收文件

Android上传文件到服务器,通常采用构造http协议的方法,模拟网页POST方法传输文件,服务器端可以采用JavaServlet或者PHP来接收要传输的文件。使用JavaServlet来接收文件的方法比较常见,在这里给大家介绍一个简单的
2022-06-06

如何上传虚拟主机web文件夹

上传虚拟主机的web文件夹可以通过以下步骤进行:1. 获取虚拟主机的FTP(文件传输协议)登录信息,包括FTP服务器地址、用户名和密码。这些信息通常由虚拟主机提供商提供。2. 下载并安装一个FTP客户端软件,如FileZilla、WS_FT
2023-08-29

java web中的servlet3 upload上传文件实践

Servlet 3.0之前的版本中,文件上传是个挺让人头疼的问题,虽然有第三方框架来实现,但使用也还是比较麻烦,在Servlet 3.0中,这些问题将不复存在,Servlet 3.0对文件上传提供了直接支持,配合Servlet 3.0中基于
2023-05-30

SpringMVC 单文件上传与多文件上传实例

一、简述一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。二、单文件上传1、
2023-05-31

如何使用最小WEB API实现文件上传

这篇文章主要介绍“如何使用最小WEB API实现文件上传”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用最小WEB API实现文件上传”文章能帮助大家解决问题。前言:我们使用最小 WEB AP
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录