BUUCTF之[ACTF2020 新生赛]BackupFile 解题过程

CTF中的BUUCTF之[ACTF2020 新生赛]BackupFile 解题过程

启动我们的挑战项目,发现上面什么都没有。只有一段话:Try to find out source file!
在这里插入图片描述
但是,题目有给我们提示说:Backup file,翻译成中文就是备份文件的意思
在这里插入图片描述
根据做题经验我了解到备份文件名有www.zip还有名为.bak .swp等等。但是因为懒,我就直接用dirsearch来进行扫描了(虽然扫描的时候要花很多时间…)
在这里插入图片描述
最终扫描到一个文件名为:/index.php.bak的文件
在这里插入图片描述
然后访问这个连接,然后把备份文件下载下来。发现是一个PHP的代码审计
在这里插入图片描述
用记事本这样的工具打开便可以看到里面的PHP代码

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

emmmmmm感觉是弱类型的比较题。主要代码是:

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

在PHP中:
= = 为弱相等,即当整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123admin456进行= =比较时。则b只会截取前面的整数部分。即b转化成123。
所以,这里的a = = b是返回True。
所以这里我们只需要提供一个参数?key=123就可以拿到flag了
在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值