[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 ! ! !