Turkhackteam.net/org - Turkish Hacking & Security Platform...  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform... >
Programlama
> Python


Command Injection - Python Django Örneği

Python

Yeni Konu aç Cevapla
 
Seçenekler
Alt bir Hafta önce   #1
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Mar 2017
Nereden
İzmir
Yaş
15
Mesajlar
Konular


  
Command Injection - Python Django Örneği



Merhabalar,

Kısa bir süre önce Django’ya başladım. Kendimi geliştirmek adına ufak bir kaç uygulama yazdım. Bu yazı, Command Injection açığı ve Django’da örneğini içeriyor olacak. Tüm dosyalara GitHub üzerinden ulaşabilirsiniz.

Command Injection Nedir?

Command injection, uygulamadan kaynaklı bir hata sayesinde uygulamanın bulunduğu sistem üzerinde keyfi komut çalıştırma saldırısıdır. Command injection saldırıları, alınan verinin herhangi bir kontrolden geçirilmeden direk sistemde çalıştırılması ile oluşur.

Command injection, Code injection ile karıştırılmamalıdır. Code injection saldırılarında, uygulamanın yazıldığı dilde komutlar ile çalışırsınız fakat command injection saldırılarında direk sistem komutları ile çalışırsınız.

Python ile örneği

Kod:
import os

def ping(host):
    os.system(’ping -w 3 ’ + host)
Gördüğünüz üzere, hiçbir önlem alınmadan host parametresinin aldığı değer sistemde ping komutu ile çalıştırılmış. Hemen nasıl istismar edebileceğimize bakalım bu kodu,


İşte! Gördünüz mü? Biz, host parametresine sadece google.com yazmak yerine, google.com && uname -a yazdık ve bu sayede ping işlemine ek olarak uname -a komutunu da sistemde çalıştırmış olduk

Django Uygulaması

Hemen template klasörümüze formun yer alacağı dosyayı oluşturalım.


Şimdi forms dosyamıza ihtiyacımızı görecek bir form ekleyelim.


Şimdi views dosyamıza, ping fonksiyonunu ekleyeceğiz. Yani arkada işleri halledecek fonksiyonu yazacağız şimdi.


Resimde görüldüğü gibi, ping fonksiyonu, request adında bir parametre alıyor. Eğer gelen istek POST ise formdan gelen değeri ipaddress değişkenine atıyor. Şimdi fark ettim de for döngüsü ile liste oluşturmaktansa direk list() fonksiyonunu kullanabilirdim. Hatta elimdeki veri sözlük türünde olduğu için request.POST[’ipaddress’] şeklinde de istediğim veriye ulaşabilirdim. Neden öyle yaptığımı hatırlamıyorum :P

İstediğimiz değeri aldıktan sonra, alınan değeri ping -w 5 ile birleştirip hiçbir sorgu olmadan sistemde çalıştırıp çıktıyı result değişkenine atamışım. Ardından çıktıyı <pre> tagı içine alıp HttpResponse objesi içinde döndürmüşüm. Herhangi bir template kullanmaya gerek duymadım.

Çalıştırmadan yapmamız gereken bir şey daha var, urls dosyasına ekleme yapmak.


Evet, artık yazdığımız uygulamayı çalıştırıp deneyebiliriz. Hemen çalıştıralım.


Uygulamamızı başlattık, bağlanıp kontrol edelim.


Evet! Uygulamamız çalışıyor. Hemen istismar etmeye çalışalım uygulamayı. Ping işlemi ve bizim çalıştıracağımız komut arasında bir satır boşluk olsun diye araya echo ekledim.


Tam da istediğimiz gibi... Ping işleminin yanında verdiğimiz uname -r komutu başarılı bir şekilde çalıştı. Bundan sonra sistemi istediğiniz gibi kontrol edebilirsiniz.

Alınabilecek Önlemler

Alınabilecek en basit önlem, gelen verinin önceden izin verilen karakterler içinde olup olmadığını kontrol etmek. İzin verilen karakterler şunlar olacak:
"abcdefghijklmnopqrstuvwxyz0123456789.". Hemen örneğini gösterelim.


Eğer ipaddress içerisinde yer alan herhangi bir harf izin verilen harflerin bulunduğu chars değişkeninde yoksa, sistemde herhangi bir şey çalıştırmıyor ve ekrana Neyin peşindesin bro!? yazdırıyor :P


Veee...


Eğer uslu uslu istenilen gibi bir değer girersek, program düzgün çalışacaktır.

