打开网站,是一段PHP代码,
<?php extract($_GET); if (!empty($ac)) { $f = trim(file_get_contents($fn)); if ($ac === $f) { echo "<p>This is flag:" ." $flag</p>"; } else { echo "<p>sorry!</p>"; } } ?>
审计一下这个代码,发现得到flag的条件是ac与f恒等且前提要满足ac不能为空以及f的值是从fn文件读取。
提示txt,尝试访问一下flag.txt
发现是flags,那我们可以通过构建get传入一个ac=flags和fn=flag.txt来进行获取
成功得到flag。
这是一种方法,我在网上还看到大佬们的另一种方法
这个题还可以使用PHP输入流来做,
首先来看这个题的要求:
1.ac的值不可以为空
2.然后f的值要从fn文件中获取
3.ac===f
那么我们可以通过使用PHP输入流来通过post传入一个值,并让ac等于这个值便可以成功得到flag。
成功得到flag