打开给的环境发现一个滑稽…于是查看源代码看看有什么提示
根据提示打开目标网页

发现源代码网页,其中还提示了一个叫做hint.php的页面,打开它发现是

它提示在这个文件里有flag,先保留这个信息继续代码审计

根据代码我们知道
1.传入一个字符串file值
2.file值能通过checkFile函数的检验
3.不然就给一个大滑稽
再对checkFile函数进行查看
发现以下几点,
1.传入的file必须是字符串
2.传入的值必须在whitelist白名单中
3.然后用mb_substr函数对page进行?前的截取,若没有?则截取整个page变量
4.判断截取后的page是不是在白名单中
5.对截取后的page进行一次url解码并对其进行?前截取判断其在不在白名单中
6.都成功则可以进行访问
为了绕过进行url解码再截取page判断这个过程,我们可以在url中加一个被二次url编码的“?”(%253f)
对url进行构造得
http://220.249.52.133:37915/source.php?file=source.php%253f../ffffllllaaaagggg
发现并没有flag,但是根据以上分析应该没有问题,只是不知道flag在哪层目录里,于是逐层往上累加最终得到
http://220.249.52.133:37915/source.php?file=source.php%253f../../../../../ffffllllaaaagggg

本文详细解析了如何在渗透测试中绕过网站的安全检查,通过精心构造URL获取隐藏的flag信息。从分析源代码到理解checkFile函数,再到利用URL编码技巧,最终成功定位并获取flag。
4691

被折叠的 条评论
为什么被折叠?



