Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Online Compilerlar ve Tehlike!

Selamlar,

Bugün online olarak çeşitli programlama dillerinde ürettiğimiz kodları derleyip çalıştırmamıza yarayan sitelerin aslında çoğunun ne kadar tehlikeli olduğunu göstermek istiyorum.

Öncelikle kısa ve öz bir yazı olacak. O yüzden şimdiden özür diliyorum 🙂

Şimdi, compiler nedir v.s gibi konulara bi açıklık getirelim önce.

Compiler nedir ?

Compile, kelime anlamı olarak derlemek olarak geçer haliyle ‘compiler’da derleyicidir. Bunlar ne iş yapar? Compilerlar yazdığınız kodları okunup çalıştırılabilir hale getiren programlardır. Bunlara örnek vermek gerekirse, gcc, Code::Blocks, phpStorm en çok bilinen örnekleridir diyebiliriz ( en azından bence + olarak IDElerde compile işlemi yaptığı için bir tuttum PHPciler affetsin gayrı.. ).

Online compilerlar ise tamamen verdiğiniz kodu online olarak derleyip çalıştıran web siteleridir. İşte problem de tam olarak burada başlıyor.

Örnek vermek gerekirse PHP’deki system, eval, passthru, exec, shell_exec – C’de yine system gibi komutları engellemeyen siteler üzerinde rahatlıkla komut çalıştırılabiliyor.

Buna örnek bir kod yazalım hemen C ile :

#include <stdio.h>

int main(void) {

    printf("canyoupwnme / f0r! \n");
    system("ls -la /var/www/html");

    return 0;
}

 

Yukarıda yazmış olduğumuz kod betiği ‘system’ fonksiyonunu kapamamış onlarca online compiler sitesi üzerinde bize /var/www/html dizininin içerisini ‘ls -la’ komutu ile listeleyecektir.

Bunun dışında, PHP ile ufak bir örnek yapalım hemen:

<?php

passthru("ls -la /var/www/html");

?>

 

Yukarda yazdığımız PHP koduda ilk yazdığımız C kodu ile aynı işi yapacaktır.

Şimdi birkaç ekran görüntüsü ile bunları sizlere göstermek istiyorum.

canyou1

Yukarıdaki sitede sizlere göstermiş olduğum PHP kodunu online olarak derleyip çalıştırdım ve ekran görüntüsünde olduğu gibi rahatlıkla /var/www/html klasörünün içerisini görmeyi başardım.

Bir başka site üzerinde C dili ile yazdığımız kodu deneyelim.

canyou2

Evet sitede tekrar  /var/www/html dizinini listelemeyi denedim ancak, /var/www/html diye bir dizin olmadığı hatasını verdi bende sadece olduğum dizini listelemek adına ‘ls -la’ komutunu verdim. Sonucu yukarıda görebilirsiniz.

Aşağıdaki örnekte mkdir canyoupwnme komutu ile ‘canyoupwnme’ adında bir directory oluşturmaya çalıştım ancak bana permission denied hatası verdi ve oluşturamadım.

canyou3

 

Online compiler sitelerinde bu şekilde ufak bir zafiyet bulunmakta ve bunu burda küçük bi ipucu olarak göstermek istedim.

Çoğu sitede wget,curl v.s gibi komutlar maalesef ki bulunmamakta.

 

Okuduğunuz için teşekkürler, bir sonraki yazıda görüşmek üzere!

About CanYouPwnMe

Hero!

Follow Me