#Contoh SQL Injection dengan PHP dan MySQL
Explore tagged Tumblr posts
airman7com · 6 years ago
Text
PHP - SQL Injection
PHP – SQL Injection
Pada tutorial ini akan dibahas mengenai apa itu SQL injection, cara melakukannya dan cara pencegahannya. Meskipun dalam bab ini dijelaskan cara melakukan teknik ini, akan tetapi penulis bukan bertujuan untuk mendidik orang untuk menjadi penjahat dalam dunia virtual, melainkan memberikan pemahaman supaya orang yang membaca menjadi eling lan waspodo.
Apa itu SQL Injection?
SQL injection merupakan…
View On WordPress
0 notes
nisarifdah · 4 years ago
Text
SQL Injection - DVWA
Hello!
Tumblr media
Mungkin ketika mendengar kata ‘hacker’, yang terbesit adalah penjahat kriminal dalam konotasi negatif. Sebetulnya, hacker merupakan seseorang yang memiliki pengetahuan mengenai security dari suatu sistem komputer, sehingga ia bisa mencari celah keamanan dan menembus suatu sistem dengan memanfaatkan kelemahan dan celah tersebut. Tapi terkadang, hacking menjadi salah satu metode untuk mengecek apakah sistem milik kita sudah aman? Kalau hacker saja bisa menembus sistem tersebut, tandanya sistem kita belum cukup aman.
Saat ini banyak platform yang disediakan sebagai metode untuk mengetahui kelemahan suatu sistem. Dan pada post kali ini kita akan membahas sedikit dari DVWA.
Apa itu DVWA?
Dari web DVWA, Damn Vulnerable Web App adalah aplikasi web PHP/MySQL yang sangat rentan dengan tujuan utamanya adalah untuk menjadi bantuan bagi profesional keamanan untuk menguji keterampilan dan alat mereka di lingkungan hukum, membantu pengembang web lebih memahami proses mengamankan aplikasi web dan membantu guru/siswa untuk mengajar/mempelajari keamanan aplikasi web di lingkungan ruang kelas. Meskipun begitu, ilmu yang telah kita dapat setelah bermain dengan DVWA tentunya harus digunakan dengan bijak. Dan pada kesempatan ini juga kita akan belajar sedikit dari DVWA hanya untuk pengetahuan, bukan untuk berbuat kriminal.
So here we go!
Untuk menginstall DVWA ada beberapa cara. Namun untuk yang sudah terbiasa dengan penggunaan docker, bisa install dengan melihat cara disini: https://github.com/opsxcq/docker-vulnerable-dvwa
Setelah terinstall dan telah login, kita dapat memilih beberapa case yang tersedia dengan 3 tingkatan kesulitan mulai dari low, hingga high. Dan pada kesempatan kali ini, kita akan membahas SQL Injection dengan tingkat kesulitan low.
SQL INJECTION
SQL injection adalah teknik eksploitasi dengan cara memodifikasi perintah SQL pada form input aplikasi yang memungkinkan penyerang untuk dapat mengirimkan sintaks ke database aplikasi.
Ketika kita mengklik “SQL Injection”, halaman yang terlihat hanyalah berisi sebuah kotak di mana kita dapat memasukkan user ID. Seperti ketika kita memasukkan user ID 2, maka akan keluar output seperti ini:
Tumblr media
Mari kita ulas beberapa injection yang telah dilakukan.
Menampilkan seluruh user yang terdaftar. Dalam SQL, ketika kita memasukkan query 1=1 artinya kita mengeluarkan semua jawaban karena dianggap semuanya always true. Biasanya query yang digunakan adalah 1=1-- di mana ‘--’ digunakan sebagai comment. Namun hal itu tidak berhasil kalau kita menuliskan comment ‘--’. Tapi ketika kita ganti dengan ‘#’, maka akan muncul hasil seperti ini:
Tumblr media
Semua user ditampilkan! Dan seperti inilah contoh SQL injection. Namun yang kita lakukan belum termasuk tingkat kriminal karena query yang ditampilkan memang yang bisa ditampilkan. Mari lanjut ke injeksi kedua.
Menampilkan information_schema Input yang dimasukkan: x’ UNION SELECT table_name,null FROM information_schema.tables # Hasil: 
Tumblr media
Query ini bermaksud untuk menampilkan information_schema yang biasa bisa ditampilkan pada tabel SQL. Bukan sesuatu seperti injeksi sih, tetapi dengan ini kita bisa mengetahui struktur tabelnya dan bisa menjadi referensi injeksi lainnya. Dari struktur tabel ini kita bisa melihat dan menentukan informasi apa yang ingin kita gali. Biasanya password tidak bisa kita akses namun kali ini kita akan mencobanya karena main goal kita adalah melihat password setiap user.
Melihat table apa saja yang tersedia. Input:  : x’ UNION SELECT table_name,null FROM information_schema.tables WHERE table_schema=database #
Tumblr media
Dalam query, wajib menggunakan ‘#’ karena tanpanya kita tidak bisa mengakses hal tersebut. Ini akan kita ulas di akhir postingan karena hampir query yang kita masukkan menyertakan ‘#’ di akhirnya.
Query ini mengembalikan semua nama tabel yang ada di database. Kita bisa melihat ada tabel guestbook dan users. Mari kita lihat tabel users karena biasanya disitulah disimpan data password.
Menampilkan password Input: test' and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users # Hasil: 
Tumblr media
Ta-da! Baris paling bawah merupakan password masing-masing user yang telah dihash. Tentunya kita bisa mengetahui hashed password tersebut dengan meng-crack nya dengan sangat mudah. Salah satunya dengan menggunakan link https://crackstation.net/.
Kenapa kita bisa menginjeksi SQL tersebut? Seperti yang telah disebut sebelumnya, seluruh query milik kita selalu diakhiri dengan ‘#’. Hal ini karena input dari kita tidak divalidasi oleh SQL dan tidak ada pembatasan special character yang bisa dimasukkan. Coba ketika tidak diakhiri dengan ‘#’, maka akan muncul:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 1
Sehingga untuk pemilik web, perhatikan validasi input pengguna dan gunakan pembatasan special character, jangan sampai ada beberapa karakter yang lolos (seperti yang kita lakukan barusan). Dan kalau perlu, tambahkan security protocol yang lebih agar terhindari dari berbagai SQL Injection.
Yak, sekian pembahasan SQL Injection - Low kali ini. Terima kasih dan ditunggu masukannya!
Tumblr media
0 notes