buuctf-web [ACTF2020 新生赛]BackupFile

启动靶机,

 上面说让你试着找一下源文件,backupfile是备份文件,这个时候需要用扫描工具dirsearch扫描一手,工具去下面链接下载

https://github.com/maurosoria/dirsearch

我们到主程序的目录下,也就是dirsearch的文件位置然后执行  py dirsearch.py -u url地址 -e*

 然后能扫描出来一个文件index.php.bak

然后下载下来,利用工具打开,我是用的Notepad++Portable打开的

<?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的值要相等才行,

 

 intval()函数就是用于获取变量的整数值的,int和string是无法直接比较的,php会将string转换成int然后再进行比较,转换成int比较时只保留数字,第一个字符串之后的所有内容会被截掉。

所以key为123就可以

最后的pyload就是为?key=123

这样就可以得到flag了:

原文地址:https://www.cnblogs.com/awsole/p/13726921.html