SWPU CTF 2020 菜鸡的 WriteUp

MICS

MICS1-耗子尾汁
by WDLJT

使用 Binwalk 分析 Hex 文件头,然后发现有 zip,将后缀改为.rar打开即发现,但是发现解压需要密码,然后开始寻找密码之旅。视频丢到 Hex 里面发现没有其他有用的信息,索性再下载一次文件,重新查看视频,但依然没有发现有密码。然后打开 Pr 导入视频,逐帧查看,在视频的02秒24帧时发现一串疑似 Base64 加密串。

c2lnbl9pbg==

解密后可得

sign_in

打开压缩包中的文档

R1pCVE9OUlhHVTNES05SWkdZWVRNUVJYSEEzVEtOUlVHNFpUT09KWEdFM0RLTlJZRzRaVE9RSlhHRTNEUU5aWkdaQkRNTlpXRzQzVEdOWlpHNDRUTVFaV0lJM1RNTlpXR1k0UT09PT0=

//The last layer is the single table replacement password

把提示放进谷歌,那篇文章把我看傻了……

索性先 Base64 解密,解得:

GZBTONRXGU3DKNRZGYYTMQRXHA3TKNRUG4ZTOOJXGE3DKNRYG4ZTOQJXGE3DQNZZGZBDMNZWG43TGNZZG44TMQZWII3TMNZWGY4Q====

4个等号一看就是 Base32,解得:

6C76756569616B7875647379716568737A7168796B67677379796C6B767669

ABC 1 6-9????什么东西,但是在0-9 A-E范围内,无脑考虑 ASCII 解得

lvueiakxudsyqehszqhykggsyylkvvi

然后就没有然后了,卡了一个多小时不知道有什么用

一小时后,重新看了遍题目,给了个 Flag 提示但是还是没有想到解法因为位数对不上。

flag{xxx_xxxx_xxxxxx_xx_xxxxxxxxxxxx} 

又过了一会儿,27+4 不就刚好等于 31 吗,然后分隔密文

lvue iak xuds yqehsz qh ykggsyylkvvi

然后又卡关了,当中还想了打乱循序把重新的字母隔断然而并没有用,最后想到那个提示,对哦是猜词,然后打开 CCBC X 积累的工具。

https://quipqiup.com/
flag{you_have_signed_in_successfully}

MICS2-套娃
by ff98sha&WDLJT

其实原本这道题不是我做的甚至原本 Msic 都不是我做的,但是 CRYPTO 我只做出来了一个就被迫转向 Msic。

前半部分
by ff98sha

先是把xlsx直接改zip后缀,得到 RC4data.txt 与 swpu.zip。
再解压得到 RC4key.zip 与 esayrc4.xlsx(这题目还打错了)。
发现 esayrc4.xlsx 打不开,修复完打开是空表。
改成 zip 修复后打开也是 xls 的那些文件,但是每个文件都翻遍了没有找到 flag

后半部分
by WDLJT

然后他说没有头绪了丢给我,转向 RC4key.zip 需要密码……
然后看来只能从之前的文件找找思路,RC4data.txt 是一串密文,大概率是拿到 RC4key 之后才能解。
又跑去找 password 但是几个长得很像的都不是 password ,然后我又去翻了一次 hex 然后居然在 esayrc4.xlsx 最后发现了……
(ff:我真傻,真的,竟然忘了看hex)

docProps/core.xml password:6e4c834d77cba03af41e1562a5bce84e

然后打开压缩包中的 key 然后我服了。。。

ABCDEFGHIJKLMNOPQRSTUVWXYZ

行吧我想暴力都不行,然后 RC4 解密

ef1a73d40977a49b99b871980f355757,23926115212911916415515318411315215538787

其实这个时候因为完赛了我不知道是不是flag,不过后面没印象了那就应该是吧2333

MICS3-找找吧
by LittleC

find.rar,密码在文件尾

findme.mp3实质rar,打开

音频末尾摩斯码,转ascii,找个在线md5解了,得到压缩包密码。n1ce_try

hint.png图片高度是错误的,gif直接截一下

