1.签到题略
2.是一张单纯的图片
Winhex查看发现如下一段编码
而我们知道以开头的是 HTML、XML 等 SGML 类语言的转义序列,所以使用urlencode得到flag
3.隐写
用了一遍winhex,stegslove,都没有发现问题,尝试使用winhex更改图片高度
第二行0123是宽度,4567是高度,我们将第6列的01更改为11得到flag
4.telnet
下载下来是一个.pcp文件,标题已经暗示了做法,过滤telnet,追踪tcp流得到flag。有关telnet的知识https://baike.baidu.com/item/Telnet/810597?fr=aladdin
5.眼见非实(iscc)
下载后打开更改后缀名为zip,打开后发现有个docx文件,但是打开后并非docx,再次更改后缀名为zip,查看有一堆文件,其实flag在documents.xml里,现在反过来想是对的,因为开始文件夹打开就有一个docx文件,而docx一般就是documents,本人在其他一个.xml里糊涂了,找到了一个像flag的东西,因为是{}格式就怎么提交也不对,后来发现蠢了。
6.又一张图片,还单纯吗?
通过binwalk分析发现里边还有jpg,对其进行分离得到flag
1.web 2 看源代码
2.文件上传测试
尝试上传php文件,显示要求jpg文件,反过来也一样,抓包,修改后缀名为.jpg.php get到flag
3.计算器
修改maxlength
4.web基础$_get
查看源代码,控制台跑一下
6.矛盾
分析代码,is_numeric语法要求num不能是数字或者是字符串,但是有要求num值为1,这时候需要用到科学计数法,构造?num=1*10^0得到flag。相似的360的一道题目
$num = $_GET['num'];
if(is_numeric($num)){
echo "Fuck it!";
}else{
if($num == 8){
echo "You got it!";
}
echo $num;
}
?>
这里也用到了这个函数,bypass方法:test.php?num=8 在 8 后面加任何除数字之外的字母或者符号即可绕过。比如 test.php?num=8a,甚至test.php?num=8%20,加一个空格就可以绕过。具体的可以参考这篇文章Ddctf.didichuxing.com/challenges
7.web3
查看源码,Unicode
8.sql注入
查看源代码gb2312应该是存在宽字节注入,也就是注入的时候会将’转义为\’,通过输入%df’转移之后为%df%5c’,%df%5c这两个字节就会被合并成汉字 運,后面的’就被释放出来了。 宽字节注入nctf平台也有到题目,有兴趣的可以看下,宽字节漏洞分析:https://blog.csdn.net/wy_97/article/details/77389088
题目已经说了是一道注入题,那么我们则需要找到注入点,一般思路’闭合导致注入,使用?id=1等数字进行测试,发现除了0,1之外其他数字都会导致页面的改变。
我们进行测试输入%df’会报错如下图所示
%df' union select 1,2 %23
Key值为2的地方则是注入点
%df' union select 1,database() %23
根据题意查询key表,id=1的string字段构造url?id=%df' union select 1,string from sql5.key %23或者%df' union select 1,string from sql5.key--+得到flag
9.域名解析
听说把 flag.bugku.com 解析到120.24.86.145 就能拿到flag,意思是将flag.bugku.com 解析到120.24.86.145,打开hosts文件,路径为C:\Windows\System32\drivers\etc ,如果出现了没有权限的情况,点击文件-windowspowershell-以管理员身份运行,输入cmd-回车-notepad hosts,打开hosts文件,这是修改后就可以保存,运行网站,即可拿到flag
10.你必须让他停下
Bp抓包,go
11.变量1
flag In the variable !
error_reporting
(
0
);
include
"flag1.php"
;
highlight_file
(
__file__
);
if(isset(
$_GET
[
'args'
])){
$args
=
$_GET
[
'args'
];
if(!
preg_match
(
"/^\w+$/"
,
$args
)){
die(
"args error!"
);
}
eval(
"var_dump($
$args
);"
);//$$
可变变量涉}
?>
代码审计,发现最后一行$$,在php中$$是可变变量,可变变量可以参考https://www.jb51.net/article/68950.htm
在这个时候我们要用到$GLOBALS ,引用全局作用域中可用的全部变量,$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。构造url?args=GLOBALS得到flag。
12头等舱
抓包
13web4
解密得到
function checkSubmit(){
var a=document.getElementById("password");
if("undefined"!=typeof a)
{
if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)
return!0;
alert("Error");
a.focus();
return!1
}
}
document.getElementById("levelQuest").οnsubmit=checkSubmit;
提交67d709b2b54aa2aa648cf6e87a7114f1得到flag
14flag在index里
可以看到关键词file,所以应该是文件包含,构造url得到base64加密的内容解密得到flag
http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
15输入密码查看flag
提示说请输入五位数密码,而且url写到了baopo,所以我们使用bp进行爆破
网页随意输入一个五位数进行抓包,send to intruder进行暴力破解,
Clear不需要破解的内容,对我们需要破解的加上标识,
由于已经说是五位数字了,所以我们选择数字,变量只有一个所以payload set为1,设定范围,开始attack
在结果里找到与其他不一样的那一个则是我们需要的内容。
三、社工
1.密码
猜测flag为姓名+生日
2.信息查找
百度bugku.cn然后看你找到了什么
3.信息查找
百度一个社工库然后翻下墙找下flag
四.加密
1.滴答~滴
摩斯码了解一下?
2.聪明的小羊
栅栏密码了解一下?
3.Ook!
开始也不知道这个是什么,问了下度娘,原来是一种编程语言,解码一下得到flag
https://www.splitbrain.org/services/ook
几道数据包题目
1.flag被盗(签到题目)
题目链接:https://ctf.bugku.com/challenges#flag被盗
题目提示flag被盗,赶紧溯源!分析数据包,在105号数据包中直接获取flag2.中国菜刀(签到x2)
题目链接:https://ctf.bugku.com/challenges#中国菜刀
分析数据包,追踪HTTP流后发现这里记录了一些入侵的数据,在这里我们发现这样一个压缩包: flag.tar.gz于是放到binwalk之下查看确认存在此数据包最后我们使用-e命令进行分离得到一个压缩包,对其进行提取便可以得到flag
3.这么多数据包(小技巧)
题目链接:https://ctf.bugku.com/challenges#这么多数据包
题目中提示说道
这么多数据包找找吧,先找到getshell的流
根据个人经验getshell被捕获的数据一般出现在tcp里,并且会有command,所以我们直接在过滤栏里输入tcp contains "command"
即可,如下图所示
接下来导出tcp流可以看到一段base64编码解码即可getflag。
4.手机热点(蓝牙传输协议应用)
题目链接:https://ctf.bugku.com/challenges#手机热点
题目描述:httppan.baidu.coms1cwwdVC 有一天皓宝宝没了流量只好手机来共享,顺便又从手机发了点小秘密到电脑,你能找到它吗?
题目来源:第七季极客大挑战
根据题目提示,手机共享,那么应该是蓝牙传输,而我们知道蓝牙传输协议为obex,过滤数据包看到如下图所示内容
binwalk下进行分离便可以得到flag