Cyberpunk2077宣传网址隐写部分破解

发布于 2020-04-18  359 次阅读


起源这个链接

宣传网址

做题讨论组

不禁感慨一下,真的人多力量大,音频分析部分做的很快都要归功于此。

第一层

我们需要得到用户名和密码。

用户名C0r0nad0

密码A4G@B3CBi$QKBgQC_GJQgsxtxsHmX-24AvS%3XhXkV!P6r*UYvaB/Pg-GL7tn7qcg7fb4Gen7f333s8gJ+/DeQV5HWn3AY7D/Rn^8TP5ar

过程待补

首先我们可以在JS文件中发现PGP Key的身影。

找到PGP利用网站

然后我们开始推测用户名和密码。

从Xbox网站上找到用户名和密码。无话可说

大佬的API Auth利用教程

https://api.arasaka.co:443/auth

you send a post request with a json body of
{"username":"test","password":"password"}
where the value of username is the username and the value of password is the password
for example:
{"username":"C0r0nad0","password":"A4G@B3CBi$QKBgQC_GJQgsxtxsHmX-24AvS%3XhXkV!P6r*UYvaB/Pg-GL7tn7qcg7fb4Gen7f333s8gJ+/DeQV5HWn3AY7D/Rn^8TP5ar"}

or you send a json body of
{"passphrase":"Plug in and take over","id":1}
where the value of id is the question number and the value of passphrase is the password
for example:
{"passphrase":"Plug in and take over","id":1}

both requests return a json

{"message":"Unauthorized"}

if the password/passphrase is incorrect

and

{"message":"Success"}

if the password/passphrase is correct

with the other key value pairs of "value" and "nextArgument" but it is known how or when these are used

第二层

给了一个base64:UGx1ZyBpbiBhbmQgdGFrZSBvdmVy

直接解密得到Plug in and take over,填写完进入第二层。

第三层

给了个ip是44.228.163.154,点击进入得到www.drkftr.com

我们观察可以知道有一堆“梦中的代码”,中间的01串可以解密出@CDPROJEKTRED

答案是wake up SAMURAI the City burns when eyes are open

过程待补

注意到一堆数字是ip/零一串/不知道是啥/不知道是啥的形式,经过仔细思考@的含义,然后根据大佬的理解猜测是推特的一个服务器ip/人物/发推特时间/需要的单词编号,随后把这些文章的单词中按顺序找到对应编号的单词然后连起来就找到密码。

第四层

提问The fight Vick is watching

答案Malone vs Hernandez

过程待补

第五层

提问Parker founded Dallas-FT. Worth Metro Area HQ

答案Petrochem

过程待补

第六层

提问

00110000 00110001 00110001 00110000 00110001 00100000 00110000 00110001 00110000 00110001
00110000 00100000 00110000 00110001 00110000 00110001 00110000 00100000 00110000 00110001
00110001 00110001 00110000 00100000 00110000 00110000 00110001 00110001 00110000 00100000
00110000 00110001 00110000 00110001 00110000 00100000 00110000 00110001 00110000 00110001
00110000 00100000 00110001 00110000 00110001 00110000 00110000 00100000 00110001 00110000
00110000 00110001 00110001 00100000 00110001 00110000 00110000 00110001 00110001 00100000
00110000 00110001 00110000 00110000 00110001 00100000 00110001 00110000 00110001 00110001
00110001 00100000 00110000 00110001 00110000 00110001 00110001 00100000 00110001 00110000
00110001 00110000 00110000 00100000 00110000 00110000 00110000 00110000 00110001 00100000
00110000 00110001 00110000 00110001 00110000 00100000 00110000 00110000 00110001 00110000
00110001 00100000 00110000 00110001 00110001 00110000 00110000 00100000 00110001 00110000
00110000 00110000 00110000 00100000 00110000 00110000 00110001 00110001 00110001 00100000
00110000 00110000 00110001 00110001 00110001 00100000 00110001 00110000 00110000 00110000
00110000 00100000 00110000 00110000 00110001 00110001 00110000 00100000 00110001 00110000
00110001 00110001 00110001 00100000 00110000 00110001 00110001 00110000 00110001 00100000
00110000 00110001 00110001 00110000 00110001 00100000 00110000 00110000 00110000 00110000
00110001 00100000 00110000 00110001 00110000 00110001 00110000 00100000 00110000 00110000
00110001 00110000 00110001 00100000 00110000 00110001 00110000 00110000 00110000 00100000
00110000 00110000 00110001 00110001 00110000 00100000 00110001 00110000 00110000 00110000
00110000 00100000 00110000 00110001 00110001 00110000 00110000 00100000 00110001 00110000
00110000 00110001 00110001 00100000 00110001 00110000 00110000 00110000 00110000 00100000
00110000 00110000 00110001 00110001 00110001 00100000 00110000 00110000 00110001 00110001
00110000 00100000 00110001 00110000 00110000 00110000 00110000 00100000 00110001 00110000
00110001 00110000 00110001 00100000 00110000 00110001 00110001 00110001 00110000 00100000
00110001 00110000 00110000 00110000 00110000 00100000 00110000 00110001 00110000 00110001
00110001 00100000 00110001 00110000 00110000 00110001 00110000

