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:
$0yazın ve Enter’a basın. Normal bir komut satırı simgesi ($) göreceksiniz.- Kontrol Edin:
Artık normal bir shell içindesiniz!
lsveyawhoamiyazarak deneyebilirsiniz. - Şifreyi Alın:
Şifre her zamanki yerinde:
cat /etc/bandit_pass/bandit33
Öğrendiklerimiz
- Kısıtlı Kabuklar (Restricted Shells): Kullanıcının yapabileceklerini sınırlamak için tasarlanmış özel ortamlardır.
$0Değ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.