OverTheWire Bandit: Seviye 10 → Seviye 11
Bağlam
Bazen verileri ham haliyle (binary) saklamak veya iletmek zor olabilir. Bu yüzden bu verileri ASCII karakter setine (klavyedeki harfler ve sayılar) dönüştüren bir yöntem kullanılır: Base64.
Base64 kodlanmış bir metin genellikle sayılar, harfler (büyük/küçük) ve sonundaki bir veya iki eşittir (=) işaretiyle tanınır.
Önemli: Base64 bir şifreleme (encryption) yöntemi değildir, bir kodlama (encoding) yöntemidir. Yani bir anahtara ihtiyaç duymadan herkes tarafından orijinal haline döndürülebilir.
Hedef
data.txt dosyası Base64 ile kodlanmış. İçindeki şifreyi ortaya çıkarmak için bu kodlamayı çözmeliyiz.
Çözüm
Önce dosyanın içeriğine bakalım:
cat data.txt
# VGhlIHBhc3N3b3J... (gibi karışık bir metin)
Gördüğümüz metin anlamsız karakterler yığını gibi duruyor ve sonunda muhtemelen = işareti var. Bunu çözmek için base64 komutunu -d (decode) parametresiyle kullanacağız:
base64 -d data.txt
Komutun Analizi:
base64: Linux’un standart kodlama/kod çözme aracı.-d: “Decode” yani kod çözme modunu açar. Varsayılan olarak encode eder.data.txt: Girdi dosyası.
Çıktı:
The password is: 6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM
Şifremiz yine tüm çıplaklığıyla karşımızda. Gördüğünüz gibi, bir şeyi Base64 ile kodlamak onu güvenli yapmaz, sadece formatını değiştirir.
Öğrendiklerimiz
- Base64 Encoding: Binary veriyi metin formatında saklamak için kullanılan bir yöntem. E-posta ekleri, web kullanımı gibi alanlarda sıkça karşımıza çıkar.
base64 -d: Kodlanmış veriyi orijinal haline döndürür.