当前位置: 首页 > news >正文

ctf.bugku-eval

题目来源:eval - Bugku CTF

访问页面,

代码解释

<?phpinclude "flag.php";           //包含"flag.php"文件$a = @$_REQUEST['hello'];     //从请求参数'hello'中获取值并赋给变量$a。 eval( "var_dump($a);");       //使用eval函数对变量$a进行求值,并使用var_dump函数打印出结果。 show_source(__FILE__);        //使用show_source函数显示当前文件的源代码。
?>//这段代码包含了一个PHP脚本。首先,它包含了一个名为"flag.php"的文件。然后,它定义了一个变量$a,并从请求参数'hello'中获取值。接下来,它使用eval函数对变量$a进行求值,并使用var_dump函数打印出结果。最后,它使用show_source函数显示当前文件的源代码。 
//这段代码的主要功能是根据请求参数'hello'的值,将其作为PHP代码进行求值并打印出结果。同时,它还展示了当前文件的源代码。 

eval方法

eval是一个特殊的关键字,用于执行被传入的字符串作为PHP代码。其基本语法如下:eval(string $code);其中$code参数是要执行的代码字符串。eval会将该字符串作为PHP代码进行解析和执行,并返回执行后的结果。下面是一个示例代码:$code = 'echo "Hello, World!";';
eval($code);上述代码会输出字符串"Hello, World!"。eval关键字的灵活性使得开发人员能够在运行时动态生成和执行代码,从而具备了很高的编程灵活性。

var_dump() 

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>//以上代码会输出
array(3) {[0]=>int(1)[1]=>int(2)[2]=>array(3) {[0]=>string(1) "a"[1]=>string(1) "b"[2]=>string(1) "c"}
}

        根据题中出现的include函数,怀疑存在文件包含漏洞,flag 在包含的flag.php 文件;后面再看题目的eval函数得知存在代码执行的漏洞,将flag.php的信息获取传递给参数a的值进行代码执行输出flag

因此,这题的解题思路:

1、利用eval()函数可将函数中的参数当作php代码执行,
2、 可通过 file 函数是把一个文件中的内容读入到一个数组中(如本题:?hello=file('flag.php')来查读取flag.php文件内容

构造payload

http://114.67.175.224:10448/?hello=file(%27flag.php%27)

得到flag

http://www.lryc.cn/news/456739.html

相关文章:

  • Extreme Compression of Large Language Models via Additive Quantization阅读
  • 【虚拟化】内核级虚拟化技术KVM介绍,全/半虚拟化的区别,使用libvirt搭建虚拟化平台(go/java/c++)
  • C++类成员变量的初始化
  • Golang 中的强大 TUI 库 ——tview
  • 电层相关 -- 支路板与线路板
  • leetcode 93.复原ip地址
  • AI+视频监控:EasyCVR安防平台赋能火电制造行业的视频智能管理方案
  • UIP协议栈 TCP Server Client通信成功案例
  • Android Studio Koala Feature Drop 稳定版现已推出
  • 胤娲科技:AI评估新纪元——LightEval引领透明化与定制化浪潮
  • Python安装|PyCharm Professional 下载安装教程。2024最新版,亲测使用!
  • JavaSwitch控制流语句
  • PCL 3D-SIFT关键点检测(Z方向梯度约束
  • 肺结节分割与提取系统(基于传统图像处理方法)
  • ESP32 COAP 客户端观察者模式下,GET服务器的例程
  • 【Kubernetes】常见面试题汇总(五十七)
  • Java 设计模式 构建者模式
  • 建设企业网站如何建
  • C++ inline 的更进一步理解
  • 海康威视云台相机图像获取
  • 什么是词嵌入(Word Embedding)
  • LSTM时间序列模型实战——预测上证指数走势
  • 基于 STM32F407 的 SPI Flash下载算法
  • 力扣之1355.活动参与者
  • 数据资产治理:构建敏捷与安全的数据管理体系
  • Nodejs连接Mysql笔记
  • Canvas:AI协作的新维度
  • 【深度学习】— softmax回归、网络架构、softmax 运算、小批量样本的向量化、交叉熵
  • C# Wpf 图片按照鼠标中心缩放和平移
  • 网络安全产品类型