upload-labs靶场通关指南(16-17关)

今天继续给大家介绍渗透测试相关知识,本文主要内容是upload-labs靶场通关指南(16-17关)。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、第16关

(一)代码分析

第16关关键代码如下所示:
upload-labs靶场通关指南(16-17关)_第1张图片
upload-labs靶场通关指南(16-17关)_第2张图片
upload-labs靶场通关指南(16-17关)_第3张图片

(二)通关思路

根据上述源码和提示,我们可以这一关与第14、15关检验方法相同,都是对图片内容进行检测,只不过本关使用了exif_imagetype()函数来检测图片内容。
因此,本关可以采用与14、15关相同的图片马的方式绕过。

(三)通关实战

与第14、15关通关过程类似,在本实战中,我们首先上传一张图片木马,如下所示:
upload-labs靶场通关指南(16-17关)_第4张图片
之后,再通过文件包含漏洞,使得我们上传的图片能够被当作PHP文件来解析,这样里面的PHP代码就可以被执行,执行后的效果如下所示:
upload-labs靶场通关指南(16-17关)_第5张图片

二、第17关

(一)代码分析

第17关关键代码如下所示:
upload-labs靶场通关指南(16-17关)_第6张图片
upload-labs靶场通关指南(16-17关)_第7张图片
upload-labs靶场通关指南(16-17关)_第8张图片
第17关使用了很多upload-labs靶场中新的PHP函数,如果您对这些函数感兴趣,可以学习以下文章:upload-labs靶场第17关设计PHP函数解析。这些内容在这里就不过多赘述了。

(二)通关思路

从以上代码及提示可以知道,在本关中,使用了imagejpeg()函数重新生成(渲染)了我们上传的图片,经过该函数处理后的图片,图片中的内容会被改变,因此如果我们像之前的关卡一样直接上传图片木马,则无法成功。
解决这一问题,可以有两种思路,一种是从其渲染逻辑入手,想办法将PHP代码插入到图片中合适的位置,使得渲染后不影响PHP代码;另一种是从本关验证的逻辑入手,仔细观察本关代码,可以发现本关对于我们上传文件会先放到upload目录下,并以上传文件的文件名命名,等PHP代码渲染完成后,再将渲染后的文件重命名后放到upload目录下,并将原来的文件删除。这样的逻辑过程导致有一个短暂的时间渲染前的文件会在upload目录中存在,我们可以想办法在该文件存在的这短暂的时间内,使用浏览器访问该文件。对于网站系统而言,对该文件的访问相当于一个程序打开该文件,而一般系统不会允许一个文件打开的时候,被另一个进程所删除。因此,我们如果能够在这短暂的时间内实现对该临时文件的访问,那么站点PHP删除代码就会删除失败,也就相当于我们上传了一个没有渲染的图片在upload文件夹中。

(三)通关实战

根据上述思路,我们可以进行实战。为了实现在文件上传后的短时间内能够访问该文件,我们利用Burpsuit的Intruder模块,向Web站点大量发送数据包,Intruder模块设计如下图所示:
upload-labs靶场通关指南(16-17关)_第9张图片
upload-labs靶场通关指南(16-17关)_第10张图片
之后,我们开启Intruder模块,同时开启文件上传,为了保证成功率,我们可以使用Burpsuit的Repeater模块,来多次上传文件,Burpsuit的Repeater模块设置如下:
upload-labs靶场通关指南(16-17关)_第11张图片
经过多次尝试,Intruder模块结果如下所示:
upload-labs靶场通关指南(16-17关)_第12张图片
upload-labs靶场通关指南(16-17关)_第13张图片
其实,从上图就可以看出,我们已经成功实现了对该文件的访问,我们可以到Web站点的upload目录中,可以发现再上传了多个文件后,我们成功的在文件上传的一瞬间,访问了该文件,如下所示:
upload-labs靶场通关指南(16-17关)_第14张图片
这样,我们就可以通过文件包含漏洞来执行该文件中的PHP代码了,执行结果如下所示:
upload-labs靶场通关指南(16-17关)_第15张图片
从上图可以看出,该文件中的PHP代码被正确解析。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(渗透测试,upload-labs,文件上传,条件竞争,渗透测试,Web安全)