进入题目发现什么都没有,只有一串字符串,各种解密方式也解不出东西。这时候我们扫一下后台,看看有没有可用的文件。
扫到一条备份文件,再加上题目说的备份,那应该就是它了。下载后打开得到如下代码:
<?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'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
分析一下代码,我们需要让两个key的md5值相同但是key的值不同 ,由于md5无法处理数组,会返回两个NULL,NULL的md5值是相同的,但是数组值可以不同,注意此处会将‘key’替换为空格,因此要进行绕过。
成功拿到flag