XCTF warmup
一.进入实验环境后一脸懵逼
我们右键查看源代码,发现在注释里面透露一个source.php
我们打开这个source.php,发现是一段php代码,我们先进行代码审计,且发现 hint.php, 我们访问一下这个文件
得到包含flag的文件名。
我们再来看看source.php的代码部分:
mb_substr() 函数返回字符串的一部分,之前我们学过 substr() 函数,它只针对英文字符,如果要分割的中文文字则需要使用 mb_substr()。
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
用法:mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) : string
mb_strpos():返回要查找的字符串在别一个字符串中首次出现的位置
用法:mb_strpos(haystack, needle)
haystack:要被检查的字符串。needle:要搜索的字符串。
注意:mb_strpos()函数返回被查找的字符串在别一字符串中首次出现的位置
中文查找中,尽量要声明一下页面的编码为UTF-8。
经过源码审计,只要满足checkfile函数,为字符串,且不为空,那么就会被include
我们构造source.php? +字符串即可
这里我们构造 source.php?/../../../../../ffffllllaaaagggg,再进行url编码,得到flag
趁着年轻,多学些