Tamevic’s Ctf-Web writeup@BUUCTF Web
前言
大学所有课程都结束了,接下来还有考试和其他一些安排就要毕业了。从大二开始一直在说什么时候能有大块空闲时间好好学学ctf,但是课程安排比较紧张,一直没得空。现在好不容易有了大块时间,说开始就开始。
这次选择BUUCTF的Web题,这里题目基本都是历年各大赛事的原题,质量比较高,便于积累。
HCTF2018 WarmUp
环境一起就是一个滑稽…查看源码,提示去看source.php
source.php里是源码
经过百度得知这个是PHPMyAdmin 4.8.1 文件包含漏洞
重点在下面那个三连判断,要求file非空,必须是字符串,必须能通过checkfile的验证(必须在白名单中)
看上面checkfile的内容:
-
当
$page
未定义或者$page
不为字符串时,返回False -
当
$page
存在于$whitelist
数组内时,返回True -
获取
$page
中’?'前的所有字符串(不存在时获取全部),然后判断是否在$whitelist
数组中,存在返回True -
同上,只不过先对
$page
进行urldecode
这样的话,可以通过url编码的方式,让该函数返回True
在白名单中随便找一个元素,不能在黑名单中,后面跟上编码后的’?’,然后跟上文件的相对路径,可以用’/…/…/'去跳目录
在hint.php里提示在ffffllllaaaagggg
盲猜文件名是ffffllllaaaagggg,目录是四级
构造
?file=source.php?/../../../