启动靶机,
上面说让你试着找一下源文件, backupfile 是备份文件, 这个时候需要用扫描工具 dirsearch 扫描一手, 工具去下面链接下载
https://github.com/maurosoria/dirsearch
然后能扫描出来一个文件 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 了:
来源: http://www.bubuko.com/infodetail-3675879.html