2019-nCov

点击此处获得更好的阅读体验


WriteUp来源

https://mp.weixin.qq.com/s/ZkzBnsL34ImE00noH2-8XA

题目描述

附件下载 提取码(GAME) hint.txt下载 提取码(GAME) Hint: 1. 可用python统计次数最多的字符 2. 增加hint.txt下载

题目考点

  • 古典加密

  • 图片隐写

解题思路

官方WP

打开hint.txt是一段base32编码。得到以下内容

1
2
3
4
5
http://www.merrybio.com.cn/blog/SARS-CoV-2-genomic-analysis.html
https://www.ncbi.nlm.nih.gov/orffinder/
http://www.merrybio.com.cn/blog/coronavirus-introduction.html
Please notice The largest structural protein
the password is the md5(it's gene sequence) and do not let the ‘\n’ in md5()

注意提示,要求注意最大的结构蛋白,密码是md5(他的基因序列),

访问 给出的网址(这边也对冠状病毒的结构做了科普)

http://www.merrybio.com.cn/blog/SARS-CoV-2-genomic-analysis.html

怎么查询基因序列

http://www.merrybio.com.cn/blog/SARS-CoV-2-genomic-analysis.html

这篇文章也说明了基因序列的查询方式以及各基因的区间是哪个以及冠状病毒的登录号和长度。

第二个网址也给出了查询(免去了选手搜索)

我们得知S基因的区间是21536-25384 https://www.ncbi.nlm.nih.gov/orffinder/

选择区间

得到基因序列。

提示也说了不要将换行带入,得到的是规则的序列有换行在里面。

用脚本处理得到密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import hashlib
S='''MFLLTTKRTMFVFLVLLPLVSSQCVNLTTRTQLPPAYTNSFTRGVYYPDK
VFRSSVLHSTQDLFLPFFSNVTWFHAIHVSGTNGTKRFDNPVLPFNDGVY
FASTEKSNIIRGWIFGTTLDSKTQSLLIVNNATNVVIKVCEFQFCNDPFL
GVYYHKNNKSWMESEFRVYSSANNCTFEYVSQPFLMDLEGKQGNFKNLRE
FVFKNIDGYFKIYSKHTPINLVRDLPQGFSALEPLVDLPIGINITRFQTL
LALHRSYLTPGDSSSGWTAGAAAYYVGYLQPRTFLLKYNENGTITDAVDC
ALDPLSETKCTLKSFTVEKGIYQTSNFRVQPTESIVRFPNITNLCPFGEV
FNATRFASVYAWNRKRISNCVADYSVLYNSASFSTFKCYGVSPTKLNDLC
FTNVYADSFVIRGDEVRQIAPGQTGKIADYNYKLPDDFTGCVIAWNSNNL
DSKVGGNYNYLYRLFRKSNLKPFERDISTEIYQAGSTPCNGVEGFNCYFP
LQSYGFQPTNGVGYQPYRVVVLSFELLHAPATVCGPKKSTNLVKNKCVNF
NFNGLTGTGVLTESNKKFLPFQQFGRDIADTTDAVRDPQTLEILDITPCS
FGGVSVITPGTNTSNQVAVLYQDVNCTEVPVAIHADQLTPTWRVYSTGSN
VFQTRAGCLIGAEHVNNSYECDIPIGAGICASYQTQTNSPRRARSVASQS
IIAYTMSLGAENSVAYSNNSIAIPTNFTISVTTEILPVSMTKTSVDCTMY
ICGDSTECSNLLLQYGSFCTQLNRALTGIAVEQDKNTQEVFAQVKQIYKT
PPIKDFGGFNFSQILPDPSKPSKRSFIEDLLFNKVTLADAGFIKQYGDCL
GDIAARDLICAQKFNGLTVLPPLLTDEMIAQYTSALLAGTITSGWTFGAG
AALQIPFAMQMAYRFNGIGVTQNVLYENQKLIANQFNSAIGKIQDSLSST
ASALGKLQDVVNQNAQALNTLVKQLSSNFGAISSVLNDILSRLDKVEAEV
QIDRLITGRLQSLQTYVTQQLIRAAEIRASANLAATKMSECVLGQSKRVD
FCGKGYHLMSFPQSAPHGVVFLHVTYVPAQEKNFTTAPAICHDGKAHFPR
EGVFVSNGTHWFVTQRNFYEPQIITTDNTFVSGNCDVVIGIVNNTVYDPL
QPELDSFKEELDKYFKNHTSPDVDLGDISGINASVVNIQKEIDRLNEVAK
NLNESLIDLQELGKYEQYIKWPWYIWLGFIAGLIAIVMVTIMLCCMTSCC
SCLKGCCSCGSCCKFDEDDSEPVLKGVKLHYT
'''.replace('\n','')
print(S)
print(hashlib.md5(S.encode()).hexdigest())

98eb1b1760bcc837934c8695a1cee923

然后看到MP3文件,MP3Stego隐写。

1
Decode.exe -X -P 98eb1b1760bcc837934c8695a1cee923 cov.mp3

得到冠状病毒的称号

这一段即为realflag.zip的密码

看到hint2.txt以及图片右键属性,Base16解码

拿去翻译

提示提到了steghide隐写,加密方式也已告诉,是简单替换密码

秘钥是前20个出现次数最多的字符加上COMBAT

先解出秘钥,题目要求我们注意N蛋白,结合之前的密码,找基因序列

还是之前的文章

  • 26523-27191为“E”基因,可编码产生结构蛋白:病毒包膜蛋白E;

  • 27202-27387为“M”基因,可编码产生结构蛋白:病毒膜蛋白M;

  • 28274-29533为:“N”基因,可编码产生结构蛋白:病毒核衣壳磷蛋白N;

写脚本处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from collections import Counter
N='''MSDNGPQNQRNAPRITFGGPSDSTGSNQNGERSGARSKQRRPQGLPNNTA
SWFTALTQHGKEDLKFPRGQGVPINTNSSPDDQIGYYRRATRRIRGGDGK
MKDLSPRWYFYYLGTGPEAGLPYGANKDGIIWVATEGALNTPKDHIGTRN
PANNAAIVLQLPQGTTLPKGFYAEGSRGGSQASSRSSSRSRNSSRNSTPG
SSRGTSPARMAGNGGDAALALLLLDRLNQLESKMSGKGQQQQGQTVTKKS
AAEASKKPRQKRTATKAYNVTQAFGRRGPEQTQGNFGDQELIRQGTDYKH
WPQIAQFAPSASAFFGMSRIGMEVTPSGTWLTYTGAIKLDDKDPNFKDQV
ILLNKHIDAYKTFPPTEPKKDKKKKADETQALPQRQKKQQTVTLLPAADL
DDFSKQLQQSMSSADSTQA'''.replace('\n','')
M='''MFHLVDFQVTIAEILLIIMRTFKVSIWNLDYIINLIIKNLSKSLTENKYS
QLDEEQPMEID'''.replace('\n','')
E='''MADSNGTITVEELKKLLEQWNLVIGFLFLTWICLLQFAYANRNRFLYIIK
LIFLWLLWPVTLACFVLAAVYRINWITGGIAIAMACLVGLMWLSYFIASF
RLFARTRSMWSFNPETNILLNVPLHGTILTRPLLESELVIGAVILRGHLR
IAGHHLGRCDIKDLPKEITVATSRTLSYYKLGASQRVAGDSGFAAYSRYR
IGNYKLNTDHSSSSDNIALLVQ'''.replace('\n','')

text =N+M+E
print(text.split())
count = Counter(text).most_common(20)
print(count)
screct=''
for i in count:
print(i[0])
screct+=i[0]
print(screct+"COMBAT")

得到秘钥LGASTRIQKNDPFEVYMWHCCOMBAT

但是经过简单替换密码的密码我们还不知道,由此注意到key.wav文件和Cov-1.jpg的属性

SlientEye隐写,直接使用工具解出密文

tpkfkelctevotpavwvelokwch

根据秘钥和密文,解出密码,这句话的意思也是消灭冠状病毒。然后steghide隐写

1
steghide extract -sf CoV-1.jpg -p eliminatenovelcoronavirts

解出flag.txt

大佬WP by123qwer

下载下来 3 个文件, pass.wav 可以用 silent 来解密

得到 priebeijoarkjpxmdkucxwdus, 不是压缩包密码(先留着, 后面要用) , 后来根据官方提示, 又得到了一个 hint, base32 解密就看到了明文。

这就开始和题目名字有联系了

然后就是说 md5 这个基因序列就是密码, 并且没有换行。

http://www.merrybio.com.cn/blog/coronavirus-introduction.html 找到最大的蛋白

http://www.merrybio.com.cn/blog/SARS-CoV-2-genomic-analysis.html 找到了 S

病毒的编号

还有一个网址就是找基因序列的https://www.ncbi.nlm.nih.gov/orffinder/

得到了序列

然后提取出来去掉换行

得到 md5 98eb1b1760bcc837934c8695a1cee923, 这个密码还是不是压缩包的。刚好还有一个 mp3 的文件, 那就用 MP3Stego

得到了明文, 这次这个就是压缩包的密码了, 得到 2 个文件, 一个图片, 一个

hint。Hint2 直接 16 进制解码得到明文。

现在我们有开始的那个不知道怎么用的 priebeijoarkjpxmdkucxwdus, 这里又说到了维吉尼亚密码, 开始的数据就是密文了, key 就是他描述的 N 蛋白有关东西的 top 20 的词+COMBAT, 最后就用 steghide 来解密这个图片

和 N 蛋白有关的就是 N, M 和 E

然后直接提取出现次数前 20 的字母,不过有同样的次数字符, 多试几次就行了, 最后得到LGASTRIQKNDPFEVYMWHCCOMBAT

然后 steghide 得到 flag

大佬WP by linear

hint首先base32解得如下图所示:

然后分别打开3个网站,是关于冠状病毒介绍的网站和一个查询网站。

然后wav音频用slienteye解得一串密文:

得到:priebeijoarkjpxmdkucxwdus

然后上面有提示说password是md5(it's gene sequence),那么利用查询网址:

首先最大的蛋白是刺突蛋白:

然后查到基因序列范围是21536-25384:

然后查到登录号是MN908947:

在hint提供的第二个网站上查询得到:

1
MFLLTTKRTMFVFLVLLPLVSSQCVNLTTRTQLPPAYTNSFTRGVYYPDKVFRSSVLHSTQDLFLPFFSNVTWFHAIHVSGTNGTKRFDNPVLPFNDGVYFASTEKSNIIRGWIFGTTLDSKTQSLLIVNNATNVVIKVCEFQFCNDPFLGVYYHKNNKSWMESEFRVYSSANNCTFEYVSQPFLMDLEGKQGNFKNLREFVFKNIDGYFKIYSKHTPINLVRDLPQGFSALEPLVDLPIGINITRFQTLLALHRSYLTPGDSSSGWTAGAAAYYVGYLQPRTFLLKYNENGTITDAVDCALDPLSETKCTLKSFTVEKGIYQTSNFRVQPTESIVRFPNITNLCPFGEVFNATRFASVYAWNRKRISNCVADYSVLYNSASFSTFKCYGVSPTKLNDLCFTNVYADSFVIRGDEVRQIAPGQTGKIADYNYKLPDDFTGCVIAWNSNNLDSKVGGNYNYLYRLFRKSNLKPFERDISTEIYQAGSTPCNGVEGFNCYFPLQSYGFQPTNGVGYQPYRVVVLSFELLHAPATVCGPKKSTNLVKNKCVNFNFNGLTGTGVLTESNKKFLPFQQFGRDIADTTDAVRDPQTLEILDITPCSFGGVSVITPGTNTSNQVAVLYQDVNCTEVPVAIHADQLTPTWRVYSTGSNVFQTRAGCLIGAEHVNNSYECDIPIGAGICASYQTQTNSPRRARSVASQSIIAYTMSLGAENSVAYSNNSIAIPTNFTISVTTEILPVSMTKTSVDCTMYICGDSTECSNLLLQYGSFCTQLNRALTGIAVEQDKNTQEVFAQVKQIYKTPPIKDFGGFNFSQILPDPSKPSKRSFIEDLLFNKVTLADAGFIKQYGDCLGDIAARDLICAQKFNGLTVLPPLLTDEMIAQYTSALLAGTITSGWTFGAGAALQIPFAMQMAYRFNGIGVTQNVLYENQKLIANQFNSAIGKIQDSLSSTASALGKLQDVVNQNAQALNTLVKQLSSNFGAISSVLNDILSRLDKVEAEVQIDRLITGRLQSLQTYVTQQLIRAAEIRASANLAATKMSECVLGQSKRVDFCGKGYHLMSFPQSAPHGVVFLHVTYVPAQEKNFTTAPAICHDGKAHFPREGVFVSNGTHWFVTQRNFYEPQIITTDNTFVSGNCDVVIGIVNNTVYDPLQPELDSFKEELDKYFKNHTSPDVDLGDISGINASVVNIQKEIDRLNEVAKNLNESLIDLQELGKYEQYIKWPWYIWLGFIAGLIAIVMVTIMLCCMTSCCSCLKGCCSCGSCCKFDEDDSEPVLKGVKLHYT

md5以后就是mp3的password:98eb1b1760bcc837934c8695a1cee923

然后用mp3stego解得mp3,得到压缩包密码:

然后得到hint2:

1
2
3
4
5
6
you must pay attention to N protein ,How do that get into the viral capsid?
do you know steghide?
the password is encrypt by Vigenère Cipher
the screct key is The top 20 characters with the most occurrences are counted+COMBAT

hint2的解析是这样的,steghide是图片隐写,其password是经过Vigenère加密的,然后Vigenère需要的key是被使用最多的20个+COMBAT

让我们关注N蛋白:

那么N蛋白除了自身以外,还结合了M蛋白和E蛋白,那么把这几个蛋白的基因序列都整出来,然后字频分析:

但是这里有一个坑,会遇到有几个相同的频次,有些得倒一下顺序,最后顺序:LGASTRIQKNDPFEVYMWHCCOMBAT

然后维吉尼亚:

得到密钥:eliminatenovelcoronavirts然后steghide解:

1
steghide.exe extract -sf CoV-1.jpg -p eliminatenovelcoronavirts

得到flag。

Flag

1
2