备份是个好东西:
线索
- 发现两串相同的字符连接在一起
MD5的结果是:undefine
2、题目提示“备份”: 想到.bak
尝试flag.php.bak -----错误
做题过程:
御剑扫后台:
打开后没有特殊字符串
尝试备份文件---index.php.bak
<?php
/**
* Created by PhpStorm.
* User: Norse
* Date: 2017/8/6
* Time: 20:22
*/
include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
//获取URL中查询的值
$str = substr($str,1);
//获取?之后的值
$str = str_replace('key','',$str);
//查询的值中中以空格替换key
parse_str($str);
echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
当查询的Key1变量的MD5值等于key2变量的MD5的值时打印flag
md5函数处理数组时有总返回NULL的特性
所以构造:
?$kkeyey[]=1&&$kekeyy[]=2
两数组的MD5都是“UNDEFINE”
而两个变量的值又不相等
得出flag
看 EustiaSoraCSDN博客上的,也实践下其他工具,加深下记忆
访问得代码