← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 32 → Seviye 33

Teknik Not

Bağlam

Level 32’ye giriş yaptığımızda garip bir ortamla karşılaşıyoruz. Yazdığımız her komut anında BÜYÜK HARFE çevriliyor. Linux komutları küçük/büyük harf duyarlı olduğu için hiçbir komut çalışmıyor.

ls
# Çıktı: sh: LS: command not found

“Uppshell” adlı özel bir kabuğun içine hapsolmuş durumdayız.

Çözüm

Çözüm şaşırtıcı derecede basit. Harf kullanmadan (veya büyük/küçük harften etkilenmeyen bir şeyle) yeni bir shell başlatmalıyız.

Shell programlamada $0, o an çalışan programın (yani shell’in kendisinin) ismini tutan özel bir değişkendir.

Eğer $0 yazıp enter’a basarsanız, uppshell bu değişkeni açar. $0 genellikle sh veya bash değerini taşır. Rakamlar ve semboller büyük harf dönüşümünden etkilenmediği için, sistem aslında şu komutu çalıştırmış olur:

sh

veya

bash

Adımlar:

  1. $0 yazın ve Enter’a basın. Normal bir komut satırı simgesi ($) göreceksiniz.
  2. Kontrol Edin: Artık normal bir shell içindesiniz! ls veya whoami yazarak deneyebilirsiniz.
  3. Şifreyi Alın: Şifre her zamanki yerinde:
    cat /etc/bandit_pass/bandit33

Öğrendiklerimiz

  1. Kısıtlı Kabuklar (Restricted Shells): Kullanıcının yapabileceklerini sınırlamak için tasarlanmış özel ortamlardır.
  2. $0 Değişkeni: O an çalışan shell veya scriptin ismini tutar. Yeni bir shell örneği başlatmak için sıkça kullanılan bir kısayoldur.