题目出处:首页 - Bugku CTF
✨打开链接会看到如下所示界面!!!
✨先对这段代码进行详解的解析!!!
<?php
include "flag.php"; //包含一个名为flag.php的文件
$a = @$_REQUEST['hello']; //从请求中获取一个名为hello的参数值并赋值给变量a。
eval( "var_dump($a);"); //输出变量a的相关信息
show_source(__FILE__); //显示当前文件的源码
?>
✨读完后一脸茫然,那就来拓展一下知识点!!!
$_REQUEST
函数是一个用于访问 GET
,POST
和 COOKIE
三个数组的超全局变量。它可以用于从客户端收集用户提交的数据,可以访问 GET
,POST
和 COOKIE
三个数组中的数据。
需要注意的是,$_REQUEST
函数是不安全的,因为它无法确定用户的输入值是来自于哪个数组。因此,为了确保安全性,建议仅使用 $_GET
,$_POST
和 $_COOKIE
函数。
✨所以,我了解到,此题是给你一个flag.php的文件,让你对它进行读取,找找里面的hello参数,所以用到强大的超全局变量$GLOBALS去看看flag是否在这个文件中!!!
✨可见,并无flag出现,那就考虑到flag成为了此文件的注释,所以现在找不到,那我们就用文件去读取这个函数!!!
✨于是乎,读取到了里面的flag,此题就被破解啦!!!
✨拓展:file()
:把整个文件读入一个数组中。格式为 file('文件名')。
✨此题还有另外一种解法,我也是看了该篇文章了解到还有一种构造闭合的方法,但是我觉得比这个方法难,感兴趣的伙伴可以去研究一下,我在这就不做详细的介绍了!!!【愚公系列】2023年06月 Bugku-Web(eval)_bugku 原型链污染-CSDN博客