我们先用JPK进行一次转换,得到结果

01101 01010 01010 01110 00110 01010 01010 10100 10011 10011 01001 10111 01011 10100 00001 01010 00101 01100 10000 00111 00111 10000 00110 10111 01101 01101 00001 01010 00101 01000 00110 10000 01100 10011 10000 00111 00110 10000 10101 01110 10000 01011 10010

写个Python脚本转换下

if __name__ == '__main__':
    txt = """01101 01010 01010 01110 00110 01010 01010 10100 10011 10011 01001 10111 01011 10100 00001 01010 00101 01100 10000 00111 00111 10000 00110 10111 01101 01101 00001 01010 00101 01000 00110 10000 01100 10011 10000 00111 00110 10000 10101 01110 10000 01011 10010"""
    ls = txt.split(' ')
    for i in ls:
        print(chr(int(i,2) + 64),end = "")

我们可以得到

MJJNFJJTSSIWKTAJELPGGPFWMMAJEHFPLSPGFPUNPKR

然后卡住了,感觉没什么用。

再观察给了一个ip地址44.230.56.213,点击得到一个Youtube视频,标题经过基础解密(手语/Base64/ROT13/Atbash等)得到first,second,third,forth,猜测是四个视频的真实顺序;视频有长短不一的杂音,猜测是Morse密码。可惜Youtube评论区没关,我们就不用分析视频了,得到答案Necessity over style. Style over substance. Substance over style. Style and substance.

第七层

给了个MP3

显然速度被刻意加快和减慢了,我们下载下来用Audicity分析下。

答案是It's time to rise up and take this city, Choombas.

过程待补

把音频文件大致分成三部分,调整成合适的速度然后强行听就行,这个答案就是MP3说的那句英文。最后一个单词出自网站JS文件中指向的一个api info网址,打开后会有Welcome Choomba的提示,结合对JS文件本身的分析得出是Choombas。

大佬解析完成的音频

第八层

给了个串

0x490x450x6c0x7a0x620x530x420x360x5a0x320x780x6a0x490x470x350x360x590x790x420x6c0x630x320x520x6a0x4c0x690x420x450x590x320x390x750x630x480x4e0x700x490x470x350x360x590x790x420x760x610x570x390x750x590x330x550x750x490x460x520x460x4e0x540x630x770x4e0x440x510x790x490x410x3d0x3d

显然hex,我们脚本解密一下


if __name__ == '__main__':
    txt = """49 45 6c 7a 62 53 42 36 5a 32 78 6a 49 47 35 36 59 79 42 6c 63 32 52 6a 4c 69 42 45 59 32 39 75 63 48 4e 70 49 47 35 36 59 79 42 76 61 57 39 75 59 33 55 75 49 46 52 46 4e 54 63 77 4e 44 51 79 49 41 3d 3d"""
    ls = txt.split(' ')
    for i in ls:
        print(chr(int(i,16)),end = "")

结果是一个base64串

IElzbSB6Z2xjIG56YyBlc2RjLiBEY29ucHNpIG56YyBvaW9uY3UuIFRFNTcwNDQyIA==

base64之后得到

Ism zglc nzc esdc. Dconpsi nzc oioncu. TE570442

答案是You have the code. Destroy the system. NC570442

过程待补

丢到quipqiup里面词频分析下就没了。注意映射关系是一一对应,结果需要少量修改。

通关感想

通关后放一个视频。显示最旧的一个评论大致是15min前,还算赶上了潮流(虽然全是靠Twitter大神带,作死把自己的ID加上去了。。。虽然实际上就破了一层)。正如评论所说,两天努力换个30秒广告,太坑。

最后讨论组里面发现大家来自五湖四海,美国法国英国德国土耳其比利时……全球各地的人们(估计黑客占大多数)为了相同的目标聚集在了一起。Global Efforts.

最后大家一块拿Xbox打联机游戏了。。。我又没钱买

不过这个应该算一次大型MISC挑战……很多的还是不会做。

有机会再重新梳理一下吧。菜鸡的分析就到此为止了。

It is my final heart.
最后更新于 2020-04-18