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

bugku——变量1

拿到题目后是一串PHP代码,给到提示是flag在变量中,接下来进行代码审计

  • error_reporting(0):关闭错误报告

  • include “flag1.php”:包含flag1.php文件

  • highlight_file(_file_):页面进行语法高亮显示

  • isset($_GET[‘args’]):判断有没有用get方法传一个args的参数,如果有才执行以下的if语句

  • preg_match()正则表达式匹配函数

  • /^\w+$/,\w表示任意一个数字、字母或下划线,+匹配前面的子表达式一次或多次,^和$用在一起表示整行匹配

  • var_dump()以更易识别的方式输出变量的类型和值

  • eval()函数将字符串当成php代码执行

  • $$args是一个可变变量,将$args的值当成另外一个变量的名称,所以给$args传递值就$$args就可以表示另外一个变量

我是这样理解的

因为源码已经提示了,flag在变量中,然后这里使用的GET的方式接受变量,又做了正则匹配,意思就是说如果传入的参数不是以字符,数字和下划线组成的就输入args error

理解完构造,因为提示说flag都存在于变量中,在PHP里有一堆预定义变量,是可以直接拿来使用的,预定义变量$GLOBALS就包含了当前脚本中已经定义的所有变量

所以我们可以构造?args=GLOBALS来回显当前脚本的所有变量信息

获得flag

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

相关文章:

  • 网络数据包丢失监控
  • Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接
  • CSS面试题:30道含答案和代码示例的练习题
  • 时间轮的golang实践浅析
  • Linux命令_stress 快速模拟CPU、内存、磁盘消耗
  • 可视化绘图技巧100篇分析篇(二)-生存曲线(LM曲线)
  • UP主发车啦!撩人仙侠文系列,谁来管管这个反派啊!
  • K8S使用持久化卷存储到NFS(NAS盘)
  • 一图看懂 multidict 模块:类似于字典的键值对集合,键可以多次出现,资料整理+笔记(大全)
  • django CBV 与 DRF APIView源码分析
  • 沃尔玛入驻教程:中国卖家如何免费、快速入驻沃尔玛walmart.com?
  • 《花雕学AI》Poe 上的四种 AI 机器人,你该怎么选?ChatGPT、Sage、Claude 和 Dragonfly对比
  • localStorage
  • 二十五、SQL 数据分析实战(9个中等难度的SQL题目)
  • JavaSE_02基本语法-编程单词词汇
  • 区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测
  • 如何使用aframe.js构建一个简单的VR播放器
  • Fiddler抓包工具常见功能介绍,还不会的进来看
  • 基于海鸥算法优化的核极限学习机(KELM)分类算法-附代码
  • JAVA代码规范审查
  • Centos8安装redis7
  • RabbitMQ详解(一):Linux安装
  • Mojo:比 Python 快 35000 倍的 AI 编程语言
  • 1703_LibreOffice常用功能使用体验
  • Postgres:Win/Linux环境安装及一键部署脚本
  • 每日一题144——数组大小减半
  • 运维必懂的13条高效工作秘诀
  • 【牛客刷题专栏】0x26:JZ25 合并两个排序的链表(C语言编程题)
  • 5/5~5/7总结
  • 重要通知|Sui测试网将于5月11日重置