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了: