当前位置: 首页 > 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.mrgr.cn/news/81412.html

相关文章:

  • 第十六章 C++ 字符串
  • 单元测试(UT,C++版)经验总结(gtest+gmock)
  • 重温设计模式--代理模式
  • RAID5原理简介和相关问题
  • 异步线程中使用FeignClient token失效
  • Vue+element 回车查询页面刷新
  • Python8-写一些小作业
  • AI科研助手开发总结:向量与数据权限的应用(一)
  • 【ROS2】坐标TF发布(静态)
  • 攻防世界 view_source
  • 攻防世界 ics-06
  • 【linux】NFS实验
  • WebRTC服务质量(08)- 重传机制(05) RTX机制
  • 用VBA将word文档处理成支持弹出式注释的epub文档可用的html内容
  • 【RAII | 设计模式】C++智能指针,内存管理与设计模式
  • 51c自动驾驶~合集42
  • Hot100刷题计划-Day3 二分查找专题【持续更新】
  • lodash常用函数
  • 路由器做WPAD、VPN、透明代理中之间一个
  • Git使用经历
  • 06 - Django 视图view
  • Avalonia实例实战五:Carousel自动轮播图
  • 【linux】 unshare -user -r /bin/bash命令详解
  • JdbcTemplate、NamedParameterJdbcTemplate 执行数据插入后返回主键写法
  • Pytorch | 利用I-FGSSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • acme ssl证书自动续签 nginx