IThome 2024 鐵人賽 一直刷 CTF - Day30
前言
三十天了! 今天就寫六題 Crypto 的 Writeup ,最後再來個小小總結
Writeup
第一題:rsa_oracle
這題要利用 RSA 模運算中乘的性質解出這題
\[c = m^e \mod n\] \[m = c^d \mod n\] \[(a \cdot b) \mod n = ((a \mod n) \cdot (b \mod n)) \mod n\] \[m_1*m_2 = (c_1^d \mod n) \cdot (c_2^d \mod n) = (c_1^d \cdot c_2^d) \mod n = (c_1 \cdot c_2)^d \mod n\]
我們可將 \(c_1\) 設為題目給的密碼,\(c_2\) 自己設一個數字,就能藉由 \(c_2\) 和 \(c_1*c_2\) 的解密結果,推出 \(c_1\) 的明文,也就是用來解密用的密碼,再根據提示利用 openssl 解出 flag。
1 | In [1]: from Crypto.Util.number import * |
1 | openssl enc -aes-256-cbc -d -in secret.enc |
第二題:Custom encryption
按照題目給的 script 一步步倒推回去就可以得到答案了
1 | from math import gcd |
第三題:C3
一樣按照編碼器構造出解碼器
1 | lookup1 = "\n \"#()*+/1:=[]abcdefghijklmnopqrstuvwxyz" |
神奇地得到了一串新的 python 2 程式碼
1 | #asciiorder |
把修改成 python3 的程式碼然後再把這串程式碼當成輸入就得到 flag 了
picoctf{a....s}
第四題:rotation
根據題目給的密文隨便 rotate 一下就得到答案了

第五題:ReadMyCert
查了一下解析 cert 的指令,然後就得到 flag 了

第六題:HideToSee
查了一下隱寫術的工具,想用用 Steghide 但 mac 一時裝不起來就隨便找了一個 online tool 解出了一串看起來一副快是 flag 的東西
1 | krxlXGU{zgyzhs_xizxp_05y2z65z} |
然後再用圖片中講到的 Atbash Cipher 解密看看,就成功得到 flag 了

總結
最後一天了,鐵人賽這段時間是我第一次這樣長時間接觸這些資安技術、刷 CTF 題目,來看一下最後的成果
- 每天六題 picoCTF
- 達成: 103/174 題
- 每三天一部 Beef Soup 的教學影片
- 達成: 6/9 部
我的達成率大概只有 6 成
ww,不過學到的技術還是挺多的,知道各種常見的題型,因為跟著課程學,主要還是在玩
Web ,像是 path traversal, lfi, sql injection, … 一大堆可以玩的洞,而
Crypto, pwn, reverse 都還沒有太多研究,目前感覺 web 的這些 CTF
題目很好玩,雖然知道題目都是設計過的,但每次把一個看似一切正常的網站打出一個洞就很有成就感,之後應該會慢慢點開自己的技能樹,去參加一些酷酷的比賽
(可是最近真的參加太多活動太多了 RRRRRRRR)