XCTF杂项入门writeup

2021-05-20 15:53:40 浏览数 (2)

一、this_is_flag

直接告诉flag的格式:

flag{th1s_!s_a_d4m0_4la9} (提交即可)

二、pdf

发现是一张.pdf为后缀的图片

方法一:在线pdf转word:

https://app.xunjiepdf.com/pdf2word/

然后移开图片得到flag

方法二:将pdf转为txt就看到flag(kali中,无网环境/比赛环境)

代码语言:javascript复制
pdftotext ad00be3652ac4301a71dedd2708f78b8.pdf 1.txt
cat 1.txt

flag{security_through_obscurity}

三、如来十三掌

与佛论禅解密

再用进行rot13解密

(MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9)

得到

ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9

再进行base64解密,得到

flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

四、give_you_flag

观察gif动画,发现有一帧有一个残缺的二维码

发现二维码少了三个角,用mspaint覆盖

得到

flag{e7d478cf6b915f50ab1277f78502a2c5}

五、坚持60s

是玩一个游戏

用jd-gui-windows-1.6.6打开源码找flag

flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}

发现可能有加密,再base64解密,得到

flag{DajiDali_JinwanChiji}

六、gif

下载下来一个zip压缩包,104张黑白图片,像极了二进制的0和1,二进制转十六进制?八个一组,大概13个(一个字母一个字节,一个字节八位)

法一:

一个一个手动来(黑白为01或10)

思考:八个一组,大概13个,二进制转ascii,第一组为f,那么为01100110,也就是说,白为0,黑为1

flag为flag{FuN_giF}

法二:脚本跑(借鉴大佬的脚本)

flag为flag{FuN_giF}

七、掀桌子

八、ext3

法一:

winhex打开,发现有flag.txt

解压该文件,得到base64加密的flag

flag为flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

法二:

mount 挂载,找到flag,base64解密

九、stegano

复制所有内容到txt中,发现有AB一串字符,A = . B = -

代码语言:javascript复制
-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-.  .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- --  ...-- ..... ..... ....- --. ...--
代码语言:javascript复制
CONGRATULATIONSFLAG1NV151BL3M3554G3

即flag{1NV151BL3M3554G3}

十、SimpleRAR

直接打开,发现有flag.txt,内容是flag不在这

winhex打开,发现有png的字样

将A8 3C 7A 修改为 A8 3C 74

保存后解压,再把sercet.png丢到winhex里发现文件头为gif图,将图片后缀名改为.gif

将二维码补全,扫码得到

flag{yanji4n_bu_we1shi}

十一、base64stego

下载下来,表面看起来无法解密

搜索50 4B 01 02 ,把第九位,第十位改为0。保存,成功解压出stego.txt。

代码语言:javascript复制
# -*- coding: cp936 -*-
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /'
with open('D:desktopstego.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 位一组

得到

flag{Base_sixty_four_point_five}

十二、功夫再高也怕菜刀

下载下来是一个wireshark的pcapng文件

使用wireshark打开流量包,查找flag,选择第1150个,右键,追踪流 -> TCP 流

从 FFD8FF 开始到 FFD9 复制出来,保存为jpg格式,打开图片

代码语言:javascript复制
flag{Th1s_1s_p4sswd_!!!}

提交flag不对,查看writeup发现没有加密的文件,只是一个pcapng,可能平台的文件有问题。 (可以看平台的writeup)

0 人点赞