0%

攻防世界之MISC题解

痛定思痛,菜就是原罪,还是从基础开始叭

[CTF Misc常用工具(一)][https://blog.csdn.net/chenl_ce2009/article/details/99772194]

[CTF Misc常用工具(二)][https://blog.csdn.net/chenl_ce2009/article/details/102632353]

[Misc做题总结][https://blog.csdn.net/Laurel_60/article/details/82154712]

ext3

题目描述:今天是菜狗的生日,他收到了一个linux系统光盘

那在linux环境下打开试试

查看文件类型

file ext3

1

ext3是liux的一个文件系统,用strngs查看有没有flag这样的字符

strings ext3 | grep flag

2

有一个flag.txt,那flag应该就在里面,把这个文件系统挂载到linux(root用户下)

mount ext3 /mnt`

3

切换到mnt目录,对flag内容进行读取

cat O7avZhikgKgbF/flag.txt

4

发现是一个base64编码,解密后得到flag

1
flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

知识点

[Linux strings][https://ipcmen.com/strings]

[Linux mount][https://www.runoob.com/linux/linux-comm-mount.html]

[Linux cat][https://www.runoob.com/linux/linux-comm-cat.html]

give_you_flag

题目描述:菜狗找到了文件中的彩蛋很开心,给菜猫发了个表情包

打开附件,发现是一个gif动图,用 stegsolve的查看帧的功能模块查看,发现一个缺少三个定位部分的二维码

5

将其补全,扫一扫即可。

6

1
flag{e7d478cf6b915f50ab1277f78502a2c5}

知识点

https://cli.im/news/help/10601
https://blog.csdn.net/hk_5788/article/details/50839790
https://zhuanlan.zhihu.com/p/21463650
https://www.jianshu.com/p/8208aad537bb

pdf

题目描述:菜猫给了菜狗一张图,说图下面什么都没有

7

在线pdf转word(https://app.xunjiepdf.com/pdf2word/),删去图片

8

1
flag{security_through_obscurity}

stegano

pdf文件,打开许多文字,linux中查看pdf信息:使用命令pdfinfo

1

有个base64码,然而解码是:Nope , not here ;)
用pdftotext命令提取一下文件内容

2

同样也是没什么线索,火狐的开发者工具pdf.js排上用场了,用火狐打开之后,控制台输入

3

得到

4

这一串AB字符串,把AB分别转成.-,得到摩斯密码, 摩斯解密为CONGRATULATIONSnullFLAGnull1NV151BL3M3554G3

1
flag{1nv151bl3m3554g3}

SimpleRAR

附件是一个RAR压缩包,解压缩之后只有一个txt文件,上面写着

3

既然没有flag,那么我们用winhex打开附件, 可以看到从here后面开始就应该是secret.png的部分了

百度了一下rar每个块的开头

在这里插入图片描述

在这里插入图片描述

我们要的是文件块而不是子块,于是更改7A为74

1

成功解压,发现是一张空白的图片

4

用Stegsolve打开图片然后发现了半个二维码

5

题目提示双图层, 将其重命名并用PhotoShop打开,发现有两个空白的图层

在这里插入图片描述

将两个图层分别提取出来,用StegSolve打开,不断点击箭头直到显示出图像

在这里插入图片描述

将两幅二维码拼接到一起并补全定位点,扫描二维码得到flag

1
flag{yanji4n_bu_we1shi}

坚持60s

直接运行附件,发现是个小游戏

1

大致意思就是,你是左上角那个表情包,你要躲开那些绿帽并坚持60秒,通关就有flag
试了一下发现有点难通关

解压该小程序

2

直接使用cmd中javap的命令完成反汇编指令

3

查看反汇编后的代码

4

拿到flag,但这是base64加密,解密完就得到flag了

1
flag{DajiDali_JinwanChiji}

gif

打开下载的附件

1

打开压缩包发现许多张黑白颜色的图片,将黑白图片分别记为1,0,得到01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101,转化为字符串形式即可。

1
2
3
4
5
6
7
8
# gif 二进制转字符串
import re
a = '01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101'
b = re.findall(r'.{8}',a)
flag = ''
for i in b:
flag += chr(int(i,2))
print(flag)

运行得到flag

1
flag{FuN_giF}

掀桌子

题目给出的报文为

c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2

通过观察,试着将16进制字符转为字符串,发现不能直接转化,试着将ascii码值减去128再转化,得到flag

1
2
3
4
5
6
7
8
#十六进制转字符串
import re
a = 'c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
b = re.findall(r'.{2}',a)
flag = ''
for i in b:
flag += chr(int(int(i,16)-128))
print(flag)
1
flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}

如来十三掌

附件是一个word

内容为

夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙呐神。舍切真怯勝呐得俱沙罰娑是怯遠得呐數罰輸哆遠薩得槃漫夢盧皤亦醯呐娑皤瑟輸諳尼摩罰薩冥大倒參夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮

与佛论禅 解密

1

得到MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
由如来十三掌想到rot13,然后进行rot13编码,得到ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9

最后base64解码得到flag

1
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

base64stego

无法直接解压压缩包

1

将其放在winhex下,查找rar标志位,发现是一个RAR伪加密,将第二个504B后的0900改为0000

2

解压得到一个内容全是base64编码的文件

3

初步猜测是base64图片加密,但好像不对。网上查了一下,这个是base64隐写

大佬的讲解https://www.tr0y.wang/2017/06/14/Base64steg/

直接用里面的代码解密

1
2
3
4
5
6
7
8
9
10
11
12
#-*- coding:utf-8 -*-
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('E:\demo\stego.txt', 'rb') as f:
bin_str = ''
for line in f.readlines():
stegb64 = ''.join(line.split())
rowb64 = ''.join(stegb64.decode('base64').encode('base64').split())
offset = abs(b64chars.index(stegb64.replace('=','')[-1])-b64chars.index(rowb64.replace('=','')[-1]))
equalnum = stegb64.count('=') #no equalnum no offset
if equalnum:
bin_str += bin(offset)[2:].zfill(equalnum * 2)
print ''.join([chr(int(bin_str[i:i + 8], 2)) for i in xrange(0, len(bin_str), 8)]) #8 位一组
1
flag{Base_sixty_four_point_five}

功夫再高也怕菜刀

附件类型为.pcapng

第一次遇到这种文件,百度一下这是什么。

在linux平台下,用wireshark-1.12.2进行抓包并保存,文件格式是.pcapng格式。

foremost分离得到一个zip文件,但是有密码,所以得找到密码。

4

分析流量包,wireshark按Ctrl+f,搜索字符串flag,分组选择分组字节流,在找flag的过程中找到一个6666.jpg

5

7

追踪该tcp流:

6

现在我们要把jpg搞下来,jpg文件头是FFD8,文件尾是FFD9,找到FFD8,和最后一个FFD9,把中间的数据复制下来,在winhex里粘贴并保存为jpg,注意粘贴的时候格式选择ASCII Hex。

打开发现了密码

7

解压zip打开flag.txt得到flag

8

1
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

easycap

流量分析题

流量分析题考察我们对于网络流量包的分析能力,可能需要我们从中提取出一个文件,也可能flag就隐藏在数据包中。遇到该类题型,可以使用Wireshark进行分析。Wireshark的过滤器可以帮助我们迅速定位到要分析的报文。还可以将HTTP流或TCP流汇聚或还原成数据显示出来。

而pcap文件格式是常用的数据报存储格式,wireshark这类的主流抓包软件生成这种格式的数据包,格式什么的,就没仔细看过。。略过略过。

一般来讲,拿到pcap文件的话,会先用过滤器->字符串查一下分组字节流有没有flag什么的,没有是正常的。
然后导一下TCP流,看看有没有flag图片啊什么的或者还有其他的操作。

1

2

1
FLAG:385b87afc8671dee07550290d16a8071

Avatar

Avatar

先用formost分离一下,没有什么东西,用stegsolve看一下也没发现什么,再放进winhex中看一下,依旧没收获, 用outguess时分离出来了隐藏信息

1

1
We should blow up the bridge at midnight

知识点

outguess

-r是解密(加密是-d) ,后面接文件 hidden.txt是将解密的内容存放在这个txt文件中,如果你解密前后分别ls查看一下就会发现多了这个文件 ,这里直接cat查看

What-is-this

.gz后缀的压缩包,在linux环境下解压,之后又得到一个压缩包,在win10环境下解压,得到两个差不多的照片,放进stegsolve中比较一下

2

1
AZADI TOWER

知识点

stegsolve功能简介

img

1
2
3
4
File Format: 文件格式,这个主要是查看图片的具体信息
Data Extract: 数据抽取,图片中隐藏数据的抽取
Frame Browser: 帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看
Image Combiner: 拼图,图片拼接

embarrass

这个题目下载下来是一个流量包,一般来说流量包要放入wireshark中进行流量分析,但可以先搜索一下他的字符串,说不定啥时候有神奇的收获
在kali中进行字符串的搜索

1

1
flag{Good_b0y_W3ll_Done}

emmmmmmmmmm,学到了,流量分析先搜索一下看看

肥宅快乐题

这个题目下载到手是一个.swf后缀的文件,用到一个特殊的工具,叫做potplayer,把这个.swf文件使用这个工具打开,根据提示注意对话,一步一步往下走。

在第57帧的时候发现一串base64字符,解密base64

1

提取出来U1lDe0YzaVpoYWlfa3U0aWxlX1QxMTF9

1
SYC{F3iZhai_ku4ile_T111}

Get-the-key.txt

pure_color

打开是一张白色图片,用stegsolve打开分析得到flag

1

1
flag{true_steganographers_doesnt_need_any_tools}

签到题

题目明显给了一个base64Z2dRQGdRMWZxaDBvaHRqcHRfc3d7Z2ZoZ3MjfQ==

解码得到

1
ggQ@gQ1fqh0ohtjpt_sw{gfhgs#}

首先猜测栅栏密码

1

得到4个结果,却都不对。

再将

1
ggqht{ggQht_gsQ10jsf#@fopwh}

进行凯撒密码解密

2

1
ssctf{ssCtf_seC10ver#@rabit}

小小的PDF

1

题目给了一个pdf,但第二页是空的,猜测题目将flag隐写在空pdf那页,用 formost 分离一下,直接拿到flag

2

1
SYC{so_so_so_easy}

至此,在攻防世界中已经遇到三种pdf 的隐写方式

  1. 新手区 : pdf :将flag隐藏在图片的下面,需要先将格式转为 word 再将图片拖开 就能看到 flag
  2. 新手区 :stegano :利用类似水印的方法将flag隐藏在大量文字下面(不清粗具体方法) 全选复制 到 txt文件中就能 显示出密文
  3. 高手区: 小小的pdf:嵌入文件,直接用 formost 分析或用 binwalk分离

Training-Stegano-1

直接用winhex打开就可以看到password

1

1
steganoI

倒立屋

用stegsolve打开图片

2

LSB隐写

3

题目提示倒立,于是正确的flag为

1
9102_cCsI

直接在攻防世界提交这个不对,还得加flag{},坑人!

János-the-Ripper

题目给了一个压缩包,直接解压,得到一个文件,放入winhex查看,发现是一个zip压缩包

4

改文件后缀为.zip,发现解密需要密码,直接用Ziperello爆破密码

5

解压密码为fish

解压拿到flag文件

1
flag{ev3n::y0u::bru7us?!}

Test-flag-please-ignore

解压得到一个文件,使用winhex打开,得到一串数字

6

像是16进制,[在线16进制转字符串][http://www.bejson.com/convert/ox2str/]

7

1
flag{hello_world}

stage1

拿到图片,使用Stegsolve.jar,在gray panel发现一个反色二维码

8

[在线图片反色处理][https://www.yasuotu.com/fanse]

9

扫描二维码得到一串十六进制数。

1
03F30D0AB6266A576300000000000000000100000040000000730D0000006400008400005A00006401005328020000006300000000030000000800000043000000734E0000006401006402006403006404006405006406006405006407006708007D00006408007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100712B00577C010047486400005328090000004E6941000000696C000000697000000069680000006961000000694C0000006962000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007307000000746573742E7079520300000001000000730A00000000011E0106010D0114014E280100000052030000002800000000280000000028000000007307000000746573742E707974080000003C6D6F64756C653E010000007300000000

发现头部03F30D0A是pyc的magic number, 得到pyc文件的二进制码,扔去反汇编得到 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def flag():
str = [
65,
108,
112,
104,
97,
76,
97,
98]
flag = ''
for i in str:
flag += chr(i)

print flag
1
AlphaLab

知识点

pyc文件头为03F30D0A拿到pyc文件二进制码,用winhex输入,[在线pyc反编译][https://tool.lu/pyc/]

Hear-with-your-Eyes

音频文件,用Audacity分析,不懂为啥,我的分析不出来,直接嫖flag叭

1
e5353bb7b57578bd4da1c898a8e2d767