BUU[ACTF2020 新生赛]BackupFile

backup文件也叫系统备份文件,它的做作用是:拷贝到存储介质上的文件,可以帮助保护数据,以防其在系统硬件或存储介质出现故障时受到破坏。

那么搜索一下备份文件后缀名,如果网站存在备份文件,常见的备份文件后缀名有:“.git” 、“.svn”、“ .swp”“.~”、“.bak”、“.bash_history”、“.bkf” 尝试在URL后面,依次输入常见的文件备份扩展名。这里也可以用御剑或者其他扫描文件得到后缀为.bak

BUU[ACTF2020 新生赛]BackupFile

 

加上index.php.bak后发现index的php代码:
 

<!--?php
include_once "flag.php";

if(isset($_GET['key'])) {//以GET形式获得KEY变量
    $key = $_GET['key'];
    if(!is_numeric($key)) {//判断key是否为数值或者数字字符串,无论十进制亦或十六进制也行
        exit("Just num!");
    }
    $key = intval($key);//intval — 获取变量的整数值
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {//双等号是弱比较类型
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}

php 弱类型总结 - Mrsm1th - 博客园

0x02 知识介绍

php中有两种比较的符号 == 与 ===

1 <?php
2 $a = $b ;
3 $a===$b ;
4 ?>

=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较

== 在进行比较的时候,会先将字符串类型转化成相同,再比较

如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行

这里明确了说如果一个数值和字符串进行比较的时候,会将字符串转换成数值

则str这里在进行弱比较时转化为了123,所以key=123即可得到flagBUU[ACTF2020 新生赛]BackupFile

 

flag{3f7d3c1c-275f-4655-a96e-48feb3147e1c}

 

上一篇:PostgreSQL与mysql的比较


下一篇:git遇到无法添加到版本的文件