Web_BUUCTF_WriteUp | Havefun

发布时间 2023-11-12 15:33:10作者: Guanz

题目

分析

用鼠标划了半天,好像不能撸(

F12 打开控制台,在查看器里看到一条 PHP 注释

$cat=$_GET['cat'];
echo $cat;
if($cat=='dog'){
    echo 'Syc{cat_cat_cat_cat}';
}

分析一下注释:
$cat=$_GET['cat'];:变量 cat 获得变量 _GET 收集的来自 method="get" 的表单中的值。
echo $cat;:打印变量 cat。
if($cat=='dog'){ }:如果变量 cat 恒等于字符串 dog
echo 'Syc{cat_cat_cat_cat}';“:打印字符串 Syc{cat_cat_cat_cat}

因为数据通过 GET 表单传递,我们可以直接在 URL 中进行操作。当变量 cat 的值为 dog 时,打印的 Syc{cat_cat_cat_cat} 和 flag 的形式很像。

尝试了提交 flag{cat_cat_cat_cat} 发现不是答案,那就先赋值试试。
将 URL 改为 http://1bb256d6-4fab-4356-9aaa-cd8742e963d9.node4.buuoj.cn:81/?cat=dog ,其中 ? 用于分隔实际的 URL 和参数,提交得到 flag(啊?)

Flag

flag{8940e548-232a-42ba-be69-081355f2df3a}

参考

PHP 变量-菜鸟教程
PHP 5 echo 和 print 语句-菜鸟教程
HTTP 方法:GET 对比 POST-菜鸟教程
URL中的特殊字符 + % # & = ? /-拾破烂的-博客园