[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'];:需要一个参数keyif(!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 ! ! !
文章讲述了参与ACTF2020新生赛中BackupFile挑战的过程。选手通过BP爆破找到index.php.bak目录,下载后进行代码审计。代码中包含flag.php,要求GET参数key为数字且与特定字符串弱类型相等。通过理解代码逻辑,构造payload?key=123可以获取flag。
336

被折叠的 条评论
为什么被折叠?



