本次WP,由雒大佬提供!

0x1 base16

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

直接转字符串

flag{it_is_b4s3sixteen}

 

0x2 base32

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 直接base32

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 

 0x3 base64

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 直接base64解码

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 

0x4 unicode

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 直接转字符串

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 

0x5 easy_caesar 

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 凯撒解密

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 得到flag

 

0x6 奇怪的字符串

R1kzRE1RWldHRTNET04yQ0dNNERHTkpUR0laVFFNWlRHTVpUTU5KV0dFWlRPTlJUR00zVEdOSlRHNDNETU5SUkdNWlRHTkpXR01aVElOUldHTVlER01KVEhBM0RNTlJSR1lZVE1NWlRHWVpUT05SUkdNWVRHTVpYSVE

先拿base64解密

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 提示失败,在字符串后面加上=

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

得到结果

尝试再次进行base64解码

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 提示失败,再次加=

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 很明显不是我们想要的

尝试base32

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

得到一个十六进制

转字符串

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 得到flag

 

0x7 easy_rsa1

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

前面转了那么多十六进制到字符串

密文一看就知道转字符有flag

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 

这道题 如果没发现特点,可以按rsa常规的套路去做,n里面出现了非十六进制数

说明n在这里肯定用不了

但是给出e=1,rsa加密中 如果e=1 c=m mod n,假如m 与  n 互质,c=m

 

0x8 easy_rsa0

n = 14783703403657671882600600446061886156235531325852194800287001788765221084107631153330658325830443132164971084137462046607458019775851952933254941568056899
e = 65537
c = 1185049716299203720803420810904079629528218564331492627830830396094648931160053948162527867338891026371024154472597960669760006765402877890901585728358989

 

常规题目,尝试分解n

在factordb上查询 没有得到结果

用yafu进行分解

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

分解成功得到 p和q

然后通过p、q、e破解出 d

import gmpy
from Crypto.PublicKey import RSA
n = 14783703403657671882600600446061886156235531325852194800287001788765221084107631153330658325830443132164971084137462046607458019775851952933254941568056899
c = 1185049716299203720803420810904079629528218564331492627830830396094648931160053948162527867338891026371024154472597960669760006765402877890901585728358989
e = long(65537)

p = 121588253559534573498320028934517990374721243335397811413129137253981502291631
q = 121588253559534573498320028934517990374721243335397811413129137253981502291629

d = long(gmpy.invert(e,(p-1)*(q-1)))

key = RSA.construct((n,e,d))

print key

print key.decrypt(c)

print hex(key.decrypt(c))

print hex(key.decrypt(c))[2:-1].decode('hex')

然后直接利用私钥解密

得到明文 不过明文是十进制 需要转成字符串

最后得到flag{rsa_1s_s0_interesting}

 

0x9 cipher

给出的是一串十六进制

我们将其转成字符串得到

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 看着很懵逼,对其进行分析,发现有很多字符串重复,于是将其在百度上搜索

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 

替换与置换密码

对其进行凯撒解密

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

发现关键词 cipher 通过分析得知 该字符串是通过凯撒加密且位移位3后的字符串

将其全文进行凯撒解密得到

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

出现了很多正常的英文单词

且其中出现了rot46,于是百度搜索

并没有关于rot46的信息,但是看到rot47

于是自己写rot46的脚本

得到的结果依然不对

后面分析rot47

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

 

说是对ascii值进行置换

于是尝试和对全文进行位移为3的ascii置换

s="4c712366757c7377726a7564736b7c2f23642346646876647523666c736b68752f23646f7672236e71727a71236476234664687664752a7623666c736b68752f23776b6823766b6c697723666c736b68752f234664687664752a7623667267682372752346646876647523766b6c69772f236c762372716823726923776b6823766c70736f687677236471672370727677237a6c67686f7c236e71727a7123687166757c73776c7271237768666b716c7478687631234c77236c76236423777c73682372692376786576776c7778776c727123666c736b6875236c71237a6b6c666b236864666b236f6877776875236c7123776b6823736f646c7177687b77236c76237568736f6466686723657c2364236f6877776875237672706823696c7b686723717870656875237269237372766c776c7271762367727a7123776b6823646f736b64656877312349727523687b6470736f682f237a6c776b2364236f68697723766b6c697723726923362f2347237a72786f67236568237568736f6466686723657c23442f2348237a72786f672365686672706823452f236471672376722372713123576b68237068776b7267236c76237164706867236469776875234d786f6c7876234664687664752f237a6b722378766867236c77236c71236b6c762373756c7964776823667275756876737271676871666831100d576b6823687166757c73776c727123767768732373687569727570686723657c23642346646876647523666c736b6875236c76237269776871236c71667275737275647768672364762373647577237269237072756823667270736f687b2376666b687068762f237678666b23647623776b6823596c6a6871c6ab756823666c736b68752f236471672376776c6f6f236b647623707267687571236473736f6c6664776c7271236c7123776b6823555257343623767c7677687031234476237a6c776b23646f6f23766c716a6f6830646f736b646568772376786576776c7778776c727123666c736b6875762f23776b682346646876647523666c736b6875236c76236864766c6f7c236575726e687123647167236c71237072676875712373756466776c666823726969687576236876766871776c646f6f7c237172236672707078716c6664776c72712376686678756c777c3123100d5d707b6b5d36776d5c5a596d5c5b4d69645b51695d5a497d685b3340"
result=""
i=0
while i < len(s):
	result+=chr(int(s[i:i+2],16)-3)
	i+=2
	print result

得到结果

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

前两段话是摘自wiki上关于凯撒加密的介绍

最后一句就是flag了

直接base64解码

2018西安工业大学第二届萌新线上赛密码学 WP-LMLPHP

熟悉的flag味道

转字符串

flag{caecar_is_easy}

0x10 总结

这次的密码题简单的非常简单,难的难在脑洞,真正的技术难题感觉并没有。

 

10-06 15:29