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

攻防世界 PHP2

开启场景

访问 /index.php,页面无变化

访问 /index.phps

index.php 和 index.phps 文件之间的主要区别在于它们的文件扩展名。

  1. index.php:这是一个标准的 PHP 文件,通常用于编写 PHP 代码。当用户访问 index.php 文件时,Web 服务器会解释其中的 PHP 代码,并将结果发送给用户的浏览器。PHP 文件可以包含 HTML、CSS、JavaScript 以及服务器端的 PHP 代码。
  2. index.phps:这个文件名可能是由开发人员自定义的,它的扩展名 .phps 是一种特殊的命名约定,通常用于显示 PHP 源代码而不是执行它。如果用户访问 index.phps 文件,Web 服务器通常会直接将文件内容发送给浏览器,而不会解释其中的 PHP 代码。这对于演示和学习目的可能会有用,但不建议在生产环境中使用这种方式,因为它会暴露服务器端的代码。

总之,index.php 是一个标准的 PHP 文件,用于执行 PHP 代码,而 index.phps 可能用于显示 PHP 源代码。

右键查看页面源代码

$_GET本身自带一次urldecode解码,即浏览器对url本身有一个检测,对于输入的中文等和一些特殊字符进行解码,对于字母、数字等合法字符不会进行解码

直接传参admin会被第一个 if 过滤掉,由于浏览器会对GET参数进行一次URL解码,加上PHP源码中的 urldecode($_GET[id]) 会对可变参数进行一次解码,一共会给参数进行2次解码,所以先将参数 admin 先编码两次。字母a进行urldecode编码之后为%61,在对%进行urldecode编码之后为%2561

所以参数输入 id=%2561dmin,浏览器先对参数编码一次为 %61dmin,然后参数传入PHP服务器后为 %61dmin,然后 $_GET[id] = urldecode($_GET[id]) 中 urldecode 再一次编码为 admin,跳到第二个 if 函数执行判断为true,得到了 flag

cyberpeace{ff251a03a5ed13c1fbe7acc389e0e049}
http://www.lryc.cn/news/511002.html

相关文章:

  • 主板idyy
  • 轻松实现向量搜索:探索 Elastic-Embedding-Searcher 项目
  • flask后端开发(3):html模板渲染
  • 逻辑控制语句
  • [OpenGL]使用 Compute Shader 实现矩阵点乘
  • jangow-01-1.0.1靶机
  • MySQL 查询大偏移量(LIMIT)问题分析
  • Docker、containerd、安全沙箱、社区Kata Containers运行对比
  • 使用npm包的工程如何引入mapboxgl-enhance/maplibre-gl-enhance扩展包
  • 【NIFI】实现ORACLE->ORACLE数据同步
  • 单例模式的写法
  • Selenium实践总结
  • Python数据可视化小项目
  • Python毕业设计选题:基于python的白酒数据推荐系统_django+hive
  • SQL-leetcode-180. 连续出现的数字
  • Unity中如何修改Sprite的渲染网格
  • 跟着 8.6k Star 的开源数据库,搞 RAG!
  • 每日一题 345. 反转字符串中的元音字母
  • Stream API 的设计融合了多个经典设计模式
  • jmeter混合场景测试,设置多业务并发比例(吞吐量控制器)
  • 直流有刷电机多环控制(PID闭环死区和积分分离)
  • vue-axios+springboot实现文件流下载
  • selenium执行js
  • 每日算法Day11【左叶子之和、找树左下角的值、路径总和】
  • 分享一下使用 AI 开发个人工具的迭代过程
  • 大型语言模型(LLMs)演化树 Large Language Models
  • 部分背包问题
  • 教师管理系统
  • Word论文交叉引用一键上标
  • 集成方案 | Docusign + 蓝凌 EKP,打造一站式合同管理平台,实现无缝协作!