Не важно, как медленно ты продвигаешься, главное, что ты не останавливаешься.


Monday, 12 February 2018

Information Schema, Apa dan Kenapa?

Bagi sebagian orang mungkin sudah mengenal information schema, sebuah database yang ada pada MySQL. Sementara, sebagian orang lain seperti saya, ga tau apa itu information schema, dan apa kegunaannya untuk kita?. SQL Injection, meski teknik ini sudah lama ada, namun sampai saat ini masih banyak ditemukan celah melalui SQL injection. SQLMap salah satu tool yang populer untuk menjalankan SQL injection, mempermudah orang untuk melakukannya. Akan tetapi, menggunakan tool seperti ini, terkadang membuat orang malas untuk mengetahui, bagaimana SQL injection bekerja?. Maka dari itu, di artikel kali ini akan membahas tentang SQL Injection, terutama pada bagian Information Schema.

Sebelum melanjutkan, dapat membaca referensi dibawah ini:
Dari referensi diatas, terdapat cheatsheet SQL injection yang sering digunakan untuk MySQL.

SELECT schema_name FROM information_schema.schemata;
SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’
SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’
Dari beberapa query diatas, information_schema digunakan untuk melihat nama colum, nama database, dan nama table. Lalu apa sebenarnya isi dari information_schema?


INFORMATION_SCHEMA is a database within each MySQL instance, the place that stores information about all the other databases that the MySQL server maintains. The INFORMATION_SCHEMA database contains several read-only tables. They are actually views, not base tables, so there are no files associated with them, and you cannot set triggers on them. Also, there is no database directory with that name. 
INFORMATION_SCHEMA provides access to database metadata, information about the MySQL server such as the name of a database or table, the data type of a column, or access privileges. Other terms that are sometimes used for this information are data dictionary and system catalog. web resmi MySQL
Sudah cukup jelas dari penjelasan web resmi MySQL bahwa database information_schema berisi tentang database yang ada/telah dibuat di dalam MySQL, termasuk nama table dan field. Itulah mengapa disetiap cheatsheet yang ada di internet pasti menggunakan information_schema untuk mendapatkan informasi table dan field.

Mendapatkan semua nama database

SELECT schema_name FROM information_schema.schemata;

 
Field schema_name pada table schemata berisi nama database yang ada di dalam MySQL, baik yang dibuat sendiri maupun yang sudah ada secara default, seperti information_schema, dst. Jika dibandingkan, query diatas sama seperti 'show databases;' pada MySQL.


Mendapatkan table dan field

SELECT table_schema, table_name, column_name FROM information_schema.columns;
SELECT table_schema,table_name FROM information_schema.tables;

Ada 2 cara untuk mendapatkan nama table, dapat melalui table information_schema.tables, atau information_schema.columns. Perbedaannya adalah pada table information_schema.tables tidak terdapat nama column dari table yang ada. Sehingga penggunaannya disesuaikan dengan kebutuhan.

information_schema.tables

information_schema.columns





Query diatas berhasil menampilkan nama database, table, dan field, untuk mendapatkan hasil yang optimal, ditambahkan where clause untuk menyaring informasi yang diinginkan.


5 λ .: Information Schema, Apa dan Kenapa? Bagi sebagian orang mungkin sudah mengenal information schema, sebuah database yang ada pada MySQL. Sementara, sebagian orang lain seperti ...

No comments:

Post a comment

< >