[鶴城杯 2021]easy_crypto
題目:
公正公正公正誠信文明公正民主公正法治法治誠信民主自由敬業公正友善公正平等平等法治民主平等平等和諧敬業自由誠信平等和諧平等公正法治法治平等平等愛國和諧公正平等敬業公正敬業自由敬業平等自由法治和諧平等文明自由誠信自由平等富強公正敬業平等民主公正誠信和諧公正文明公正愛國自由誠信自由平等文明公正誠信富強自由法治法治平等平等自由平等富強法治誠信和諧
解題:
社會主義價值觀解碼,+.+
flag{IlUqU9O5guX6YiITsRNPiQmbhNRjGuTP}
[強網擬態 2021]擬態簽到題
題目:
ZmxhZ3tHYXFZN0t0RXRyVklYMVE1b1A1aUVCUkNZWEVBeThyVH0=
題解:
後面有等號,大機率base加密,按照密文的組成數字和字母範圍大概是base64
大概啊都是大概,我基礎不太行,(#^.^#)
flag{GaqY7KtEtrVIX1Q5oP5iEBRCYXEAy8rT}
[SWPUCTF 2021 新生賽]crypto8
題目:
73E-30U1&>V-H965S95]I<U]P;W=E<GT`
題解:
有< > = 等符號和數字還有字母組成,是Uuncode編碼,嘎嘎嘎,還好我先去看了遍編碼 *^-^*
NSSCTF{cheese_is_power}
[SWPUCTF 2021 新生賽]crypto7
題目:
69f7906323b4f7d1e4e972acf4abfbfc,得到的結果用NSSCTF{}包裹。
題解:
MD5加密,別問理由,不知道嘞!這不是有標籤提示麼。
NSSCTF{md5yyds}
[SWPUCTF 2021 新生賽]crypto6
題目:
var="************************************"
flag='NSSCTF{' + base64.b16encode(base64.b32encode(base64.b64encode(var.encode()))) + '}'
print(flag)
小明不小心洩露了原始碼,輸出結果為:4A5A4C564B36434E4B5241544B5432454E4E32465552324E47424758534D44594C4657564336534D4B5241584F574C4B4B463245365643424F35485649534C584A5A56454B4D4B5049354E47593D3D3D,你能還原出var的正確結果嗎?
題目:
審計程式碼,需要進行base64,base32,base16解密
需要解密的密文是:4A5A4C564B36434E4B5241544B5432454E4E32465552324E47424758534D44594C4657564336534D4B5241584F574C4B4B463245365643424F35485649534C584A5A56454B4D4B5049354E47593D3D3D
採用魔法棒一把梭,哎嘿
NSSCTF{5e110989-dc43-1bd3-00b4-9009206158fe}
[SWPUCTF 2021 新生賽]ez_caesar
題目:
import base64
def caesar(plaintext):
str_list = list(plaintext)
i = 0
while i < len(plaintext):
if not str_list[i].isalpha():
str_list[i] = str_list[i]
else:
a = "A" if str_list[i].isupper() else "a"
str_list[i] = chr((ord(str_list[i]) - ord(a) + 5) % 26 + ord(a) or 5)
i = i + 1
return ''.join(str_list)
flag = "*************************"
str = caesar(flag)
print(str)
#str="U1hYSFlLe2R0em1mYWpwc3RiaGZqeGZ3fQ=="
題解:
開頭引用base64的庫,密文兩個等號
試試魔法棒
SXXHYK{dtzmfajpstbhfjxfw}
[SWPUCTF 2021 新生賽]pigpig
題目:
題解:
可愛的豬豬,下面的一看就是豬圈密碼
照著表對,最近才開始用工具來著,以前都習慣去對錶格(撓頭.jpg)
NSSCTF{whenthepigwanttoeat}
[鶴城杯 2021]A_CRYPTO
題目:
4O595954494Q32515046324757595N534R52415653334357474R4N575955544R4O5N4Q46434S4O59474253464Q5N444R4Q51334557524O5N4S424944473542554O595N44534O324R49565746515532464O49345649564O464R4R494543504N35
題解:
rot13,base16,base32,base64,base85
到這邊一切順利,但是在Base85出現了問題
是的,它Base85不行了,然後我跑去找我師傅了,我師傅剝個瓜子(邊啃邊剝.jpg)
在師傅指導下,我解出來了。◍˃ᵕ˂◍
flag{W0w_y0u_c4n_rea11y_enc0d1ng!}
[SWPUCTF 2021 新生賽]ez_rsa
題目:
p = 1325465431
q = 152317153
e = 65537
計算出d,將d用MD5加密後包裹NSSCTF{}提交
解題:
啊哈哈哈哈,我愛直白的題目。˙Ⱉ˙ฅ
import gmpy2
import hashlib
p = 1325465431
q = 152317153
e = 65537
phi = (p-1) * (q-1)
d = gmpy2.invert(e, phi)
print(d)
#43476042047970113
k = hex(d).encode('utf-8')
print(k)
#b'0x9a753ada825b41'
flag = "flag{" + hashlib.md5(k).hexdigest() + "}"
print(flag)
#flag{3a249418d1fa200066dbebedf8b164d9}
[BJDCTF 2020]base??
題目:
dict:{0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11: 'A', 12: 'B', 13: 'C', 14: 'D', 15: 'E', 16: 'F', 17: 'G', 18: 'H', 19: '7', 20: '8', 21: '9', 22: 'P', 23: 'Q', 24: 'I', 25: 'a', 26: 'b', 27: 'c', 28: 'd', 29: 'e', 30: 'f', 31: 'g', 32: 'h', 33: 'i', 34: 'j', 35: 'k', 36: 'l', 37: 'm', 38: 'W', 39: 'X', 40: 'Y', 41: 'Z', 42: '0', 43: '1', 44: '2', 45: '3', 46: '4', 47: '5', 48: '6', 49: 'R', 50: 'S', 51: 'T', 52: 'n', 53: 'o', 54: 'p', 55: 'q', 56: 'r', 57: 's', 58: 't', 59: 'u', 60: 'v', 61: 'w', 62: '+', 63: '/', 64: '='}
chipertext:
FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw
題解:
算是base吧。反正肯定不是我想的那個。給了dict,應該是把base的表換了,直接找程式碼麼。
import base64
a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
dict={0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11: 'A', 12: 'B', 13: 'C', 14: 'D', 15: 'E', 16: 'F', 17: 'G', 18: 'H', 19: '7', 20: '8', 21: '9', 22: 'P', 23: 'Q', 24: 'I', 25: 'a', 26: 'b', 27: 'c', 28: 'd', 29: 'e', 30: 'f', 31: 'g', 32: 'h', 33: 'i', 34: 'j', 35: 'k', 36: 'l', 37: 'm', 38: 'W', 39: 'X', 40: 'Y', 41: 'Z', 42: '0', 43: '1', 44: '2', 45: '3', 46: '4', 47: '5', 48: '6', 49: 'R', 50: 'S', 51: 'T', 52: 'n', 53: 'o', 54: 'p', 55: 'q', 56: 'r', 57: 's', 58: 't', 59: 'u', 60: 'v', 61: 'w', 62: '+', 63: '/', 64: '='}
d=''
for i in range(65):
d+=dict[i]
b = 'FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw'
l=[]
for i in range(len(b)):
l.append(d.index(b[i]))
m=''
for ll in l:
m+=a[ll]
f=base64.b64decode(m)
print(f)
#b'BJD{D0_Y0u_kNoW_Th1s_b4se_map}'
[LitCTF 2023]夢想是紅色的 (初級)
題目:
自由友善公正公正敬業法治自由自由和諧平等自由自由公正法治誠信民主誠信自由自由誠信民主愛國友善平等誠信富強友善愛國自由誠信民主敬業愛國誠信民主友善愛國平等愛國愛國敬業敬業友善愛國公正敬業愛國敬業和諧文明誠信文明友善愛國自由誠信民主愛國愛國誠信和諧友善愛國自由友善平等愛國友善平等友善自由誠信自由平等愛國愛國敬業敬業友善愛國敬業敬業友善自由友善平等誠信自由法治誠信和諧
題解:
嗯,標準的社會主義核心價值觀
LitCTF{為之則易,不為則難}
[SWPUCTF 2021 新生賽]traditional
題目:
西方的二進位制數學的發明者萊布尼茨,從中國的八卦圖當中受到啟發,演繹並推論出了數學矩陣,
最後創造的二進位制數學。二進位制數學的誕生為計算機的發明奠定了理論基礎。而計算機現在改變
了我們整個世界,改變了我們生活,而他的源頭卻是來自於八卦圖。現在,給你一組由八卦圖方位
組成的密文,你能破解出其中的含義嗎?
震坤艮 震艮震 坤巽坤 坤巽震 震巽兌 震艮震 震離艮 震離艮
格式:NSSCTF{}
解題:
不是我說,這個八卦陣有毒,它要倒著看。我是一個個對出來的,嗚嗚嗚。(其實,有程式碼來著)
整為1半為0得出
001000100 001100001 000110000 000110001 001110011 001100001 001101100 001101100
9位二進位制是不能轉變的,你會發現每組的第一位是0,可以去掉,變成了8位二進位制,進行ACSII碼轉換(二進位制轉十六進位制)。
NSSCTF{Da01sall}
[LitCTF 2023]Hex?Hex!(初級)
題目:
4c69744354467b746169313131636f6f6c6c616161217d
題解:
題目提示很明顯咧!੯‧̀͡u\
HEX!十六進位制解碼!(這我不用出解題過程吧੧ᐛ੭,我不會告訴你是我懶得截圖的!)
LitCTF{tai111coollaaa!}
[SWPUCTF 2021 新生賽]crypto2
題目:
from gmpy2 import *
from Crypto.Util.number import *
flag = '***************'
p = getPrime(512)
q = getPrime(512)
m1 = bytes_to_long(bytes(flag.encode()))
n = p*q
e1 = getPrime(32)
e2 = getPrime(32)
print()
flag1 = pow(m1,e1,n)
flag2 = pow(m1,e2,n)
print('flag1= '+str(flag1))
print('flag2= '+str(flag2))
print('e1= ' +str(e1))
print('e2= '+str(e2))
print('n= '+str(n))
#flag1= 100156221476910922393504870369139942732039899485715044553913743347065883159136513788649486841774544271396690778274591792200052614669235485675534653358596366535073802301361391007325520975043321423979924560272762579823233787671688669418622502663507796640233829689484044539829008058686075845762979657345727814280
#flag2= 86203582128388484129915298832227259690596162850520078142152482846864345432564143608324463705492416009896246993950991615005717737886323630334871790740288140033046061512799892371429864110237909925611745163785768204802056985016447086450491884472899152778839120484475953828199840871689380584162839244393022471075
#e1= 3247473589
#e2= 3698409173
#n= 103606706829811720151309965777670519601112877713318435398103278099344725459597221064867089950867125892545997503531556048610968847926307322033117328614701432100084574953706259773711412853364463950703468142791390129671097834871371125741564434710151190962389213898270025272913761067078391308880995594218009110313
題解:
兩個flag,兩個e,一個n
共模攻擊嘍?
from Crypto.Util.number import *
from gmpy2 import gmpy2
flag1= 100156221476910922393504870369139942732039899485715044553913743347065883159136513788649486841774544271396690778274591792200052614669235485675534653358596366535073802301361391007325520975043321423979924560272762579823233787671688669418622502663507796640233829689484044539829008058686075845762979657345727814280
flag2= 86203582128388484129915298832227259690596162850520078142152482846864345432564143608324463705492416009896246993950991615005717737886323630334871790740288140033046061512799892371429864110237909925611745163785768204802056985016447086450491884472899152778839120484475953828199840871689380584162839244393022471075
e1= 3247473589
e2= 3698409173
n= 103606706829811720151309965777670519601112877713318435398103278099344725459597221064867089950867125892545997503531556048610968847926307322033117328614701432100084574953706259773711412853364463950703468142791390129671097834871371125741564434710151190962389213898270025272913761067078391308880995594218009110313
r,x,y = gmpy2.gcdext(e1, e2)
m = pow(flag1,x,n) * pow(flag2,y,n) % n
if gmpy2.gcd(e1,e2) ==1:
print(long_to_bytes(m))
else :
m = gmpy2.iroot(m,r)[0]
print(long_to_bytes(m))
#b'NSSCTF{xxxxx******xxxxx}'
你沒看錯,那個像是報錯的flag真的是flag