个人技术分享

Bugku---web---eval

题目出处:首页 - Bugku CTF


✨打开链接会看到如下所示界面!!!

✨先对这段代码进行详解的解析!!!

<?php
  include "flag.php";   //包含一个名为flag.php的文件
  $a = @$_REQUEST['hello'];  //从请求中获取一个名为hello的参数值并赋值给变量a。
  eval( "var_dump($a);");   //输出变量a的相关信息
  show_source(__FILE__);    //显示当前文件的源码
?>

✨读完后一脸茫然,那就来拓展一下知识点!!!

$_REQUEST 函数是一个用于访问 GETPOSTCOOKIE 三个数组的超全局变量。它可以用于从客户端收集用户提交的数据,可以访问 GETPOSTCOOKIE 三个数组中的数据。

需要注意的是,$_REQUEST 函数是不安全的,因为它无法确定用户的输入值是来自于哪个数组。因此,为了确保安全性,建议仅使用 $_GET$_POST $_COOKIE 函数。

✨所以,我了解到,此题是给你一个flag.php的文件,让你对它进行读取,找找里面的hello参数,所以用到强大的超全局变量$GLOBALS去看看flag是否在这个文件中!!!

✨可见,并无flag出现,那就考虑到flag成为了此文件的注释,所以现在找不到,那我们就用文件去读取这个函数!!!

✨于是乎,读取到了里面的flag,此题就被破解啦!!!

✨拓展:file()把整个文件读入一个数组中。格式为 file('文件名')。

✨此题还有另外一种解法,我也是看了该篇文章了解到还有一种构造闭合的方法,但是我觉得比这个方法难,感兴趣的伙伴可以去研究一下,我在这就不做详细的介绍了!!!【愚公系列】2023年06月 Bugku-Web(eval)_bugku 原型链污染-CSDN博客