下面是对攻防世界MISC新手区解题的一点思路。
常用在线转换工具:http://tool.php.cn/
站长工具:http://tool.chinaz.com/
目 | 录 |
---|---|
1.this is flag | 2.ext3 |
3.give you flag | 4.pdf |
5.stegano | 6.simpleRAR |
7.坚持60s | 8.gif |
9.掀桌子 | 10.如来十三掌 |
11.base64stego | 12.功夫再高也怕菜刀 |
1. this is flag
回到目录
看到个for example。。 直接复制提交
flag{th1s_!s_a_d4m0_4la9}
2. ext3
回到目录
下载附件。。。
用记事本打开,搜索flag ,发现有两个txt,猜他是个压缩包,用压缩包打开附件,解压。
搜索框搜索flag.txt
打开文件
base64解密得到flag
flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}
3.give you flag
回到目录
先认真看gif,在某个瞬间有二维码闪过。。。
我这里用 Adobe Premiere打开之后播放,找到那个出现二维码的部分,好像缺点什么。
用画图软件手动画上定位标标志,微信扫描发现flag由于手画,而且分辨率也差,得多扫几次。
flag{e7d478cf6b915f50ab1277f78502a2c5}
- 拓展:
下面图片来源:http://www.360doc.com/content/18/0406/01/48409871_743187016.shtml
4.pdf
回到目录
打开图
把图片移走:
flag{security_through_obscurity}
5.Stegano
回到目录
下载打开:一脸懵逼。。。啥都没有,一堆外文。wps也没会员,编辑不了。
然后想到用 Neat Office 打开 ,发现最上面有一排字母:
放大:
发现一排AB字母组合,这是摩斯密码(培根密码是5个一组)
然后把所有的 A换成. B换成-
结果文件:
答案:
flag{1nv151bl3m3554g3}
6.simpleRAR
下载文件:
解压打开有个flag.txt:里面写的一句废话。。。
在WinHex中打开压缩包:
下面的红色标记原本是7A改成74:(rar对png的文件类型编码是74)
重新解压,然后图片出来了
打开是一个空白图片,然后用 >java -jar Stegsolve.jar来查看次图片
发现是一个gif
然后用gif分隔工具,会分出两个帧:
再次用Stegsolve来查看这两个帧。会找到二维码。
Stegsolve.jar下载:
链接:https://pan.baidu.com/s/1uv7lYDZbFctqsypc4EmYQA
提取码:xnpg
gif分隔:
链接:https://pan.baidu.com/s/1B9vqJp17rb59zxPpXRPVQw
提取码:y4oh
画图工具拼接,补充定位,扫描二维码 出奇迹了。
flag{yanji4n_bu_we1shi}
7.坚持60s
下载压缩包。
运行,没有什么用,反正就是死了,想试着改一下代码。。。
用这个软件反编译一下class
反编译软件:
链接:https://pan.baidu.com/s/1sCMP3yR0txXisdK-wr7DIg
提取码:hfbg
当反编译到:时发现有flag… 习惯的看到=想到了base64解密。
flag{DajiDali_JinwanChiji}
8.gif
下载,解压后发现里面全是jpg,偶然:
发现刚刚好八位,第一张全是白色,那么就类似八位无符二进制。
那么就像:104/8 == 13。。。
接下来转换一下:
八位二进制----十进制-----ASCII
flag{FuN_giF}
9.掀桌子
看题目可以看出这是一串16进制
然后就又想到转 ASCII
flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}
10.如来十三掌
得到一串字符,
MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
解密工具:
链接:https://pan.baidu.com/s/18X3ZRfOMe179alvDVSrxwQ
提取码:vjeh
先Rot13解密
开始base64解密:
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}
PS: doc本身就是一个压缩包,就像apk一样。
11.base64stego
解压看到
base64解密:
翻译之后发现,上当了。。。
推荐:https://blog.csdn.net/qq_44009311/article/details/102770083
???
代码中有解释,看不懂或有更好的建议,欢迎一起探讨。。。?
-
在base64中找出 隐写的 flag
#include <iostream> #include <map> #include <string> #include <fstream> #define f(i,a,b) for(int (i)=(a);(i)<(b);(i)++) #define _f(i,a,b) for(int (i)=(a);(i)>=(b);(i)--) using namespace std; int main() { ifstream in("stego.txt");//把文本保存在a.txt map<char,int> v; // 存储字符对应的base64编码 f(i,'A','Z'+1) v[i]=i-'A'+0; f(i,'a','z'+1) v[i]=i-'a'+26; f(i,'0','9'+1) v[i]=i-'0'+52; v['+']=62,v['/']=63,v['=']=64; string str="", str_01=""; //记录每行的字符串,每行文本对应的二进制 for(int d[4]; getline(in,str); ) { _f(i,3,1) d[i]=v[str[str.length()-i]]; //取出每行的倒数三个 if(d[1] == 64) //从后面对第一个不为等号的字符进行提取,解码时1个字符对应6位二进制 if(d[2] == 64) _f(i,3,0) str_01+=('0'+((d[3]>>i)&1)); //末尾两个等号,说明倒数第三位字符有4位空间可以隐藏flag else _f(i,1,0) str_01+=('0'+((d[2]>>i)&1)); //末尾有一个等号,说明倒数第二位字符有2位空间可以隐藏flag } printf("flag:\n"); for(int i=0,b=0; i<str_01.length(); printf("%c", b), b=0, i+=8) //把保存的二进制进行解析 _f(j,7,1) b|=((str_01[i+j]-'0')<<(7-j)); //8位二进制对应1位字符 printf("\n"); return 0; }
flag{Base_sixty_four_point_five}
12.功夫再高也怕菜刀
回到目录
下载之后提醒要密码。
在下面打开此文件:
继续查找在1150处发现666.jpg.
右键第1150个数据包,追踪TCP流,复制从FFD8开始到FFD9的内容,到winHex里新建文件粘贴,注意粘贴格式是ASCII Hex。
复制出来用Win Hex保存位一张jpg就是解压密码。然后打开flag.txt
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}