CTF实战练习:文件上传漏洞+文件包含漏洞

BugkuCTF:文件包含2

CTF实战练习:http://120.78.xx.xxx:8013

CTF实战练习:文件上传漏洞+文件包含漏洞_第1张图片

这道题目看起来又像是跟前一道题是差不多的样子,继续先查看index.php里面的内容:

CTF实战练习:文件上传漏洞+文件包含漏洞_第2张图片

哎~这次好像显示的并不是base64编码的内容,但是感觉起来这个信息一点用都没有,第二步,查看网页源代码:

CTF实战练习:文件上传漏洞+文件包含漏洞_第3张图片

从网页源代码里我们可以看出在JS脚本里包含了一个html页面,我们现在来访问一下这个页面,看看有什么东西:

CTF实战练习:文件上传漏洞+文件包含漏洞_第4张图片

通过文件包含访问信息之后发现页面没有返回任何信息,这个时候我们查看一下网页源代码:

CTF实战练习:文件上传漏洞+文件包含漏洞_第5张图片

从源代码里似乎我们找到了要找的东西,仔细观察注释的内容,注释里提示了一个页面叫upload.php,看文件名就能看出来,这指定是上传文件的页面了,我们继续通过文件包含的形式来查看,页面如下:

CTF实战练习:文件上传漏洞+文件包含漏洞_第6张图片

从页面信息我们可以看到网站通过白名单的方式限制了上传文件的类型,只能上传jpg、gif、png格式的图片文件,此时我们就需要绕过检测,将我们的木马文件进行上传,怎么绕过呢?

其实一开始我用了一种挺麻烦的方法拿到了flag,先说说我怎么做的吧。

我首先当然是使用burpsuite抓包,然后通过修改文件类型等进行绕过检测

CTF实战练习:文件上传漏洞+文件包含漏洞_第7张图片

在抓取到的信息中,我们修改一下Content-Type的值,改为image/jpg,修改完之后,点击Forward重传数据包,此时我们发现,页面显示信息文件上传失败,这说明不能通过这种绕过方式来进行绕过。

那现在怎么办呢,既然只要上传图片,那么我们可以构造图片木马进行上传,构造图片木马我们需要事先准备一张jpg格式的图片和一个写好的一句话木马文件,cmd打开命令行,使用如下图命令进行制作图片木马文件:

CTF实战练习:文件上传漏洞+文件包含漏洞_第8张图片

制作好了图片木马文件之后,我们修改一下文件的扩展名,修改为 .jpg.php,现在再利用burpsuite进行抓包上传,使用%00截断方式进行绕过

CTF实战练习:文件上传漏洞+文件包含漏洞_第9张图片

此时我们发现页面回显信息,文件已经上传成功,根据文件名提示,我们利用文件包含访问一下我们刚刚上传的图片木马文件

CTF实战练习:文件上传漏洞+文件包含漏洞_第10张图片

页面无回显信息,说明木马文件执行成功,现在我们使用中国菜刀来链接一下 试试能否访问成功

CTF实战练习:文件上传漏洞+文件包含漏洞_第11张图片

菜刀连接成功,说明我们的木马文件生效了,连接成功之后,我们就可以看到flag的所在地了

CTF实战练习:文件上传漏洞+文件包含漏洞_第12张图片

利用这种方法做呢比较麻烦,最简单的方法就是直接上传我们制作好的图片木马文件,然后直接根据路径去连接木马就可以了。

 

总结:在CTFweb题中关于文件类的题目经常会是这种文件上传漏送和文件包含漏洞一起使用,这时候就还是要合理利用方法,避免像我这样兜兜转转一大圈然后最后使用简单方法一样能做的出来。另外在这个题目中,关于使用的木马也是有要求的,不能使用最普遍使用的那个一句话木马进行图片木马的制作,像 这个木马是没法办用的,也不是说没办法用,可以用但是最后菜刀连接不上我们的木马文件,原因是,在解析过程中<和php都被过滤掉了,这就很麻烦,这是用我们换一种木马的写法:

你可能感兴趣的:(CTF,渗透测试,漏洞验证)