今天進入密碼學的第一天,會介紹一些傳統的密碼,以及一些線上工具、好用的解密工具等等,再來介紹到比較近代的密碼,雖然密碼學有一點枯燥,不過成功解出拿到Flag還是很有成就感的,廢話不多說就先來三題熱身題吧~
這題給了一個密文和一個key以及一個檔案
這個很明顯的就是 vigenere-cipher
是一種很古老的加密方式
他的加解密方式都是一樣的,這邊以這題示範前兩個字母就好,因為等等直接利用線上工具就可以解出來,不過還是稍微介紹這是如何做加解密的
這裡我以直行來看,key的第一個字母 t 往右找,找到密文的第一個字母L再往上對應到s,key的第二個字母 h 往右找,找到密文的第一個字母l再往上對應到e
以此類推,所以他的明文就是 sexxxxxxx 後面請自行練習看看
但是這樣一個一個找太麻煩了這裡推薦一個好用的線上工具
https://www.dcode.fr/vigenere-cipher
若要解密在Decoder裡面填入密文,以及下面的第一個填入key,接著按Decrypt,在左邊就可以看到結果囉
這題的Flag就是secretmessage,記得提交的時候前面要加上 picoCTF{secertmessage}
這題給了一個密文,他說有沒有聽過rot13這種加密方式,其實這就是凱薩加密,他將明文的字母加上13,就會得到密文,那要從密文解到明文只要扣掉13就可以了
這裡一樣推薦一個線上工具可以列出凱薩加密的26種可能
https://planetcalc.com/1434/
將密文丟進去他會列出所有可能,因為凱薩加密最多也只有26種可能,所以也並不是一個很安全的加密方式,不過因為他很古老,所以也是拿出來介紹一下
在ROT13就出現Flag了
這一題給了兩個檔案 passwd
shadow
passwd:
root:x:0:0:root:/root:/bin/bash
shadow:
root:$6$IGI9prWh$ZHToiAnzeD1Swp.zQzJ/Gv.iViy39EmjVsg3nsZlfejvrAjhmp5jY.1N6aRbjFJVQX8hHmTh7Oly3NzogaH8c1:17770:0:99999:7:::
Linux中shadow是用來儲存真實帳號密碼與一些相關資訊的檔案,每一行都對應到passwd
這裡可以看到帳號名稱應該是root(第一個冒號之前),中間的一長串就是加密過後的密碼,那這邊題目的名字有提到 johnny
這邊要介紹一個很好用的開源工具 john the ripper
,他是一個可以快速破解密碼的工具,用於已知密文且支援大多數的加密法,若密碼不夠牢靠很有可能就會被破解
那這邊就來使用一個最基礎的破解linux密碼,也就是這題的題目
unshadow passwd shadow > solve.txt
這是一個將兩個檔案組合的指令
接著使用
$ sudo john --show solve.txt
root:password1:0:0:root:/root:/bin/bash
這裡可以看到密碼被成功破解,就是password1,帳號則是root
接著就直接nc,輸入帳號密碼後就可以拿到Flag了
竟然有這麼厲害的工具,他還有很多很多種用法,詳細的可以參考 man john
裡面有各式指令、參數,等著大家去挖掘