soyluhack
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Exploit Dersi

Aşağa gitmek

Exploit Dersi Empty Exploit Dersi

Mesaj tarafından ufukkucukcavus C.tesi Mayıs 03, 2008 4:32 pm

Selam arkadaşlar. Bu başlık altında “Hacker Web Exploitation Uncovered” isimli kitaptan öğrendiğim web hacking tekniklerini sizlerle paylaşmayı düşünüyorum. Burada anlatacağım konuları anlayabilmeniz için temel düzeyde php bilgisine ve scriptleri kendi bilgisayarınızda test edebilmeniz amacıyla bir webserver’a ihtiyaç duyacaksınız. Ben kendi bilgisayarımda açık kaynak kodlu “Web-Developer Controller“ isimli programın 0.999’uncu beta versiyonunu kullanıyorum. Programın boyutu 40MB civarı. İçinde apache, mySQL ve php ile birlikte geliyor.

Programı indirme adresi : http://www.devside.net/server/webdeveloper

Kurulumu yaptıktan sonra programın masaüstündeki simgesine çift tıklatın. Apache2 ve MySQL servislerinin yanında “running” yazıyor olmasına dikkat edin. Eğer “stopped” yazıyorsa “Start Service” butonuna tıklayıp servisleri çalışır hale getirin. Daha sonra menüden “Information” seçeneğini seçip localhost’a tıklayın. Eğer “Index of” başlıklı bir sayfa ile karşılaşıyorsanız herşey yolunda demektir. Bu sayfa server’in default dizini olan c:\www\webroot\ klasörünün içeriğini gösterir. Bu klasörü açın ve “exploitation” isimli yeni bir klasör oluşturun. Bütün çalışmalarımız bu klasörün içinde bulunacak. Evet lafı uzatmadan birinci konumuza geçebiliriz.


Web Exploitation Ders 1 – Üst Dizindeki Dosyaların İçeriğini Görme

Notepad’ı açın ve aşağıdaki php kodunu yapıştırın.

Kod:


if(empty($HTTP_GET_VARS["id"])) //id diye bir şey gönderilmemişse form oluştur.
{
echo "

enter id (integer)


";
exit;
};


$id = $HTTP_GET_VARS["id"]; //id gönderilmişse buradan devam et
if(file_exists("data/".$id.".txt")) //böyle bir dosya var mı?
{
$f=fopen("data/".$id.".txt", "r"); //varsa okumak için aç
$s=fread($f, 1024);
echo $s; //içeriğini göster
fclose($f);
}

else
echo "records not found"; //yoksa bu mesajı göster
?>

Dosyayı c:\www\webroot\exploitation içine “1.php” olarak kaydedin. Daha sonra tarayıcıyı açıp http://localhost/exploitation/1.php‘e gidin. Gördüğünüz gibi bir textbox ve düğme.

İlk if kontrolünde “id” isimli form bilgisinin gönderilip gönderilmediği kontrol ediliyor. Böyle bir bilgi gönderilmemişse (empy fonksiyonu true gönderiyorsa) bir form oluşturuluyor ve geri kalan kod işleme konulmuyor (exit). Bu kontrolü yapmamızın nedeni sayfanın kendi kendine query göndermesi dolayısıyladır. Yani form ve script işlemleri için iki ayrı dosya kullanmak yerine olayı tek sayfada hallediyoruz.

Textbox içine 1 girin ve düğmeye basın. “records not found” gibi bir mesajla karşılaşacaksınız. Burada bizim için önemli olan kısım adres satırındaki url’dir. http://localhost/exploitation/1.php?id=1, id= den sonra bizim bir önceki sayfada girmiş olduğumuz bilgi görülmektedir. 2 yazarsan id=2, a yazarsan id=a görürsün. ? gibi bir şey girersen id=%3F görülür. Burada % kısmından sonraki ? karakterinin 16 bitlik Unicode kodudur. Niçin ? değil de %3F görüldü. Çünkü ?, /, &, =, : gibi karakterler url tanımlamada kullanılır. Bunlar query olarak gönderilirken karışıklık olmaması için % tanımlayıcısıyla beraber unicode kodu verilir.

Şimdi c:\www\webroot\exploitation dizinimize “test.txt” isimli bir dosya oluşturup içine birşeyler yazın. (mesela asdasd)

Adres satırına http://localhost/exploitation/1.php?id=..%2Ftestyazıp git’e tıklayın. Test.txt isimli dosyanın içeriğini göreceksiniz. Burada scriptte belirtilen data dizininin bir üstüne girmek için sorgulama, textbox içinde ../test tümcesi adres satırından ise ..%2Ftest şeklinde yapılabilir. %2F / karakterinin unicode kodudur.

Dikkat edilmesi gereken bir noktada test.txt yerine test kelimesi kullanılmıştır. Bunun sebebi php script’inde zaten açılacak dosyanın sonuna .txt uzantısı eklenecek olmasıdır...

bu yöntemle LFI(local file include) ile etc/passwd içeriğinide görebilirsiniz..

İlk olarak

Dosyayı \www\webroot\exploitation\1.php diyelim..

1.php?id=../../../etc/passwd

gibi. bir yöntemlede passwd dosyasını görüntüleyebilirsiniz..

ufukkucukcavus
Admin

Mesaj Sayısı : 780
Kayıt tarihi : 30/04/08
Yaş : 32
Nerden : Regedit

https://soyluhack.yetkin-forum.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz