ext3
(1)附件是一个没有后缀的文件,使用notepad++打开,Ctrl+F出现搜索框,搜索flag
(2)发现在O7avZhikgKgbF目录下有个flag文件,用7-ZIP工具打开附件,找到flag.txt文件。
(3)出现了一串base64加密的字符串,这里我用的是CaptfEncoder工具,解码后得flag{sajbcmbzskjjcnbhsbvcjbjszcszbkzj}
功夫再高也怕菜刀
(1)附件是一个.pcapng文件,使用Wireshark打开文件查看报文查找flag信息,输入表达式http contains flag查看http协议的报文是否包含flag 的信息
(2)根据筛选出的报文,追踪tcp流,在第1150个报文中发现一串十六进制的流信息,其中,FFD8是jpg文件头标志,FFD9是结束标志,说明这里有一张jpg格式的图片。
(3)将这部分信息复制到一个文本文档.txt中保存,用010 editor工具以十六进制导入,并另存为jpg格式,得到一张图片
(4)接着在kali中用foremost分离附件.pcapng文件,得到一个zip文件,里面有一个压缩包,包含flag文件。使用上面图片中的“Th1s_1s_p4sswd_!!!”作为密码,获取flag。
#foremost已在kali中预安装,使用如下命令安装
$sudo apt-get install foremost //非管理员需要加上sudo
#分离文件
$foremost -t all ctf.pcapng
#执行完上面的语句后,会生成一个output目录,进入该目录即可查看分离的文件。
give_you_flag
(1)附件是一张gif的动图,查看后可发现图片里存在一个二维码。于是这里用stegsolve工具将动图分解为一张张图片,以便查看。
(2)找到那张出现二维码的图片,发现定位点缺失。百度下载一张二维码定位点图片,接着打开Windows自带的画图工具,选择“新建”,然后依次把定位点图片和二维码图片通过“粘贴来源“导入,将定位点拖拽到缺失的地方,保存即可。(不会ps只能这样了,嘤嘤嘤~)
#下载的定位点图片可能会有一些白色边框,在合成图片时可能会覆盖掉二维码。同样可以在画图工具里,打开定位点图片,通过多次“旋转”的操作,然后不断调整白色画布的大小去掉边框,去掉边框后保存就可以了。
(3)二维码图片补全后,用二维码扫描器扫描就可以得到flag了。
#stegsolve工具:
File Format:文件格式,这个主要是查看图片的具体信息
Data Extract:数据抽取,图片中隐藏数据的抽取
Frame Browser:帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看
Image Combiner:拼图,图片拼接
#stegsolve打开方式:
(1)首先需要添加java环境,这里就不赘述了。
(2)打开stegsolve所在目录,在目录框输入cmd,打开运行窗口
(3)在运行窗口输入以下命令即可打开:
java -jar stegsolve.jar
坚持60s
(1)附件是一个.jar文件,在cmd下用java -jar xxxx.jar查看
(2)用jd-gui工具反编译,在cn.bjsxt.plane.PlaneGameFrame.class文件下发现flag(Ctrl+F搜索)
gif
(1)解压附件,在gif文件夹下看到许多黑白的图片,联想到二进制
(2)将各个图片转化为对应的二进制,使用在线二进制转字符串工具http://www.txttool.com/WenBen_BinaryStr.asp即可得到flag。
掀桌子
(1)获取的报文内容为0-9,a-f,考虑十六进制。但该串十六进制数无法直接转化为字符串(ASCII值)
(2)把十六进制两两一组转换为十进制;接着将十进制数减去128(因为ASCII码值为0~127),让其落到ASCII码表上,然后计算出对应ASCII码值的字符,获取flag。
(3)采用如下java编写的代码:
public class Misc {
public static void main(String[] args) {
// TODO Auto-generated method stub
String hex="c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2";
String temp="";
String flag="";
for(int i = 0; i < hex.length();i+=2) {
temp=hex.substring(i,i+2); //获取相邻的字符
long dec=Long.parseLong(temp,16); //将两个字符转换为十进制
flag=Long.toString(dec-128); //将Long型的十进制值减去128,再转换为String
System.out.print((char)Integer.parseInt(flag)); //解析flag为十进制整数,并强制转换为char,存取字符
}
}
}
(4)查看执行结果
如来十三掌
(1)附件是一串禅语
(2)使用在线工具使用“与佛论禅”来进行解码(解码时记得在原文字的开头加上“佛曰:”)在线工具:http://www.keyfc.net/bbs/tools/tudoucode.aspx
(3)根据题目提示的13掌,用rot-13解码
#rot13使用一个简单的替换加密算法,类似凯撒密码
(4)又是一串密文,用base64试试,看到flag。
stegano
(1)附件是一个pdf文件,全选后复制到一个word文档里,发现了一串特殊的字符
(2)看到AB,但不是培根密码,培根密码是5个一组,联想到摩斯密码将A替换为. ,B替换为-,可以自己写个代码转换一下(这里我用的c语言)
int main(){
char word[200];
gets(word);
int i=0;
while(word[i] != 0){
if(word[i] == 'A'){
word[i]='.';
printf("%c",word[i]);
}
if(word[i] == ' '){
printf(" ");
}
if(word[i] == 'B'){
word[i]='-';
printf("%c",word[i]);
}
// printf("%s",word[i]);
i++;
}
system("pause");
return 0;
(3)然后放到在线摩斯密码加解密上解密http://www.txttool.com/t/?id=Mzg1(注意分割的时候空格也要输入)
SimpleRAR
(1)解压附件得到一张两帧的图片
(2)现将这两帧图片分别保存,然后用stegsolve分别打开,发现是都是缺失一半的二维码图片
(3)利用画图工具,将两张图拼在一起,并将定位点补充完整,用二维码扫描器扫描即可