目录
1.无限制
2.前端验证
编辑 3. .htaccess
4.MIME验证
5.文件头检查
6.00截断
7.双写后缀
1.无限制
进入靶场环境中看到有上传文件的选项, 本关写明无限制所以我们直接上传php后门文件。
上传成功后用蚁剑连接。
这里一直连接失败,上网查阅信息得知要直接访问上传的后门文件, 注意到上传成功后页面回显了相对路径。
修改蚁剑的连接数据如下图。
连接成功后进入文件夹即可找到flag文件。
2.前端验证
进入靶场,尝试使用了一下burp发现抓不到包,直接在前端进行验证。我的思路是先上传一个jpg文件,用burp抓包修改成php文件。
发现上传成功了,使用蚁剑进行连接。成功获取到flag。
3. .htaccess
看到靶场之后直接先去百度了.htaccess文件的作用,总结来说就是一种配置文件,里面可以书写一些配置,如将某一文件以某种特定拓展名解析。
先编写一个.htaccess文件。保存的时候命名直接为.htaccess。
再编写一个后缀名为.png的后门文件进行上传。
然后用蚁剑连接,得到flag。
4.MIME验证
拿到靶场先上网查询MIME。简单来说就是一种校验机制,当文件进行上传的时候对文件的Content-Type进行校验,如果是白名单中所允许的类型则能够成功上传,如果不是则无法上传。
提到Content-Type验证就会想到用burp进行抓包,所以先抓包看看。
将Content-Type类型修改为image/jpeg。
用蚁剑连接获取flag。
5.文件头检查
进入靶场,尝试上传php文件出现弹窗。尝试用burp抓包看看。
上网查询过资料后,发现这里需要使用图片一句话木马。随便选一张图和后门文件进行制作。
上传成功后连接蚁剑获取flag。
6.00截断
上网查询后,00截断简单来说就是由于php解释器是由C语言编写的,所以遵循C语言解析文件时遇到ascll码0时停止解析,而%00表示ascll码中的0,所以php解释器在解析文件时遇到%00就会默认文件名已经解析结束,所以我们可以利用这一原理进行上传。
上传成功后使用蚁剑进行连接,这一关没有回显文件地址,我们按照之前的路径尝试访问发现可以连接成功,得到flag。
7.双写后缀
查看了一下页面源码,使用了黑名单机制。
用burp抓包后将后缀名双写即可。
然后使用蚁剑连接获取flag。