Biraz basit bir konu oldu ama belki birileri Django’ya meraklanıp öğrenmeye başlayabilir

Yararlanılan kaynaklar:
blackvkng.github.io
    


__________________

Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #2
  • Offline
  • Yüzbaşı
  • Genel Bilgiler
Üyelik tarihi
Sep 2016
Mesajlar
Konular


  


Komut çalıştırma derdindeyim bro, eline sağlık.
    


__________________

"Benim naçiz vücudum, bir gün elbet toprak olacaktır. Fakat Türkiye Cumhuriyeti, ilelebet payidar kalacaktır."
"Türk olmak, üstün olmak için kâfidir"
Mustafa Kemal ATATÜRK
Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #3
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Mar 2017
Nereden
İzmir
Yaş
15
Mesajlar
Konular


  


Alıntı:
Pentester´isimli üyeden Alıntı Mesajı göster
Komut çalıştırma derdindeyim bro, eline sağlık.
Teşekkür ederim
    


__________________

Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #4
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Aug 2017
Nereden
cd desktop
Mesajlar
Konular


  


Eline sağlık hocam
    


__________________

┏╋━━━━━━━━━━━━━━━━━━━━━◥◣◆◢◤━━━━━━━━━━━━━━━━━ ━━━━╋ ┓
Arsızlık her zaman kazanır!

┗╋━━━━━━━━━━━━━━━━━━━━━◥◣◆◢◤━━━━━━━━━━━━━━━━━ ━━━━╋ ┛
Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #5
  • Offline
  • Binbaşı
  • Genel Bilgiler
Üyelik tarihi
Apr 2014
Nereden
el psy congr
Yaş
20
Mesajlar
Konular


  


tespit etmek için 8cin pratik bir yolda öğreteydin keske
    


__________________

JUST A THINK
Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #6
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Mar 2017
Nereden
TURAN
Mesajlar
Konular
7


  


Eline sağlık.
    


__________________

╋━━━━━━━━━━━━◥◣◆◢◤━━━━━━━━━━━╋
NE MUTLU TÜRKÜM DİYENE! / BİR ÖLÜR BİN DİRİLİRİZ!
Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #7
  • Offline
  • Ar-Ge Tim(Bug Researcher)
  • Genel Bilgiler
Üyelik tarihi
Oct 2015
Nereden
rm -rf /
Mesajlar
Konular


  


//Sabit, ellerine sağlık
    


__________________

I surrender my soul
Odin hear my call

See you again (:

hacknology@hacknologyroot:~/
Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #8
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Mar 2017
Nereden
İzmir
Yaş
15
Mesajlar
Konular


  


Teşekkür ederim
    


__________________

Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #9
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Mar 2017
Mesajlar
Konular
7


  


Sanırım django ile ilgili ilk defa bir konu gördüm. Eline sağlık. Önemli bir açık
    


__________________

Çok çalışmak yerine aklını kullanmak, seni zamandan kazandırır.
Offline
 
Alıntı ile Cevapla
Alt bir Hafta önce   #10
  • Offline
  • Teğmen
  • Genel Bilgiler
Üyelik tarihi
Mar 2017
Nereden
İzmir
Yaş
15
Mesajlar
Konular


  


Alıntı:
Phoique 7´isimli üyeden Alıntı Mesajı göster
Sanırım django ile ilgili ilk defa bir konu gördüm. Eline sağlık. Önemli bir açık
Teşekkür ederim. Ciddi bir açık olsa da, böyle bir açık bırakan programcı, kendine programcı demesin :P
    


__________________

Offline
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks Kapalı
Pingbacks Kapalı
Refbacks Kapalı


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından açılmaktadır.
Bu konular yönetimimiz tarafından takip edilsede gözden kaçabilen telif hakkı olan veya mahkeme kararı çıkmış konular sitemizde bulunabilir. Bu tür konuları bize turkhackteamiletisim [at] gmail.com adresine mail atarak bildirdiğiniz takdirde en kısa sürede konular hakkında gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com


Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz, bu sitelerin güvenlik açıklarını site sahibine bildirmek için çaba sarfeder.
Turkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Turkhackteam sorumlu değildir. Sitelerinize Turkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.




Powered by vBulletin® Copyright ©2000 - 2017

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı



Google Links
Bilgi Küpü

wau

Search Engine Friendly URLs by vBSEO 3.6.0 ©2011, Crawlability, Inc.