[ACTF2020 新生赛]BackupFile
首先打开环境的初始界面如下所示
题目提示说源码泄露
所以扫一下后台
发现一个index.php.bak
文件,然后将此文件下载下来,去掉.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!";
}
对源码进行分析可以得出
源码的意思是传一个key参数,这个参数必须是整数,然后和str字符串比较,int和string是无法直接比较的,php会将string转换成int然后再进行比较,转换成int比较时只保留数字,第一个字符串之后的所有内容会被截掉,双等属于弱类型比较。所以只需要key=123就行了
所以payload
?key=123