[ACTF2020 新生赛]BackupFile

文章讲述了参与ACTF2020新生赛中BackupFile挑战的过程。选手通过BP爆破找到index.php.bak目录,下载后进行代码审计。代码中包含flag.php,要求GET参数key为数字且与特定字符串弱类型相等。通过理解代码逻辑,构造payload?key=123可以获取flag。
摘要由CSDN通过智能技术生成

[ACTF2020 新生赛]BackupFile

分析

进入靶场:
在这里插入图片描述

  • 首页只显示了一段文字,看来是要找备份文件。
  • BP爆破

得到目录: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!";
}
  • include_once "flag.php";:包含flag文件
  • $key = $_GET['key'];:需要一个参数key
  • if(!is_numeric($key)):对key做过滤,
    • is_numeric:如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE,注意浮点型返回 1,即 TRUE。
  • if($key == $str):将key和str做个了比较,这里是弱类型比较。
    • 如果key为数字时,在做==比较时,str字符串自动变为数字,即str=123

payload

根据上述条件,构造出payload:?key=123
在这里插入图片描述

GET Flag ! ! !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值