|
Http Protokolü, spoofing vs.
Jul 23,2007 00:00
by
canawar
Öncelikle bazı şeyleri belirtip, kısa ve önemli bilgiler verdikten sonra dökümana giriş yapıcam. Bu dökümanda başlangıç düzeyindeki kullanıcılar için minumum teknik kelimeler ile en basit şekilde bir anlatım, ileri düzey kullanıcılar için en kritik noktalarda püf noktalar ve fikirler vermeye özen gösterdim. Bu dökümanı okuyan kullanıcılar;
Giriş... Bu konu üzerinde çalışırken ilk bulduğum sonuçlarla bir döküman hazırlamak istedim. Ancak hangi fikir ve düşünceler içerisinde bu olayları yaşadığımı yazmanın daha doğru olacağını anladım. Bu şekilde hem kullanıcıların daha iyi anlamasını hemde benzer konularda dökümanı okuyan kullanıcılara yol göstermeyi hedefledim. Konunun aslında çok geniş olması nedeni ve bazı konuları daha çok araştırma gereği duyduğum için bu türde olayları 4-5 dökümana bölemeye uygun gördüm. Vakit ve yeni bilgiler edindikçe bu konularda dökümanlar yazmaya devam etmeyi düşünüyorum. Kullanıcılara anlatmanın çok büyük yararları olacağını düşündüğüm bazı suç teşkil edecek konularda ise, sadece ufak tüyolar ve bilgiler vermeyi uygun gördüm. Zira özellikle ülkemizde benzer konuların savunma geliştirmek yerine saldırı geliştirmek olarak kullanılması bunun en büyük göstergesidir. Tüm bunlara rağmen zaten dökümanı okuyup gerekli bilgileri iyice anlayan ve araştırma yapan kullanıcıların o bilgilere ihtiyacı olmıyacaktır. Bu dökümanın yazılmasına neden olan olayların başlaması... Tesadüf ve İlk Düşünceler... Dökümanın oluşmasından kısa bir süre önce üzerinde çalıştığım bir kod yüzünden, php deki header fonksiyonu üzerinde çalışmaya başladım. Amacım php de bir kod yazarak kullanıcıya download etmesi için bir dosya göndermekti. Bu php ile ilgili kişilerin çok iyi bildiği bir konudur. O kadar uğraşmama rağmen yapamamıştım daha doğrusu olmuyordu. Olmuyordu dedim çünkü kullandığım browserda bir sorun varmış... Tabi ben bunu anladığımda gerekli gereksiz bir çok kod üzerinde denemeler yapmıştım. Her neyse, yaptığım araştırmalarda hep ortak bir kod vardı.
Tabi 1 saat boyunca aynı kodlar üzerinde değişiklikler yapıp başaramayınca insan bu kodları merak ediyor... Sonra header fonksiyonu içinde yer alan bilgilere baktım, Content-type: application/zip < bu bilgiyide CSL projemden biliyordum. Browserınızın ekranına çıkacak bilginin tipini belirleyerek, browserın ona göre davranması gerektiğini söylüyordu. Bunlar HTTP Protokolu 'nun komutlarıydı. Bunun üzerine bende daha başka komutları öğrenmek için bu protokole ait bilgilerin olduğu sayfaya gittim... Hypertext Transfer Protocol -- HTTP/1.1 < Kaynak Uzun , uzun bu kaynak üzerinde araştırmalar yaptıktan sonra, aslında HTTP ye ne kadar uzak olduğumu gördüm... Öyleki 40 dakika içinde; günde 15 saat ve bunun 10 saatini HTTP protokolunu kullanarak geçiren biri olarak, yüzlerce yeni şey öğrendim. İlk Spoofing ( Bilgileri değiştirme ) düşünceleri... Hep kullandığım ama fazla teknik bilgiye sahip olmadığım HTTP Protokolu ile ilgili sayfada başlıkları incelerken aşağılarda gözüme Referer takıldı. Çünkü bazen araştırmalar yapmak için php nin getenv("http_referer"); komutunu kullanarak kullanıcıların sayfama nerelerden geldiğine bakarım. Http Referer bilgisi ile kullanıcının o anki sayfaya hangi linkten geldiğini görebilirsiniz. Sonra orada bir örnek gördüm, ama orada yazıldığı gibi değil. Aklımla gördüğüm ve aşağıda yazdığım gibi...
Şeklinde bir çıktı gelmişti. O an çok üzüldüğümü sölemem lazım, zira bu fikrin çalışacağını sanmıştım... Not : Bu kodları hemen çalıştırmayın, önce öğrenin yeri geldikçe beraberce denemeler yapıcaz zaten. Eğer dökümandaki adımları dikkatlice ve sırasına göre takip etmesseniz konuya tam hakim olamassınız. Http protokolu ile, sunucuya bilgi gönderme ve alma. Sunucu hakkında bilgi edinme... Not : Bu noktadan sonra php kodları hakkında temel bilgilere sahip olunması tavsiye edilmektedir. Çünkü konu dışı olacağı düşünülerek bazı php komutları çok kısaca anlatılmıştır.
Bu kodları bir dosya şeklinde kaydedip localhost ( yani kendi web sunucunuz üzerinde ) çalıştırdığını zaman, aşağıdaki gibi bir çıktı alırsınız.
İşte bu noktadan sonra iyice heveslenmiştim, zira artık çok basit bir yöntem ile bağlandığım sunucunun bilgilerini alabiliyordum. Ama bu sadece bir başlangıçtı. Mesala çoğu zaman PHP konusundaki yeni haberleri aldığım www.php.org.tr sitesine bağlanıp ona ait işletim sistemi bilgilerini almayı düşündüm ve hemen kodlarımdaki 2 bilgiyi değiştirerek bu bilgilere ulaşdım. ( Değiştirdiğim bölümler koyu renkte/bold olan yazılardır. )
O anda nereden nereye diye düşündüm, üstelik hala referer bilgisi kafamda ve beni rahatsız ediyordu, bende bunun üzerinde local web serverım üzerinde bir deneme yapmayı düşündüm. Aşağıdaki 2 ayrı kodu yazdım. İlk başta referer, yani bir kullanıcının bulunduğu sayfaya hangi linkten geldiğini gösteren bir php kodu yazdım.
Şimdi biz bu bilgiyi spoof edecez. Yani istediğimiz şekilde değiştiricez... Aşağıdaki kodları herhangi bir adla ( ör : spofref.php ) kaydedip ( Az önce size sölediğim kodu yani bilgi.php olarak kaydediceğiniz dosyayı unutmadınız umarım. :) bilgi.php dosyasının http://localhost adresini girdiğinizde listelenen ve ana klasörde yer alan bir dosya olması gerekmetedir. Eğer bu denemeyi başka özel bir klasörde yapıyorsanız, ilk satırda daha önce söylediğim gibi GET /bilgi.php HTTP/1.0rn bilgisini değiştirin. ) çalıştırın.
Bu kodların çıktısı ise aşağıdaki gibi oluyor. Nerden nereye? Fakat bu kadar basit görünen bir şey için bu kadar uğraşmak ne kadar doğru diye sordum kendime? :) Ben bu kadar basit bir şeyin öğrenilmesinin faydalarını aklımla hayal ederken bile zevk alıyorum... Not1 : Buraya kadar anlayamadığınız noktalar varsa kısa bir tekrar yapmanızda yarar görüyorum. Eğer mantığı anladıysanız fakat bazı teknik terimlerde zorlanıyorsanız, o terimler hakkında arama motorlarını kullanarak basit bilgiler edinmeye çalışın. Zira bu bölümden sonra artık konu daha anlaşılır olacağından bu noktaya kadar anladıklarınızın size çok büyük yardımları olacaktır. Not2 : Not1 ' deki uyarımı tekrar ve yavaşça okuyun ve biraz dinlenin. Zira şuanda başlangıç seviyesinde olun, ileri seviyede olun yorulmuş olduğunuzu biliyorum :) Siz dinlenirken bende bu arada dökümanı nereden bölmem gerektiğine karar veriyim :) Dinlendiğinizi umut edip şuana kadar öğrendiklerinizle neler olabileceğini anlatarak sizi biraz mutlu etmenin iyi olacağını düşündüm. Bazı düşüncelerim her nekadar illegal görünsede beni tanıyan kişiler bu şekilde davranmadıklarımı iyi bilirler. Bunları öğrendimde başım göğemi erdi? Neler yapabilirim bu bilgilerle... Şimdi...... 1 - Bazı siteler örneğin ; ücretsiz sms hizmeti veren, mp3 yayını yapan veya çok genel bir şekilde görünen bazı dosyaların download edilmesi için bir seri form koyan sitelerde Referer bilgisini değiştirerek kendi sitenizle o site arasında direk bir link ile bu servislere kolayca ulaşım sağlayabilirsiniz. 2 - Aslında bunu anlatmak ne kadar doğru olacak bilemiyorum ama, bilindiği gibi net üzerindeki sayfalarda en çok rastlanan olaylardan biri toplist ve reklam bannerlarıdır. Örneğin siz sayfanızdaki toplist kodları yerine basit bir fonksiyon ile referer bilgisini kullanarak sitenize ait ziyaretçi sayısını yada reklam bannerına olan tıklama sayısını arttırabilirsiniz. Normalde toplist gibi siteler siteye giren kullanıcıların ip numaralarını yada cookie bilgilerini kontrol eder. Tabi bu sorunu aşmak içinde yapabilecekleriniz var. 3. maddede söliyeceklerim ile bu konu arasında yeterli mantığı kurarsanız demek istediğimi anlıyacaksınız. 3 - Web sayfalarını dolaşırken kullandığınız dosyaların geçici olarak koyulduğu Temporary Internet Files dizinindeki tüm dosyaları temizleyin. Daha sonra az önce anlattığım www.php.org.tr sitesinin bilgilerini aldığımız örnek dosyayı çalıştırın, ve tekrar Temporary Internet Files dizinine bakın. O da ne????? Hiç bir dosya yok! :) Gördüğünüz gibi bu kod sayesinde sisteminize dosya almadan istediğiniz bir web sayfasını açabiliyorsunuz... :) Bu kodu bir proxy kullanarak tekrar oluşturduğunuzda yapabileceklerinizi düşünün... Browser, İstemci Dili vs. gibi bilgilerin değiştirilmesi... Şimdi öncelikle aşağıdaki kodları bilgi.php adıyla daha önce ki dosyanın üzerine kaydedin.
Yukarıdaki kodlar php deki fonksiyonlar yardımı ile , sayfaya bağlanan kullanıcının Browserını, İstemci dilini, İstemci Ip sini ve az önce öğrendiğimiz referer bilgisini gösteren bir koddur. Bu kodları bilgi.php adıyla ana web klasörüne kaydedip çalıştırdığımız zaman, aşağıdaki çıktıyı alırız. ( Ben benim bilgilerimi , siz sizin bilgilerinizi alırsınız. )
Son sözler, tavsiyeler vs. Dökümanı buraya kadar okuyupta bir şeyler anlayan, başaran ve anlamak için çaba sarfeden herkesi kutlamak istiyorum. Aslında bu hikaye burada bitmiyor, ama her zaman inandığım bir şey; nedenleri öğrenmeden sonuçları öğretme! Bunun sonucunda benim bile hala çözemediğim bazı olaylarda iyice araştırma yapmam gerektiğine inanıyorum. Bu konularda şuan gerekli çalışmaları yapıyorum bu çalışmaların bitimi ile sizlere bu konu üzerinde çok daha ciddi konularda dökümanlar hazırlmaya devam edicem. Size tavsiyem Hypertext Transfer Protocol -- HTTP/1.1 bu adres üzerinde iyice kafa yormanız. Bu dökümanda anlatılan illegal olaylar için her zaman tekrarladığım bir şey sölemek istiyorum, "Hiç kimse hacker değildir. Açıklar zaten her zaman vardır, sadece birinin onu bulmasını beklerler. Bu da olsa olsa " Finder " olur... " Tarih : 05-Temmuz-2002 |