天天看点

bugku web 备份是个好习惯题解

题解

打开网站只有一串不知道是啥的数字(后面知道了,是md5的空字符串)

bugku web 备份是个好习惯题解

看了网上的题解,大部分都是用御剑扫的…嗯好吧,真是简单粗暴,不过确实有用,找到了

index.php.bak

,下载下来是如下的代码,在这里做个注释

<?php
/**
 * Created by PhpStorm.
 * User: Norse
 * Date: 2017/8/6
 * Time: 20:22
*/

include_once "flag.php";
# 将display_errors值置为0
ini_set("display_errors", 0);
# 返回除了网址以外的,以'?'开头的请求部分
$str = strstr($_SERVER['REQUEST_URI'], '?');
# 去掉问号
$str = substr($str,1);
# 把str中的key都替换成空的
$str = str_replace('key','',$str);
/*
 将请求的url中的值都存到相应变量中
 如处理完的str为key1=kad&key2=yyy
 那么key1和key2的值则分别为kad和yyy
 */
parse_str($str);
echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}
?>
           

因此构造一下,可以用

http://123.206.87.240:8002/web16/?kekeyy1=QNKCDZO&kekeyy2=s878926199a

,其中

QNKCDZO

s878926199a

的md5编码都以0e开头,这里用到了php中

==

的绕过 【ctf知识】php中双等号在判值上的漏洞

提交上面的payload拿到flag

bugku web 备份是个好习惯题解

真的学到了好多东西,路还长着嘞qwq