1 XCTF平台crypto新手練習區題目
https://adworld.xctf.org.cn/task/task_list?type=crypto&number=5&grade=0
1.1 base64
根據題目應該是base64編碼;
打開附件后看到一串符合base64編碼的字符串;
base64解碼后得到flag~
1.2 Caesar
打開附件,可以觀察格式符合flag的格式cyberpeace{xxx_xxx_xxx},根據題目,可以合理猜測這里用的是凱撒加密,根據第一位c變成了o,可得位移為12;
通過工具,解密得到flag~
1.3 Morse
根據題目以及附件可以判斷該題是摩斯密碼,將1替換為-,將0替換為.后,用工具解密即可;
根據題目格式說明最后均為小寫字母,取得flag~
1.4 混合編碼
首先看附件的內容猜測這是base64編碼后的,先進行base64解碼,發現是Unicode的&#;編碼,解碼后發現還是base64編碼,再次進行解碼后出現一串數字,可以推測是ascii碼,根據ascii碼對照表取得flag~
1.5 冪數加密
根據題目可知是冪數加密,又根據題目可知flag是8位大寫字母,觀察附件的數字串,根據冪數加密的原理,該題最大的數字是8,可知底數應該是1,觀察發現有7個0,正好可以將之分成8份,,即88421/122/48/2244/4/142242/248/122,加起來后為23/5/12/12/4/15/14/5,對應26個字母即WELLDONE,取得flag~
1.6 Railfence
根據題目“柵欄里面5只小雞”以及附件內容的格式可知,使用了柵欄密碼且欄數為5,直接使用工具解密;
發現解密后不符合flag格式,看來不是傳統型的柵欄密碼;
使用W型的柵欄密碼解密工具后取得flag~
1.7 easy RSA
已知P、Q和e三個參數,求解d;
使用工具,取得flag~
1.8 不僅僅是Morse
首先用摩斯密碼先解一下;
可以看到后面有一串AB組成的字符,原理應該是二進制的方式加密,根據題目提示,是一種食物命名的加密,推測為培根加密;
將AB字符串用培根密碼解密后取得flag~
1.9 Easychallenge
附件是.pyc二進制文件,下載后用反編譯工具查看其源碼;
可以注意到用了三次加密的方法對輸入進行加密后和final進行比較,那么我們對final反向解密三次即可;
這是三次加密的代碼,分析一波:首先encode1()函數對每個字符轉換成ascii碼后和36進行亦或操作,然后加上25后重新轉為字符串;encode2()函數對每個字符轉換成ascii碼后先加上36再和36進行亦或操作后重新轉換為字符串;encode3()函數就是簡單的用base32加密;
針對每個加密步驟寫對應的解密步驟后進行解密即可,運行取得flag~
1.10 Normal RSA
這里有兩個文件,思路:pubkey.pem是公鑰文件,我們從中可以獲得公鑰中的N參數,然后使用工具進行分解獲得p和q兩個參數,然后flag.enc是加密后的文件,用python寫個程序進行破解,進而取得flag。
用openssl命令取得pubkey.pem文件中的N和e;
(Tips:這時N為十六進制,注意轉成十進制。)
取得N后分解獲得q和p;
用rsatool.py生成一個私鑰后解密flag.enc取得flag即可~
1.11 轉輪機加密
輪轉密碼。首先根據密鑰重新排序:即第二行為原本第三行,第三行為原本第七行,以此類推,得到以下內容:
然后根據密文,將每一行的開頭調整為對應的密文,得到以下:
沒有找到flag;
重新按密鑰進行排序,這次改為第一行對應第一個密鑰即第二行,第二行對應第二個密鑰即第三行,得到以下:
然后按照密文進行排序:
第一行按照密文排好后我們可以發現其中一行為“fireinthehole”,取得flag~
1.12 easy ECC
已知ECC的其他參數求公鑰K;
直接使用工具求得公鑰;
根據題目flag為x+y的值,取得flag~