BUUCTF_Misc题目题解记录

Posted 好想变强啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUUCTF_Misc题目题解记录相关的知识,希望对你有一定的参考价值。

BUUCTF刷题Misc篇


文章目录


前言

仅记录解题步骤,方便自己没事儿的时候拿出来强化一下记忆,俗话说好记性不如烂笔头,祝我早日卷赢同事(?

有没有和我一样用M1芯片,装不了工具,用不惯虚拟机,做不动杂项(那就更不要说pwn了)的大冤种?看过来呜呜呜呜呜……


一、ningen

1.下载的附件是一张图片(.jpg),在macOS下的“终端”输入命令:

strings 图片文件名.jpg

可以看到显示的内容最后有txt文件。
2.到kali下用命令:

binwalk -e 图片文件名.jpg

就可以分离出压缩文件9721.zip,可以看到压缩包里面有一个ningen.txt文件,需要密码才能打开。
3.接下来可以在Windows下用Advanced Archive Password Recovery(ARCHPR)爆破密码啦,但我因为某个原因把win11虚拟机删除了,所以就还是在kali下,借助的是fcrackzip工具,按照题目中密码是四位数字的提示,用命令:

fcrackzip -b -c ‘1’ -l 4 -u 9721.zip

据说这里-b代表爆破模式,-c '1’代表是用数字爆破,-l 4代表爆破长度是4位
(真是不如win下用图形化来得快啊呜呜呜但是敲命令行酷啊
然后瞬间就爆破出密码了,放图纪念~

拿这个密码打开txt文件,拿到flagb025fc9ca797a67d2103bfbc407a6d5f

二、小明的保险箱

1.下载附件是一个有着保险箱图案的jpg图片文件
2.本mac用户的思维定势流程:先用strings命令看看里面会有啥东西
3.上一步中果然看到这里面也有txt文件,那就丢进kali用 binwalk -e 分离一下文件
4.果然可以得到上一步分离出的一个rar压缩文件
5.到这里就尴尬了,fcrackzip只能破解zip密码啊
6.然后就去找有没有能爆破rar文件密码的工具,看到了rarcrack,以为和fzipcrack差不多呢结果差挺多……用命令:

rarcrack 1381F.rar —threads 20 --type rar

这个工具用的命令是真的无语,直接开始爆破的话是字母数字混着的,从两位到三位慢慢爆破,眼看这四位纯数字明明很简单却怕是要爆破失败,就赶紧去搜了搜,发现是在爆破开始后桌面上会出现一个.xml文件,修改这个文件的内容只剩下数字就行了,然后发现下面一行是current可能表示的是当前爆破到多少了,就手动改成从四位数字0000开始吧。

PS:我理解的这个工具的用法就是先开始爆破,开始爆破后稍等一下就结束爆破,然后去按自己的需求修改xml文件再重新开始爆破。

还有就是这里threads我是试了个20,好像提示的是现在的情况适合12,最后就是还需要指明文件type是rar。


用密码打开rar中的txt,拿到flag75a3d68bf071ee188c418ea6cf0bb043

这里十分建议还是用win下的ARCHPR吧!

三、爱因斯坦

1.得到一个压缩包,解压后有一张爱因斯坦的图片,老套路strings看一下图片文件的内容,有flag.txt
2.去kali用binwalk -e分离出压缩包,是个zip
3.想去爆破密码,然后一想,不对啊没给关于密码的提示,试了四位数字也没爆破出来
4.去找别人wp,知道了是在Windows下对图片文件右键属性,选择详细信息之后看到备注里面this_is_not_password
5.用this_is_not_password作为解压密码,打开了flag.txt拿到flagdd22a92bf2cceb6c0cd0d6b83ff51606

后来想了下mac下能咋办呢?发现可以用Stegsolve里的文件格式分析:

四、easycap

1.题目附件是压缩包,解压后里面是一个pcap文件,直接用wireshark打开
2.看到全是TCP流
3.本人目前的知识储备就是只知道找到其中一条,右键,追踪流
4.没想到随便点一条去追踪流都能看到flag……

五、隐藏的钥匙

strings 图片名.jpg后,发现内容里有比较长的东西闪过
其实就是给出了flag的base64形式

这倒是很符合“隐藏的钥匙”
base64解码得到flag:

PS:无论是用strings命令,还是用010editor等工具查看文件内容,都可以先试试搜索一下“flag”,虽然现在可能很少有这么直接的题目了……
以010为例放个图:

六、另外一个世界

解压附件后是一张芝麻街甜饼怪的图片文件monster.jpg,strings一下或者010打开也行,最后是一串01二进制数01101011011011110110010101101011011010100011001101110011
丢进工具解密就好啦(这一次CyberChef表现不错,很智能,给个赞~

虽然得到的结果有点短,但flag真的就是koekj3s
也可以自己写个Python小脚本:

也许“另外一个世界”说的就是01二进制的世界吧~


总结

在写博的过程中,我的win11虚拟机重装好啦。又可以用ARCHPR爆破压缩包密码啦。
所以说不能懒啊,一定要克服懒惰迈出第一步。工具越是完备,虚拟机用得越熟练,甚至是电脑桌面和文件的清晰有条理,都能让人更愿意去学习,形成一种正反馈;反之,文件存放的越混乱,学习东一块西一块的而不去总结,问题积攒越多,会变得更懒更不想动,就会继续恶性循环。

Red and Black POJ - 1979(题解)

原题

技术图片技术图片技术图片

http://poj.org/problem?id=1979

题目大意

题目是讲给一张图,然后这张图里一个‘@‘的字符表示起点,‘.‘是黑瓦(可移动到该位置),‘#‘是红瓦片(不可移到该位置),然后问可以到达的位置有多少个,包括起点.

题目分析

dfs模板题,可以当作练习基本的dfs,读入地图的时候顺便记录起点的位置,然后从起点开始dfs,走过的位置顺便标记为‘#‘,防止重复走,记录走过的步数即可.具体dfs可看代码.

代码

 

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <iostream>
 4 #include <cstring>
 5 #include <algorithm>
 6 #include <vector>
 7 #include <string>
 8 #include <utility>
 9 #include <queue>
10 #include <stack>
11 const int INF=0x3f3f3f3f;
12 using namespace std;
13 
14 char a[20][20];
15 int ans;
16 
17 void dfs(int x,int y,int w,int h)
18 {
19     a[x][y]=#; //到达的地方标记为‘#‘防止走重复的路 
20     ans++; //每走一步ans++ 
21     int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; //枚举前进方向 
22     int nx,ny;
23     for(int k=0;k<4;k++)
24     {
25         nx=x+dx[k],ny=y+dy[k];
26         if(nx>=0&&nx<h&&ny>=0&&ny<w&&a[nx][ny]==.) dfs(nx,ny,w,h);//防止越界 
27     }
28 }
29 
30 int main()
31 {
32     int w,h;
33     cin>>w>>h;
34     getchar();
35     while(w&&h)
36     {
37         int i0,j0;
38         ans=0;
39         memset(a,0,sizeof(a));
40         for(int i=0;i<h;i++)
41         for(int j=0;j<w;j++)
42         {
43             cin>>a[i][j];
44             if(a[i][j]==@) i0=i,j0=j;
45         }
46         dfs(i0,j0,w,h);
47         cout<<ans<<endl;
48         cin>>w>>h;
49     }
50     
51     return 0;
52 }

 

以上是关于BUUCTF_Misc题目题解记录的主要内容,如果未能解决你的问题,请参考以下文章

*做题记录表

2017 acm icpc 沈阳(网络赛)5/12 题解

杂题记录及简要题解

Red and Black POJ - 1979(题解)

[计蒜客] ACM-ICPC 2018 南京赛区网络预赛 | 部分题解 | 线段树 + 线性筛 + 最短路

Roadblocks题解