ADworld

0x01 删库跑路

题目要求是恢复数据,提示有一款很强大的软件,我找到了winhex。

然后在恢复数据时错把选择文件夹的界面看成了不能恢复的意思,然后看了题解,与自己的操作一样,然后傻眼了

这告诉我要相信自己

qaq

0x02 凯撒大帝在培根里藏了什么

ABBABAABBAAAAABABABAABABBAAAAABAABBAAABAABBBABBAABABBABABAAABABBBAABAABABABBBAABBABAA

文件由A和B组成,一眼凯撒密码和培根密码的混合,网上找解密的网站即可

培根密码

两个符号组成,每五个符号表示一个字母

加密时,明文中的每个字母都会转换成一组五个英文字母。其转换依靠下表:

原字母 对应培根密码 原字母 对应培根密码 原字母 对应培根密码 原字母 对应培根密码
A/a aaaaa H/h aabbb O/o abbba V/v babab
B/b aaaab I/i abaaa P/p abbbb W/w babba
C/c aaaba J/j abaab Q/q baaaa X/x babbb
D/d aaabb K/k ababa R/r baaab Y/y bbaaa
E/e aabaa L/l ababb S/s baaba Z/z bbaab
F/f aabab M/m abbaa T/t baabb
G/g aabba N/n abbab U/u babaa

0x03 简单的base编码

一堆乱码,猜测是进行了很多次base64,多次解码后得到

F#S<YRa[$*x7,>{F3DH5N/3.5+J6WD%P841JRN_i51F1Z!

然后我就卡住了,看完wp后才知道含有#就有可能是base92编码

base家族特征

base16

16进制(0-9,A-F),没有“=”

base32

(A-Z,2-7,=)没有0,1

base64

(A-Z,a-z,0-9,+/(不同系统不同),=)

base85

base36

base58

(64减去O,0,+,/,I,i)

base91

(加上了符号)

base92

base62

0x04 来自银河的信号

还是看的wp,但是这道题爆炸有意思,解题思路在题目:来自银河的信号

我们都知道,NASA在之前曾向太空发送了旅行者一号和二号两张黄金唱片送向太空,里面包含了一些音乐与图像,而图像是如何保存在音频中的呢?这里参考b站视频

而这道题正是借用了这个概念。运用MMSSTV将音频转化为图片得到

f7liavga{1M_0105n_cC@okmei_nFge!s}

已经很像flag了,而且正好隔一个字母就是flag,所以我们有理由相信这是栅栏解密

f 7
l i
a v
g a
{ 1
M _
0 1
0 5
n _
c C
@ o
k m
e i
_ n
F g
e !
s }

连起来就是

flag{M00nc@ke_Fes7iva1_15_Coming!}

0x05 steg没有py

这道题看的wp

首先看见标题为steg没有py,猜测是用stegpy解决,然后原比赛的提示是16位密码,文件名刚好16位,解出来后为

根据此文件可知是仿射密码

Linux下使用stegpy不太会配置,于是我直接复制源码,在vscode上运行。

stegpy使用方法

stegpy可以将一段内容隐写到图片里

加密

stegpy 内容 图片位置

如果要加密码

stegpy 内容 图片位置 -p

然后输入密码

解密

stegpy 图片位置

如果有密码

stegpy 图片位置 -p

然后输入密码

解密后的文件在当前目录

关于用vscode运行

将所有文件放在一个文件夹。然后新建.py文件,源码复制进去,然后在终端

pip3 install stegpy

安装依赖

然后就能在终端运行

0x06 看雪看雪看雪

还是看的wp, 好菜啊

首先压缩包里只有一张图片,在使用stegpy和stegsolve后无果,猜测有其他文件被隐藏了。

用7-zip打开压缩包后发现另外4个文件
分别是




这道题大量出现雪,猜测有snow隐写,CtrlV试一试

果然有大量空白符,于是用解密工具解出来后得到flag

关于NTFS数据流隐藏

每个文件都有主文件流和非主文件流,主文件流能够直接看到;而非主文件流寄宿于主文件流中,无法直接读取,这个非主文件流就是NTFS交换数据流。

可用7-zip查看

关于SNOW隐写

工具网站以及详细介绍https://darkside.com.au/snow/

Snow隐写是一个用于隐藏文本文件中的消息的程序

在行尾附加制表符和空格,以及用于从包含隐藏消息的文件中提取消息。

制表符和空格对于大多数文本查看器是不可见的,这是Snow的隐写本质

使用方法

将含有隐写内容的txt文件复制到含有工具的目录,在此目录打开终端

如需加密,则

