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

BUUCTF在线评测-练习场-WebCTF习题[ACTF2020 新生赛]BackupFile1-flag获取、解析

解题思路

打开靶场,提示

Try to find out source file!

加上题目的

BackupFile1

提示的比较明显就是找备份文件了,常见的后缀有.bak,.backup,.zip等等

直接上dirsearch扫目录,扫到下面这个明显的备份文件

直接访问,提示下载,分析源码

<?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!";
}

 前面的确保存在和确保数字就不说了,下面说核心源码

    $key = intval($key);$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";if($key == $str) {echo $flag;}

这里需要理解的是函数与弱比较

intval($key) 的作用

  • intval() 函数将 $key 转换为整数。转换规则如下:

    • 如果 $key 是字符串,它会从字符串开头解析数字部分,直到遇到第一个非数字字符,然后返回该数字的整数值。

    • 如果 $key 以非数字开头,intval() 返回 0。

    • 例如:intval("123abc") 返回 123intval("abc123") 返回 0

  1. 比较条件 $key == $str

    • 由于 $key 被 intval() 转换为整数,比较实际上是整数与字符串之间的松散比较。

    • PHP 的松散比较规则:如果一边是整数,另一边是字符串,PHP 会尝试将字符串转换为数字,然后再比较。

    • 因此:

      • $str 会被转换为整数 123(因为它以 "123" 开头)。

      • 条件简化为:intval($key) == 123

    • 只要 intval($key) 的结果是 123,条件就成立。

因此,我们只要输入key为123即可

/?key=123

总结

一道基础的扫目录、代码审计的题目 

http://www.lqws.cn/news/514261.html

相关文章:

  • 一款实验室创客实验室用的桌面式五轴加工中心
  • 04-html元素列表-表格-表单
  • django request.data.get 判断有没有 某个参数
  • GROUP BY、UNION和COALESCE协作
  • 电商导购app平台的缓存策略与性能优化方案:架构师的实践经验
  • 【番外篇】TLS指纹
  • 4.1 ROS颜色目标识别与定位
  • 【大厂机试题解法笔记】分解连续正整数组合/ 分解正整数
  • 探索解析C++ STL中的 list:双向链表的高效实现与迭代器
  • 领域驱动设计(DDD)【13】之重构中的坏味道:深入理解依恋特性(Feature Envy)与表意接口模式
  • 没有VISA怎么注册AWS?
  • Flutter - 原生交互 - 相册
  • C语言基础回顾与Objective-C核心类型详解
  • QT 学习笔记摘要(三)
  • 每日AI资讯速递 | 2025-06-25
  • TDengine 的 CASE WHEN 语法技术详细
  • 磐维数据库PanWeiDB V2.0-S3.1.1_B01集中式一主二备安装
  • linux安装docker
  • Android14音频子系统-ASoC-ALSA之DAPM电源管理子系统
  • ISO/IEC 27001:2022 資訊安全管理系統 Information Security Management System , ISMS
  • elementui修改radio字体的颜色和圆圈的样式
  • centos7网络不可达connect: network is unreachable
  • 【JVS更新日志】物联网、智能排产APS、企业计划、规则引擎6.25更新说明!
  • 华为云Flexus+DeepSeek征文|基于Dify构建智能情感分析Agent全流程
  • MiniMax-M1混合MoE大语言模型(本地运行和私有化搭建)
  • 【零基础学AI】第3讲:Git版本控制基础
  • Java项目RestfulAPI设计最佳实践
  • 深入剖析:Spring Boot系统开发的高效之道
  • T-BOX 革新:ASR1606 LTE Cat.1 联合 SD NAND MKDV1GIL-AST 的优势剖析
  • 签名组件:uniapp 签名组件开发,兼容小程序、H5、App等 电子签名