XCTF杂项入门writeup – 作者:xyphh36

image

一、this_is_flag

image

直接告诉flag的格式:flag{th1s_!s_a_d4m0_4la9} (提交即可)

二、pdf

image

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

image

方法一:在线pdf转word:https://app.xunjiepdf.com/pdf2word/

然后移开图片得到flag

image

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

pdftotext ad00be3652ac4301a71dedd2708f78b8.pdf 1.txt
cat 1.txt

flag{security_through_obscurity}

三、如来十三掌

image

image

与佛论禅解密

image

image

再用进行rot13解密(MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9)

image

得到,ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9,再进行base64解密,得到flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

四、give_you_flag

image

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

image

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

image

得到flag{e7d478cf6b915f50ab1277f78502a2c5}

五、坚持60s

image

是玩一个游戏

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

image

flag{RGFqaURhbGlfSmlud2FuQ2hpamk=},发现可能有加密,再base64解密

得到flag{DajiDali_JinwanChiji}

六、gif

image

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

法一:

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

image

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

image

flag为flag{FuN_giF}

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

image

flag为flag{FuN_giF}

七、掀桌子

image

image

八、ext3

image

法一:

winhex打开,发现有flag.txt

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

image

image

flag为flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

法二:

mount 挂载,找到flag,base64解密

九、stegano

image

image

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

-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-.  .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- --  ...-- ..... ..... ....- --. ...--
CONGRATULATIONSFLAG1NV151BL3M3554G3

即flag{1NV151BL3M3554G3}

十、SimpleRAR

image

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

winhex打开,发现有png的字样

image

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

image

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

image

image

将二维码补全,扫码得到flag{yanji4n_bu_we1shi}

十一、base64stego

image

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

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

image

# -*- coding: cp936 -*-
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('D:\desktop\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 位一组

得到flag{Base_sixty_four_point_five}

十二、功夫再高也怕菜刀

image

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

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

image

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

flag{Th1s_1s_p4sswd_!!!}

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

来源:freebuf.com 2021-04-17 10:31:48 by: xyphh36

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论