snow -C -m “I am lying” -p “hello world” 原文件 输出文件

-m表示内容,-p表示设置密码

如需解密,则

snow -C -p “hello world” 目标文件

PS:实际使用中要在snow前加上.\ ,暂时未找到原因

0x07 fakezip

通过这道题学习到了一一个新概念:伪加密

意思是其实没加密,但是看起来加密了

为了做到这一点需要了解zip文件的组成:

zip文件的组成

  1. 压缩源文件数据区,文件头标记为50 4B 03 04
  2. 压缩源文件目录区,头为50 4B 01 02
  3. 压缩源文件目结束标志,为50 4B 05 06

其中数据区和目录区文件头标记隔8位后为加密与否的标志,若均是00 00则为未加密

而伪加密则是利用这一点,直接更改加密标志让压缩包被打开始显示已加密,所以只需要改回去就行

回到这个题

将压缩包在winhex中打开后,查找文件头标志

发现加密标志果然不对,

改为00 00后打开得到

本题结束

0x08 Check

压缩包打开是一张图片,用stegsolve发现存在lsb隐写

用html编码解码解出flag

0x09 碎纸机11

文件下载下来是一堆长条

联想到题目是碎纸机,能想象到这些拼起来应该是一张图片

于是…

我就真的去拼了

成品是这样:

有点暗,经过调色后识别出来为

flag{You Can Repair A Picture From Splices Baesd On Entropy}

本题结束

才怪!

这不对!怎么能用手拼?等到块数过多时根本不行!于是打开浏览器,学习了这种拼图题的一般做法:

需要用到两个工具

  1. ImageMagick
  2. gaps

ImageMagisk用来组合照片

gaps用来重组照片至正常

关于他们的使用跟着他们的官方说明就行

ImageMagick:https://github.com/ImageMagick/ImageMagick

gaps:https://github.com/nemanja-m/gaps

0x0a Let_god_knows

下载下来是一张图片:

在Red plane 0发现二维码

扫描二维码就行了

flag{Ok@y!G0d_know5_n0w}

0x0b 津门杯2021-m1

下载下来是一张图片

用Stegsolve打开,一眼感觉有用

1
2
3
4
ZmxhZ3ts NURHcUYx
cFB6T2Iy TFU5MTlM
TWFCWVM1 QjFHMDFG
RH0=

然后我就卡住了,不知道该怎么用,尝试了凯撒密码,维吉尼亚密码,ASCII码偏移…都没用

最后看的wp才知道是base64编码

得到flag

flag{l5DGqF1pPzOb2LU919LMaBYS5B1G01FD}

0x0c 适合作为桌面

下载下来是一张图片,直接丢进stegsolve,发现二维码

扫描后得到一大段字符

03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000

尝试用base16解码未果,于是把这一段丢进winhex

发现有十分像flag的东西存在,特别是这一段

十分像栅栏解密,但是答案并不是这个…

于是我卡住了,思考良久,最终看了wp

这个标志:

说明它可能是python编译后的文件,所以我们需要反编译它,先将其保存为pyc文件,再使用这个软件,下载地址:https://sourceforge.net/projects/easypythondecompiler/
使用方法很简单,就是文件拖进去就行

反编译后发现一个函数,但没有调用,调用后得到flag

0x0d Aesop_secret

下载下来是一个动图,感觉能拼成一张图片,于是用photoshop打开再显示每一个图层后得到

然后用winhex打开动图,在文件最后发现一串看起来有意义的码

上网搜索后发生是aes解密,需要密钥,联想到图片中的ISCC,经过两次aes解密后得到flag

0x0e Test-flag-please-ignore

下载下来是一个不明文件,于是用winhex打开发现一段看似有意义的乱码

乱码中出现了0-9,a-e,判断为base16编码,丢进网站就解开了

0x0f [中等] QR1

下载下来是一张看似空白的图片,但是放大后有小像素点,仔细看整体组合起来是一个二维码,也正好对应了标题QR

用windows自带的画图工具把二维码变明显

扫描得到:

flag{AHA_U_Kn0w_QR_c0d3_312468ed-ea59-4fe9-9cd2-b5e9d8b39498}

0x10 我们生活在南京-2

下载下来是一段音频,题目中提到了CW,上网搜索后发现CW是以摩斯密码传递信息的方式,于是用Audacity打开音频,调至频谱图

窄的为短码,宽的为长码,丢进解密网站解密后得到:

按照题目要求稍作更改:

flag{cwi54tr4diti0nm3th0d}

0x11 我们生活在南京-1

