[ACTF2020 新生赛]BackupFile

使用burpsuite进行目录遍历,发现index.php.bak备份文件

 1 <?php
 2 include_once "flag.php";
 3 
 4 if(isset($_GET['key'])) {
 5     $key = $_GET['key'];
 6     if(!is_numeric($key)) {
 7         exit("Just num!");
 8     }
 9     $key = intval($key);
10     $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
11     if($key == $str) {
12         echo $flag;
13     }
14 }
15 else {
16     echo "Try to find out source file!";
17 }

代码第11行存在问题,当数字类型和字符类型进行比较时,php会尝试将字符串转化为数字类型,这里会将str变量转化为123,从而产生了绕过,获取到了flag

payload:

http://037ce71e-ea0f-46ae-9089-964fc9b48628.node3.buuoj.cn/?key=123

原文地址:https://www.cnblogs.com/gtx690/p/13229293.html