CTFHub-Web-文件上传

目录

知识点

一、无验证

二、前端验证

三、.htaccess

1、题目简介

2、解题思路

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

四、MIME绕过

1、知识点

2、解题思路

 五、文件头检查

六、00截断

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

2、题目简介

3、解题步骤

七、双写后缀

1、题目简介

2、解题步骤


知识点

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

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

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

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

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

3、文件上传的防御:

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

(2)、不进行解析;

(2)、重新生成文件。

一、无验证

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

<?php @eval($_POST[admin]);?>

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

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

 

拿下flag: ctfhub{5a9ca5dff20570539153fad1}

二、前端验证

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

2、题目简介

查看源代码

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

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

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

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

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

 3、蚁剑测试连接

4、获取flag

 

flag:ctfhub{c8233e314667d80cf9c1f230} 

三、.htaccess

1、题目简介

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

2、解题思路

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

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

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

#.htaccess文件内容

<FilesMatch "6">  
SetHandler application/x-httpd-php
</FilesMatch>

(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} 

 五、文件头检查

1、题目简介

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

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

 

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

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

 一句话木马:

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

5、获取flag

 

flag:ctfhub{3bc1bfb2b65cd9d0e19a5c68}

六、00截断

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

1、php 00截断前提:

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

magic_quotes_gpc需要为OFF状态

2、原理

%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}


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

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值