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

BUU16 [ACTF2020 新生赛]BackupFile1

扫到index.php.bak 

实在扫不出来可以试试一些常有的文件,比如flag.php(flag.php.bak),index.php(index.php.bak)

<?php
include_once "flag.php";

if(isset($_GET['key'])) {
    $key = $_GET['key'];
    if(!is_numeric($key)) {
        exit("Just num!");
    }
    $key = intval($key);
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}

其中一些知识点:
1.is_numeric($key):用于检测变量是否为数字或数字字符串 

2.intval($key):将变量 $key 转换为整数类型

3.php中 == 和 === 的区别:

在本题中,若想绕过弱类型判断$key==123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3:

可以让$key=123,此时123==123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3

弱类型比较规则

在使用 == 进行比较时,PHP 会尝试将两边的值转换为合适的类型后再进行比较。当比较一个整数和一个字符串时,PHP 会尝试将字符串转换为整数,转换规则如下:

  • 从字符串的开头开始解析数字字符,直到遇到第一个非数字字符为止。
  • 如果字符串开头没有数字字符,则将其转换为整数 0

右边的值 "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3" 是一个字符串,PHP 在进行比较时,会将这个字符串转换为整数。根据上述转换规则,从字符串开头开始解析数字,遇到第一个非数字字符 f 时停止,因此该字符串被转换为整数 123

输入/?key=123,拿到flag 


http://www.kler.cn/a/532283.html

相关文章:

  • 昆仑万维Java开发面试题及参考答案
  • 【单细胞-第三节 多样本数据分析】
  • 使用VCS对Verilog/System Verilog进行单步调试的步骤
  • mysql 学习8 函数,字符串函数,数值函数,日期函数,流程函数
  • 18.[前端开发]Day18-王者荣耀项目实战(一)
  • 算法题(56):旋转链表
  • 通信易懂唠唠SOME/IP——SOME/IP 协议规范
  • 分布式微服务系统架构第91集:系统性能指标总结
  • 额外题目汇总1:数组
  • deepseek出现以后国产AI大降价--分析各品牌AI的分效用和价格
  • 华为云kubernetes部署deepseek r1、ollama和open-webui(已踩过坑)
  • Linux进程概念
  • ELF2开发板(飞凌嵌入式)部署yolov5s的自定义模型
  • 出现 Can not find ‘Converter‘ support class Year 解决方法
  • UE学习日志#20 C++笔记#6 基础复习6 引用2
  • celery策略回测任务运行及金融量化数据增量更新|年化18.8%,回撤8%的组合策略(python代码)
  • python学习笔记5-函数的定义
  • 2022ACMToG | 寻找快速的去马赛克算法
  • 每天学点小知识之设计模式的艺术-策略模式
  • 网络安全学习 day5
  • 司库信息化解决方案(deepseek来源)
  • DeepSeek 遭 DDoS 攻击背后:DDoS 攻击的 “千层套路” 与安全防御 “金钟罩”_deepseek ddos
  • 11. 9 构建生产级聊天对话记忆系统:从架构设计到性能优化的全链路指南
  • 低空经济火热,大载重物流运输无人机技术详解
  • TensorFlow 与 PyTorch 的直观区别
  • sql表的增删改、替换