[BUUOJ记录] [ACTF2020 新生赛]BackupFile、Exec

两道题都比较简单,所以放到一块记下来吧,不是水博客,师傅们轻点打

BackupFile

题目提示“Try to find out source file!”,访问备份文件/index.php.bak获得index.php源码(其实这里还试了一小会,本来以为是www.zip、bak.zip之类的,最后才想到.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!";
}

要求GET方式传递一个Key值,并且Key必须为数字且等于123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3这一字符串

感觉是考PHP的弱类型特性,int和string是无法直接比较的,php会将string转换成int然后再进行比较,转换成int比较时只保留数字,第一个字符串之后的所有内容会被截掉

所以相当于key只要等于123就满足条件了:

Exec

命令执行,没啥说的,利用&执行多条命令,输入127.0.0.1 & cat /flag获得Flag:

猜你喜欢

转载自www.cnblogs.com/yesec/p/12404465.html