BugKu:备份是个好习惯

解题过程

了解到备份二字,说明可能存在备份文件。
备份文件的好处是:浏览器无法解析带有备份后缀的文件,之后会直接提供用户下载到本地,用户通过去掉备份后缀打开可以查看页面源代码进行代码审计
通过查找,查到index.php.bak这个备份文件
image
在浏览器输入后下载到本地返现是PHP代码:

<?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字符过滤成'' ,但是我们可以使用双写绕过
  • parse_str是传入变量到str中去,解析str
  • 之后是md5的加密

这里的问题就是,md5加密比较麻烦,但是md5不能解析数组,所以我们传入数组即可
传入变量:
image
flag就出来了
image

posted @ 2021-09-16 21:48  Zeker62  阅读(63)  评论(0编辑  收藏  举报