1. Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha Fazla Bilgi.
  2. Ulusal Siber Güvenlik Akademisi olarak sizlere bu alanda siber güvenlik & ethical hacking eğitimi , günümüz siber saldırılarında kullanılan araç ve teknikleri kullanarak, siber güvenlik konusunda sizlere saldırı ve savunma yönünden eğitimler ile sizlerin çözümler üretebileceğiniz bir siber dünya sunuyoruz .

  1. Çevrimiçi
    dokki

    dokki Teğmen

    • Mesaj:  5
    • Alınan Beğeniler:1
    11 Haziran 2018
    Cinsiyet:
    Erkek
    Şimdide alan adı yöneticileri (nic whois domain) sitelerinde bulunan Rce açığından bahsedelim.
    Bu güvenlik açığı tüm türler arasında en tehlikelisidir ve genelde 10 üzerinden 10 ile derecelendirilir. Bulmak zordur. Komut çalıştırma açığı aranan scriptte, komut çalıştıran bi kod parçası olması gerekir haliyle. Bu yüzden bulmak zordur, çünkü çok gerekmedikçe webmasterlar kolay kolay komut çalıştıran kodlar yazmaz. Ancak her sistemin her katmanında bu tip açıklara rastlanabilir. Biz burada web hacking'deki mevzusundan bahsedeceğiz.
    [​IMG]

    Eğer birleştirecek bir komut kullanırsan, 2 komutun bileşkesini alırsın. Şekil b;



    [​IMG]

    Şimdi php kodumuzda deneme yapalım:

    Normal sorgu(google.com):

    [​IMG]


    RCE(google.com|ls -la):
    [​IMG]

    "&" (AND Karakteri):
    2 tane koyarsanız(&&) 2 komutu da çalıştırır. Örnek çıktı:
    [​IMG]

    Bi tane koyarsanız değişik bişeyler yapıyor(Aslında konsolda ilk komutu arka plana atar, orada çalıştırır). Ama and karakteri filtreli değilse niye bi tane koyayım ki zaten, 2 tane koyar keyfime bakarım.
    Web sitemizde deneme yapalım:

    [​IMG]

    Mevzu 1:
    url'den gönderilen & karakteri %26 ile urlencode edilmezse web server tarafından parametre ayracı olarak algılanır.

    Mevzu 2:
    Çıktıda önce ilk komut, sonra && 'den sonraki komut görünür.


    " ` " (Backtick Karakterleri):
    Bu karakter arasına yazılanlar da komut olarakçalıştırılır ve çıktısı olduğu gibi yazıldığı konumayansır.

    Örnek kullanım:
    [​IMG]

    Burada `echo google.com` çıktısı "google.com" dur. Dolayısıyla "whois google.com" yapmış olduk. Bu karakter ile yapacağınız "rce" saldırılarında her zaman çıktı alamazsınız. Bu gibi durumlarda yaratıcılığınızı kullanın. Neticede kod çalışıyor. Örneğin wget ile kendi web adresinize istek göndertip gelen istekleri yakalatabilirsiniz(sniffer mantığı). Veya direk wget ile şelinizi sunucuya çekersiniz ;)

    Web sitesi denemesi:

    [​IMG]
    Çıktı yok.
    Komut çalışmışmı kontrol edelim:
    [​IMG]
    Çalışmış.


    " $() " kombosu (shell değişkentanımlama):
    Linux kullanan pek çoğunuz bi gün "apt-get install linux-headers-$(uname -r)" komutuna ihtiyaç duymuştur. Bu komutta kullanılan $(uname -r) kısmı bizim kernel versionumuzu basacaktır. Örnek ekran görüntüsü:
    [​IMG]

    Burada bize "3.18.0-kali3-amd64" döndürmüş oldu. Dolayısıyla $() içine ne yazarsak onun çıktısını döndürür. Anlık değişken kullanmış oluruz. Çıktıyı bunda da her zaman görmemiz mümkün olmayabilir. Ama wget mevzusunu burada da uygulayabiliriz. Neticede komutumuz çalışacak.

    Web sitesi denemesi:

    [​IMG]
    Kod çalışmışmı kontrol edelim:

    [​IMG]
    Yemiş.


    " ; " Karakteri (noktalı virgül):
    Bu da && görevi görür:

    Örnek deneme resim 1:
    [​IMG]

    Aşağısı:
    [​IMG]

    Gördüğünüz gibi iki komut da çalıştı. Ayrıca 2. komutu çıktıya da bastı.

    Web site denemesi:

    [​IMG]

    Yine en altta "ls -la" çıktısı görünmekte.

    " > " (echo karakteri):
    Bildiğiniz gibi hem windows hem unixte bu karakter çıktıyı dosyaya yazar.
    Örnek "echo asd > asd.txt" yazarsanız "asd.txt" oluşturup içine "echo asd" çıktısını yazar. Dolayısıyla "asd" yazmış olur. Biz de haliyle şelde takıldığımıza göre, "whois google.com > asd.php" yazarsak "whois google.com" çıktısını "asd.php" ye yazmış oluruz. Çıktısına müdahale edebileceğimizbir komutta ">" karakteri ile dosyaya yazabilirseksunucuda "php" dosya oluşturarak kod çalıştırabiliriz.Web denemesi yapalım:

    [​IMG]

    Dosyamız oluşmuşmu?
    [​IMG]
    Oluşmuş.


    Sonuç:
    Bunlar gibi belki benim de bilmediğim veya aklıma gelmeyen daha pek çok müdahale yöntemi var. Burada önemli olan, önce hangi karakterler filtreli onları tespit edip, bunları kullanmadan komuta müdahale etmenin imkanı varmı onu bulmak. He unutmadan şuna da değineyim, shellshock saldırı komutları da bu gibi komut üzerinden çalıştığındanşüphelenilen scriptlerde denenebilir.

    Burada ben yazımı unix ağırlıklı yazdım ama bu yöntemlerin neredeyse hepsi windows'ta da işe yaramaktadır. Çoğunun kullanımı orada da aynıdır.

    Önce çalışan komutu yorumlamak gerekir. Neticede adam komuta parametreyi " " (çift tırnak işaretleri) arasında da alabilir. Bu gibi durumda yazdıklarımız String olarak algılanacaktır. Dolayısıyla biz önce " kullanarak String bloğundan dışarı çıkmalıyız. Aynı şey ' ' (tek tırnak işaretleri) için de geçerli. Bunları kullanıp da parametreyi alırken "escape" etmemişse yine her türlü bi yolunu bulup komut çalıştırabilirsiniz. O yüzden shell'de kullandığınızda özel karakter olarak algılanan ne kadar karakter varsa kullanmanızı ve bu sayede hata almaya çalışmanızı tavsiye ederim.
    Hatalar direk basılmasa bile, iç sunucu hataları alarak da denemeler yapabilirsiniz. Ayrıca bazı örneklerde gördüğünüz gibi RCE her zaman görsel olarak çıktı alma imkanı tanımaz. Bazen de Blind RCE yapmanız gerekebilir.