BUUCTF[极客大挑战 2019]Havefun 1题解
- 题目分析
- 解题
- 理解代码逻辑:
- 构造Payload:
- 总结
题目分析
生成靶机,进入网址:
首页几乎没有任何信息,公式化F12
打开源码,发现一段被注释的源码:
下面我们对这段代码进行解析
<!--
$cat=$_GET['cat']; // 从URL获取cat参数
echo $cat; // 回显参数值
if($cat=='dog'){// 判断参数值是否为'dog'
echo 'Syc{cat_cat_cat_cat}';// 输出flag
}
-->
这里我们要注意,这是一段后端代码。当然,从输出可以看出,这一定不是真实的后端代码,只是起到提示输出的作用
解题
理解代码逻辑:
后端期望通过[GET]方法的获取cat参数值,当cat参数值等于字符串"dog"时,会输出flag。
构造Payload:
访问URL:
http://题目地址/?cat=dog
这样$_GET[‘cat’]的值就是"dog",最后的结果是:
flag{950e06b7-f7d0-4219-8824-a1b08051b52a}
总结
这道题是一道最基础的PHP代码审计题,当然,我们需要知道这段代码并非本题真正的后端代码,不要钻牛角尖。