Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Web Güvenlik Açıkları Nasıl Bulunur ?
#1
Uygulama hatalarını bulmanın en kolay yolları;



Mevcut sayfalarla oynamak,

Uygulamaya ait formlarla oynamak,

Headerlarla oynamak,

Çerezlerle oynamak,





Uygulamanın kaynak kodlarından faydalanma:

(Genel muhteva: çapraz site betiklenmesi (XSS) ve SQL enjeksiyonu)



En kolay ve en faydalı olan yoldur. Basit dediğime bakmayın oldukça uğraştırır aslında.Nedenine gelince bazen bu sistemlerin hangi uygulamaları kullandığını bulmak oldukça zordur ve şayet public bir uygulama değilse sözgelişi (PHPNuke,PostNuke gibi) bu metodu tecrübenizi önermem.



Kaynak kodunu ele geçirdiğiniz uygulamayı önce mahalli bir sunucudaki kendi sisteminize bu uygulamayı destekleyen bir sunucu kurmalısınız (PHP tabanlı uygulamalar için: PHPTriad,ApacheTriad gibi sunucu paketleri sizin için idealdir, ASP ve FrontPage tabanlı sistemler için PWS sizler için idealdir ve PWS Windows ile gelir) bu sunucuyu kurdukdan sonra uygulamayı sunucunuz üzerinde çalıştırın.



Sonra birebir bütün heryerini önce kurcalayın ve bir hata ile karşılaştığınızdaki bu uygulamada var olan açığın ilk adımını bulmuşsunuz demekdir ki,



Bu hata iletisi bazen debug output olarak karşınıza çıkarsa ve alttaki örnek gibiyse





Kod:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or' at line 1

1. satırdaki kodu inceleyin mevcut hatamız SQL konusunda gördüğünüz gibi burdaki işlevi ve mevcut SQL sorgusuna dikkat edin ve neler yapılabileceğinizi deneyin.



Bazen hata iletisi almasanızda bir acayiplik gözünüze çarpar örneğin uygulamamıza yerel sunucumuzdan şöyle ulaştığımızı düşünelim;





Kod:

http://localhost/research/xxxforum/read.php?id=2 or

Şayet read.php bize normalde ileti yazması şart olan yerde hiç birşey göstermediyse.

read.php dosyasını bir metin tertip edicisi yardımıyla örnek: notepad açın,sonra tek tek bütün kodları inceleyin bilhassa read.php'nin sunucudan "GET" metodu ile gelen sorgulara hangi işlev ile nasıl cevap verdiğine bakmalısınız.Şayet işlevde bir terslik gözünüze çarpar ise örnek bir hatalı işlev yazalım.





Kod:

function readip() {

@mysql_connect($uo_sqlhost, $uo_sqluser, $uo_sqlpass) or die("Cannot connect to SQL server");

@mysql_select_db($uo_sqlbase) or die("Cannot select database");

$uo_ip = $_GET['SIP'];

$uo_query = "SELECT lastvisit FROM users_online WHERE visitor = $uo_ip";

$uo_result = mysql_query($uo_query);

echo $uo_result;

}gördüğünüz gibi işlevde bir hatamız mevcut.



Kod:

$uo_query = "SELECT lastvisit FROM users_online WHERE visitor = $uo_ip";tam olarak düzenli yazılmamış bir SQL sorgusu bu sorguya GET metodu ile gelen SIP sorgusundaki bir dikkatsizlik sayesinde çok kolay bir şekilde SQL sorgusu enjekte edebiliriz.

Hem de uzaktan kod çalıştırma bile yapabiliriz.



Uygulamaları yazan kişiler genelde print (yazdırma) ve view (görüntüleme) sistemlerine ne yazikki dizayndan başka bir ehemmiyet vermezler ve genelde bütün izah eder bu sayfalarda çıkar.



Eğer uygulamanın kaynak kodlarına ulaşamazsanız, mevcut uygulamaya eriştiğiniz web sunucusundan en yukarda söz ettiğim metodları kullanarak az kafasını kurcalamaya çalışarak bir çok açık bulabilirsiniz.



Genelde büyük ve özel sunuculardaki izah eder böyle bulunmuştur. Bir çok büyük firmanın sistemine girdiğimde (BigFoot,ICQmail,NetZero,Superonline) bu tarz izah eder bulmuştum.



Çerezlerle oynamak:



Çerezler aslında HTTP requestte Cookie: headerıyla sunucuya yolladığımız ve sistemin bizi kolayca anımsamasını sağlayan değerler.Bu değerlerle ufak oynamalar yaparak kendimizi sistem adminiymiş gibi gösterebiliriz bu metodu artık çoğunuz biliyorsunuz.Fazla anlatmaya gerek yok=)



Referans değişimi (referer spoofing):



Aslında buda headerlar ile oynamak kapsamına girer ancak dikkatsiz programcılar hali hazırda bu daha önceki sistemi kullanmaktalar.Bir çoğunuz bu yolu ***** sitelere girerken çok kullanıyorsunuz.

Burdaki mantık sokete HTTP requesti yollarken sitemizi abudik.com varsayarsak





Kod:

GET admin.asp HTTP/1.1

Referer: http://www.abudik.com/login.aspŞekline ufak bir veri değişimi ile sistemin admin oturumuna girmemizi sağlar.



Satır atlattırma CRLF enjeksiyonu



Buda headerlarla oynamakdan geçer. Basit bir şekilde sokette headera \n\n karakterleri yazdırılır ve eğer sistem bu ufak oyunumuzu yutar ise istediğimiz headerı yazabilir, SQL enjeksiyondan , uzaktan kod çalıştırılmasına kadar bir çok şeyi yapabiliriz.


Bu yolların hepsi giderek tecrübe ederek öğrenilecek ve bir müddet sonra alışkanlık yapacak metotlar kendi metodlarınızı kullanarak bu metotları geliştirebilirsiniz.

search?biw=1242&bih=602&tbm=isch&q=atat%...ylXRQLIhM:
KttCYVvs.jpeg
Ara
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Hızlı ve Sınırsız Mail Nasıl Açılır İşte Cevabı leooo32 0 145 13-02-2018, Saat: 22:34
Son Yorum: leooo32
  Kendi İnternet Güvenliğimi Nasıl Sağlarım leooo32 0 183 19-12-2017, Saat: 20:27
Son Yorum: leooo32
  DDOS NEDİR ? VE DDOS SALDIRI NASIL YAPILIR ? leooo32 1 402 15-12-2017, Saat: 15:38
Son Yorum: kurkix
  Deep Web Nedir Nasıl Giriş Yapılır Deep Web Hakkında Herşey leooo32 0 245 12-12-2017, Saat: 01:43
Son Yorum: leooo32
  Key Logger Tespit Yöntemi ve Şifrelerimi Nasıl Koruyabilirim ? leooo32 0 252 30-11-2017, Saat: 13:06
Son Yorum: leooo32

Hızlı Menü: