Web_BUUCTF_WriteUp | Havefun
题目
分析
用鼠标划了半天,好像不能撸(
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中的特殊字符 + % # & = ? /-拾破烂的-博客园