png中Veni,Vidi,Vici和凯撒有关,gif里bFyd_W1l3_Cah全部丢到凯撒跑一遍,结果注意大小写就行。

MICS4-来猜谜吧
by ff98sha

打开来就一张图,exif 也没东西,binwalk stegesolve 都没东西
卡了会最后在 data extract 里 RGB 0 通道找到了东西,熟悉的 504b0304

提出来用 winrar 修了一下,得到一张图一个usb流量包
把流量包照着教程提取一下,得到 AG DX AG DX AG DX
查了半天是解密 AGDFVX 密码的 phqgm 表,得到 gogogo

然后就卡了,真的没碰到过有密码的图片隐写
搜了搜有个 steghide 和 outguess,最后是用 outguess 解出来的

CRYPTO

CRYPTO1-happy
by WDLJT

然而一点都不 happy 毕竟这道题从开赛一直做到赛程过半 emmmm 然后中间还被改了一次题目,先上草稿~

苦逼的草稿

先是第一轮数据

('c=','0x7a7e031f14f6b6c3292d11a41161d2491ce8bcdc67ef1baa9eL')12302339547193441784822357349545334018789002944913078402853343
('e=','0x872a335')141730613
#q+q*p^3=467962068718552895211162459665195309477537820950314984120501297653251626108029252766706321468050831941604717101473973050
#qp+q*p^2=565793545980404021917176171737381087790180558655380403750360123494827821905901954270664682

化简

q*(1+p^3)
q*(p+p^2)

然后先用最大公约数算出q

q+q*(p^3)=827089796345539312201480770649 · 575180439058488034989863901029153909726152717284940127028341 · 2 · 5^2 · 43 · 97 · 367127 · 10237993 · 1254909864709

q*p+q*(p^2)=827089796345539312201480770649 · 24484319220829244829429976565214972051482358940052087 · 2 · 3 · 89 · 52321

继续求解,惊喜地发现p=q=827089796345539312201480770649,不过我不信去验算了,结果还真等于0

467962068718552895211162459665195309477537820950314984120501297653251626108029252766706321468050831941604717101473973050-(827089796345539312201480770649+827089796345539312201480770649^4)=0

然后和出题人交流才发现是 RSA …确实这方面没有经验,然后去翻了翻,找了两个python的脚本改了改

import gmpy2
p = 827089796345539312201480770649
q = 827089796345539312201480770649
e = 141730613
c = 12302339547193441784822357349545334018789002944913078402853343
n = p * q
fn = (p - 1) * (q - 1)
d = gmpy2.invert(e, fn)
h = hex(gmpy2.powmod(c, d, n))[2:]
if len(h) % 2 == 1:
    h = '0' + h
print h
import binascii
import gmpy2
p=827089796345539312201480770649
q=827089796345539312201480770649
e=0x872a335
c=0x7a7e031f14f6b6c3292d11a41161d2491ce8bcdc67ef1baa9eL
n=p*q

phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
m=pow(c,d,n)
print(hex(m))
print(binascii.unhexlify(hex(m)[2:].strip("L")))

然后发现求出来:

27d5fe96a3fd848d4db61375de2f6ca2c932355263a8d188d4
0x3dffcafd10682fc659c4f02259db175776ac7e79dedf2059f7

然而找了半天都没找到关系。。准备放弃了,然后下午题目更新了。。。

('c=','0x7a7e031f14f6b6c3292d11a41161d2491ce8bcdc67ef1baa9eL')
12302339547193441784822357349545334018789002944913078402853343
('e=','0x872a335')141730613
#q + q*p^3=
1285367317452089980789441829580397855321901891350429414413655782431779727560841427444135440068248152908241981758331600586
#qp + q *p^2 = 1109691832903289208389283296592510864729403914873734836011311325874120780079555500202475594

然后重新算公约数得 21450188030183929729657414367,但是算开根的时候遇到了麻烦死活没求出来

然后重新求了一次公约数,好家伙。。。结果是和第一次的一样

q=827089796345539312201480770649 重新代入计算

p=1158310153629932205401500375817 ……

带入脚本

第一个脚本是改了数字的但是复制的还是之前的,带入第二个脚本直接是结果,到此为止~

发表评论