博客园 首页 私信博主 显示目录 隐藏目录 管理
Live2D

bugku web8

打开网站,是一段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

 

posted @ 2019-10-17 20:59  楼--楼  阅读(526)  评论(0编辑  收藏  举报
(function() { $("pre").addClass("prettyprint"); prettyPrint(); })();