首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【BUUCTF】[ACTF2020 新生赛]BackupFile

【BUUCTF】[ACTF2020 新生赛]BackupFile

作者头像
熔城Sec
发布2026-07-22 20:31:34
发布2026-07-22 20:31:34
490
举报

01、题目简介

  • 题目名称:[ACTF2020 新生赛]BackupFile
  • 题目平台:BUUCTF
  • 题目类型:Web

02、解题步骤

启动并访问靶机

根据访问网页提示,使用目录扫描工具找到正确的文件路径index.php.bak,文件代码如下:

代码语言:javascript
复制
<?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!";
}

isset($_GET['key'])用来检查 URL 参数中是否有key,如果没有则输出 "Try to find out source file!"

is_numeric($key)用来判断变量是否为数字或数字字符串如果$key不是数字或数字字符串,直接输出 "Just num!" 并退出。

$key = intval($key),intval() 会将变量转换为整数。如果$key已经是数字或数字字符串,就取其整数部分(截断小数)

if($key == $str)当比较一个整数和一个字符串时,字符串会被转换为整数,然后进行,比较,此处使用 == ,左边$key是整数,右边$str是字符串

字符串转整数的规则:

从字符串第一个字符开始,如果它是数字或正负号,则连续读取直到遇到非数字(或小数点)为止。

如果开头没有有效数字,转换结果为 0

代码中,$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3"

因此:

代码语言:javascript
复制
$key == $str   →   $key == (int)$str   →   $key == 123

所以可以获得传参

代码语言:javascript
复制
?key=123
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 熔城Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • $key = intval($key),intval() 会将变量转换为整数。如果$key已经是数字或数字字符串,就取其整数部分(截断小数)
  • if($key == $str)当比较一个整数和一个字符串时,字符串会被转换为整数,然后进行,比较,此处使用 == ,左边$key是整数,右边$str是字符串
  • 字符串转整数的规则:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档