下载下来是一段音频,听起来像倒放,将音频倒放后听到了一些单词,倒放的网站为https://audiotrimmer.com/cn/online-mp3-reverser/

题目中说“他们用无线电中惯用的方法区分字符串中读音相近的字母。”于是上网搜索,发现为了区分读音相似的字母,无线电中会以下面单词来代替对应字母:

字母 对应单词 字母 对应单词
A ALPHA N NOVEMBER
B BRAVO O OSCAR
C CHARLIE P PAPA
D DELTA Q QUEBEC
E ECHO R ROMEO
F FOXTROT S SIERRA
G GOLF T TANGO
H HOTEL U UNIFORM
I INDIA V VICTOR
J JULIET W WHISKY
K KILO X X-RAY
L LIMA Y YANKEE
M MIKE Z ZULU

对应上表听音频得到flag

flag{radiowavesacrosstime}

PS:这道题答案给错了,官方wp中方法和我的完全吻合,但是答案却是给的“我们生活在南京-2”的答案

0x12 4433

下载下来是一张图片,用stegsolve打开,在Red plane 1发现二维码

扫描后得到

…–.----…–…

用摩斯密码直接解密解出来很奇怪,结合题目4433将密码分隔再进行解密得到

VYGUD

上交后提示错误,经过搜索,发现摩斯密码经常使用缩写,如该网站所示:https://www.docin.com/p-1607111065.html


发现“VY”是指的“VERY”,但是“GUD”却没有所指,因读音相近,猜测是“GOOD”,连起来是“VERYGOOD”,上交成功

0x13 肥宅快乐题

题目说打完游戏可得,于是就打完了游戏,游戏不长,得到以下对话:

U1lDe0YzaVpoYWlfa3U0aWxlX1QxMTF9

看起来是加密了的,丢进CyberChef,解出flag

PS:本来可以不用打游戏,但是现在支持swf文件播放的播放器太少了,potplayer和VLC都不支持了,干脆给他通关了

0x14 摩斯电码

下载下来是一个音频,听起来像摩斯密码,用Audacity打开发现长短交错

输入到网站解出flag

flag{THESECRETWDFLAGISMORESCODE1SFUN}

0x15 3-2

点开是一张动图,下载下来用PS调一调得到以下二维码:

扫描后得到一大串文本:

03f30d0ab8c1aa596300000000000000000200000040000000732e0000006400006401006c00005a00006402005a01006403005a02006404008400005a03006405008400005a040064010053280600000069ffffffff4e7403000000637466733d0000003138362c39382c3138302c3135342c3133392c3139322c3131342c31342c3130322c3136382c34332c3133362c35322c3231382c38352c3130302c3433630200000004000000070000004300000073610000007400006a01007c0100830100016401007d02007838007c0000445d30007d03007c02007402007403007c03008301007400006a04006402006403008302004183010064040017377d0200711a00577c02006a05006404008301007d02007c02005328050000004e7400000000690000000069ff00000074010000002c2806000000740600000072616e646f6d740400000073656564740300000073747274030000006f7264740700000072616e64696e7474050000007374726970280400000074040000007374723174030000006b65797404000000737472327401000000632800000000280000000073100000002f686f6d652f6374662f6262622e7079740500000066756e633107000000730c00000000010d0106010d012e010f016302000000040000000700000043000000735d0000007400006a01007c0100830100016401007d02007843007c00006a0200640200830100445d32007d03007403007c03008301007d03007c02007404007c03007400006a050064030064040083020041830100377d0200712300577c02005328050000004e52010000005202000000690000000069ff000000280600000052030000005204000000740500000073706c69747403000000696e74740300000063687252070000002804000000520b000000520a00000052090000007401000000692800000000280000000073100000002f686f6d652f6374662f6262622e7079740500000066756e63320f000000730c00000000010d01060116010c01240128050000005203000000520a000000740400000073747272520d000000521200000028000000002800000000280000000073100000002f686f6d652f6374662f6262622e707974080000003c6d6f64756c653e0100000073080000000c02060106030908

写入winhex,看起来像python的输出文件

进行反编译得到

再调用func2得到flag

flag{U_r_Greatt!}

PS:试了两个小时,怎么调用函数,用什么系统调用出来都是乱码,迫不得已看了wp,猜测是python生成随机数的算法变了

0x16 test.pyc

下载下来是一个pyc文件,进行反编译,失败后得到:

根据里面的‘base64’,乱码和等号,猜测是用base64加密了flag,把乱码组合起来得到

=cWbihGfyMzNllzZ0cjZzMWN5cTM4YjYygTOycmNycWNyYmM1Ujf

先反向再base64得到

