XCTF mfw
一.进入实验环境
点击About,发现git,可能有git源码泄露,访问git发现确实存在源码泄露,这里用 GitHack去获取源码。
在flag.php文件中,结果一段时间的审计,发现存在漏洞
这里没有对输入的的page经过严格的过滤和处理。
先了解一下这个函数:
bool assert(mixed $assertion[,string $description]),如果assertion是字符串,他会被assert()当做php代码执行。
并在结果为false时采取相应的行动,通过可控变量page传入恶意参数,构造闭合,使assert()执行恶意代码。
我们可以构造payload将strpos函数进行闭合,看到大佬的payload为 '.system("cat ./templates/flag.php").'
,
或者 ') or print_r(file_get_contents('templates/flag.php');#
这里url为 http://111.198.29.45:38652/?page=%20%27.system(%22cat%20./templates/flag.php%22).%27
趁着年轻,多学些