再反向得到

gmbh|237e9g47f3c597186b2892g62g52f255~

前面4个字母刚好和flag差一位,推测是ASCII码表偏移,用以下代码得到flag

1
2
3
4
5
6
c='gmbh|237e9g47f3c597186b2892g62g52f255~'
d=''
for i in range(0,len(c)):
k = chr(ord(c[i])-1)
d+=k
print(d)

flag{126d8f36e2b486075a1781f51f41e144}

0x17 challenge_how_many_Vigenère

步骤很清晰,先把得到的文本文件用维吉尼亚解密爆破出key和原文,爆破网站https://www.guballa.de/vigenere-solver

看原文应该是爱丽丝梦游仙境,英文名Alice’s Adventures in Wonderland,用得到的key进行加密得到flag

flag{osqjdcsvzjxfkoutsvdmoqcegnqc}

0x18 Hear-with-your-Eyes

下载下来一个位未知文件,用winhex打开看到有sound.wav的字样,猜测有个wav文件

直接改文件名不行,于是用winhex文件修复出一个压缩包含有soung.wav,结合标题猜测是频谱图写了东西,用Audacity打开得到flag

PS:这里的flag直接交后面的字符串

0x19 What-is-this

解压缩后是一个未知文件,用winhex打开看到有jpg的字样

转手改文件名没用,于是恢复文件出一个压缩包,含有两张图片,全是密密麻麻的像素点,用PS稍做处理,及讲其中一张图片的白色部分消去再重叠得到以下:

AZADI TOWER

0x1a glance-50

点开是一张动图,隐约有字母飘过,打开PS稍作处理得到flag:

TWCTF{Bliss by Charles O’Rear}

0x1b give_you_flag

打开又是一张动图,闪过了一张二维码,于是用PS打开

发现缺少三个角,给他补上后扫描得到flag

flag{e7d478cf6b915f50ab1277f78502a2c5}

0x1c stegano

点开是一个pdf文档,看到有水印想到可能藏在水印里,于是CtrlA+C+V到记事本果然在最后发现可疑文字,由B和A组成,首先想到培根密码

发现不行,然后想到摩斯密码,转换成摩斯密码后解密得到flag:

flag{1nv151bl3m3554g3}

0x1d 坚持60s

下载下来是一个jar文件,是一个需要你坚持60秒的小游戏,懒得玩,直接用jd-gui打开,找到结束语

直接提交不行,把花括号里的乱码用base64解码一下得到flag

flag{DajiDali_JinwanChiji}

0x1e gif

下载下来是一个gif文件,非常友好的给出了每一帧:

发现是黑白相间的,猜测是摩斯密码,以白色为0黑色为1,翻译得到

01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101

用摩斯密码解密没得到有效信息,猜测是二进制,解得flag

flag{FuN_giF}

0x1f 如来十三掌

下载下来是一个word文件,打开是一段天书:

想起来有一种加密叫做与佛伦禅,解密得到:

MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9

丢进Cyberchef后得到flag:

flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

0x20 互相伤害!!!

下载下来是一个未知文件,用winhex打开发现wireshark字样,判断是pcap文件,于是改后缀名,导出http对象:

是很多图片:

找到这一张;

扫描后得到:

U2FsdGVkX1+VpmdLwwhbyNU80MDlK+8t61sewce2qCVztitDMKpQ4fUl5nsAZOI7 bE9uL8lW/KLfbs33aC1XXw==

base64解不出有用信息,上网查了发现这个U2Fs…是AES解密的特征,于是用AES解密:

解出一段不知道有什么用的文字

668b13e0b0fc0944daf4c223b9831e49

斟酌良久,然后就看了wp

题目叫互相伤害!!!,所以再图片中找到一张这样的图片:

不知道有什么用,binwalk一下出来一个压缩包

要我输密码,于是联想到上面的668b13e0b0fc0944daf4c223b9831e49,输进去得到一张图片:

扫描大的二维码得到以下文字:

扔下内衣真有一线生机????交出内裤才有活路!!!!

扫描小的二维码得到flag:

flag{97d1-0867-2dc1-8926-144c-bc8a-4d4a-3758}

PS:注意题目要求提交的是flag{}里面的,不用套上flag{}

补充:关于用AES解密和其密码,图片上是有提示的

小彩蛋:最后扫大二维码得到的扔下内衣真有一线生机????交出内裤才有活路!!!! 也有对应的图片,将那个图片binwalk也会出来一个压缩包,包里是一张二维码,扫出来还是 扔下内衣真有一线生机????交出内裤才有活路!!!!,不知有何用意