SQL Injection: Kajian Makrifat

Kalimat Pembuka

Salam sejahtera bagi semesta. Pada artikel kali ini akan dibahas mengenai diskusi dasar tentang  SQL Injection dari kajian ilmu teknologi, komputer, dan jaringan. Kemudian bahasan dilanjutkan dari sisi kajian makrifat.

Penjelasan dalam artikel ini ,  dari sisi kajian komputer dan jaringan saya kutip dari para ahli tentang tema ini. Karena akan menjadi pengetahuan yang sempurna tentang sesuatu jika itu berasal dari mereka yang ahli. Penjelasan makrifatnya adalah dari hasil kajian saya pribadi.

Selamat membaca …

Apa itu  SQL Injection?

Dari Portswigger.net:

SQL Injection adalah kerentanan keamanan web yang memungkinkan penyerang mengganggu kueri yang dibuat aplikasi ke basis datanya. Secara umum memungkinkan penyerang untuk melihat data yang biasanya tidak dapat mereka ambil.

Ini mungkin termasuk data milik pengguna lain, atau data lain yang dapat diakses oleh aplikasi itu sendiri.

Dalam banyak kasus, penyerang dapat memodifikasi atau menghapus data ini, menyebabkan perubahan terus-menerus pada konten atau perilaku aplikasi.

Dalam beberapa situasi, penyerang dapat meningkatkan serangan  SQL Injection untuk mengkompromikan server yang mendasarinya atau infrastruktur back-end lainnya atau melakukan DDoS Attack.

Sumber:

https://portswigger.net/web-security/sql-injection

Mengenai DDoS dari sisi kajian makrifat telah saya bahas dalam artikel Makrifat DDoS Attack.

Dari Incapsula.com

SQL Injection, juga dikenal sebagai SQLi, adalah vektor serangan umum yang menggunakan kode SQL berbahaya untuk manipulasi database backend untuk mengakses informasi yang tidak dimaksudkan untuk ditampilkan.

Informasi ini dapat mencakup sejumlah item, termasuk data perusahaan yang sensitif, daftar pengguna atau detail pelanggan pribadi.

SQL Injection memiliki dampak yang sangat luas pada bisnis. Serangan yang berhasil dapat mengakibatkan tampilan daftar pengguna yang tidak sah, penghapusan seluruh tabel dan, dalam kasus tertentu, penyerang mendapatkan hak administratif ke database, yang semuanya sangat merugikan bisnis.

Saat menghitung potensi biaya SQLI, penting untuk mempertimbangkan hilangnya kepercayaan pelanggan jika informasi pribadi seperti nomor telepon, alamat, dan detail kartu kredit yang dicuri.

Meskipun vektor ini dapat digunakan untuk menyerang basis data SQL apapun, situs web adalah target yang paling sering.

https://www.incapsula.com/web-application-security/sql-injection.html

Dari Cloudflare.com

Structured Query Language (SQL *) Injection adalah teknik injeksi kode yang digunakan untuk mengubah atau mengambil data dari database SQL. Dengan memasukkan pernyataan SQL khusus ke dalam bidang entri, penyerang dapat mengeksekusi perintah yang memungkinkan pengambilan data dari database, penghancuran data sensitif, atau perilaku manipulatif lainnya.

Dengan eksekusi perintah SQL yang tepat, pengguna yang tidak sah dapat memalsukan identitas pengguna yang lebih istimewa, menjadikan diri mereka atau orang lain sebagai administrator basis data, merusak data yang ada, memodifikasi transaksi dan saldo, dan mengambil dan / atau menghancurkan semua data server.

Dalam komputasi modern, injeksi SQL biasanya terjadi melalui Internet dengan mengirimkan kueri SQL berbahaya ke titik akhir API yang disediakan oleh situs web atau layanan (lebih lanjut tentang ini nanti). Dalam bentuknya yang paling parah, injeksi SQL dapat memungkinkan penyerang untuk mendapatkan akses root Akses ke mesin, memberi mereka kontrol penuh.

Sumber:

https://www.cloudflare.com/learning/security/threats/sql-injection/

 

Bagaimana sebuah serangan injeksi SQL dilakukan?

Dari Acunetix.com

Untuk membuat serangan injeksi SQL, penyerang harus terlebih dahulu menemukan input pengguna yang rentan dalam aplikasi web atau aplikasi web. Aplikasi web atau aplikasi web yang memiliki kerentanan injeksi SQL menggunakan input pengguna semacam itu secara langsung di query SQL. Penyerang dapat membuat konten input.

Konten semacam itu sering disebut muatan berbahaya dan merupakan bagian penting dari serangan. Setelah penyerang mengirim konten ini, perintah SQL berbahaya dijalankan di database.

SQL adalah bahasa kueri yang dirancang untuk mengelola data yang tersimpan dalam database relasional. Anda dapat menggunakannya untuk mengakses, memodifikasi, dan menghapus data. Banyak aplikasi web dan situs web menyimpan semua data dalam database SQL.

Dalam beberapa kasus, Anda juga dapat menggunakan perintah SQL untuk menjalankan perintah sistem operasi. Oleh karena itu, serangan SQL Injection yang berhasil dapat memiliki konsekuensi yang sangat serius.

  • Penyerang dapat menggunakan SQL injection untuk menemukan kredensial pengguna lain dalam database. Mereka kemudian dapat menyamar sebagai pengguna ini. Pengguna yang ditiru dapat menjadi administrator basis data dengan semua hak istimewa basis data.
  • SQL memungkinkan Anda memilih dan mengeluarkan data dari database. Kerentanan SQL Injection dapat memungkinkan penyerang untuk mendapatkan akses lengkap ke semua data di server database.
  • SQL juga memungkinkan Anda mengubah data dalam database dan menambahkan data baru. Misalnya, dalam aplikasi keuangan, penyerang dapat menggunakan SQL Injection untuk mengubah saldo, membatalkan transaksi, atau mentransfer uang ke akun mereka.
  • Anda dapat menggunakan SQL untuk menghapus catatan dari database, bahkan menjatuhkan tabel. Bahkan jika administrator membuat backup database, penghapusan data dapat mempengaruhi ketersediaan aplikasi hingga database dipulihkan. Juga, cadangan mungkin tidak mencakup data terbaru.
  • Di beberapa server database, Anda dapat mengakses sistem operasi menggunakan server database. Ini mungkin disengaja atau tidak disengaja. Dalam kasus seperti itu, penyerang dapat menggunakan SQL Injection sebagai vektor awal dan kemudian menyerang jaringan internal di belakang firewall.

Sumber:

https://www.acunetix.com/websitesecurity/sql-injection/

Jenis SQL Injection

Dari Acunetix.com

SQL Injection dapat digunakan dalam berbagai cara untuk menyebabkan masalah serius. Dengan memanfaatkan SQL Injection, penyerang dapat mem-bypass otentikasi, mengakses, memodifikasi, dan menghapus data dalam database.

Dalam beberapa kasus, SQL Injection bahkan dapat digunakan untuk mengeksekusi perintah pada sistem operasi, berpotensi memungkinkan penyerang untuk meningkatkan serangan yang lebih merusak dalam jaringan yang berada di belakang firewall.

SQL Injection dapat diklasifikasikan ke dalam tiga kategori utama – SQLi In-band, SQLi Inferential, dan SQLi Out-of-band.

In band Sql Injection (Classic SQLi)

In-band SQL Injection adalah serangan SQL Injection yang paling umum dan mudah dieksploitasi. In-band SQL Injection terjadi ketika penyerang dapat menggunakan saluran komunikasi yang sama untuk meluncurkan serangan dan mengumpulkan hasil.

Dua tipe yang paling umum dari in-band SQL Injection adalah SQL berbasis Kesalahan dan SQL berbasis Union.

Error-based SQL Injection

Error-based SQL adalah teknik Injeksi SQL in-band yang mengandalkan pesan kesalahan yang dilemparkan oleh server database untuk memperoleh informasi tentang struktur database. Dalam beberapa kasus, injeksi SQL berbasis kesalahan saja sudah cukup bagi penyerang untuk menghitung seluruh database.

Sementara kesalahan sangat berguna selama fase pengembangan aplikasi web, kesalahan harus dinonaktifkan pada situs langsung atau masuk ke file dengan akses terbatas.

Union-based SQL Injection

Union-based SQLi adalah teknik injeksi SQL in-band yang memanfaatkan operator SQL UNION untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT menjadi satu hasil yang kemudian dikembalikan sebagai bagian dari respons HTTP.

 

Inferential SQL Injection (Blind SQL)

Inferential SQLi (Blind SQL)l, tidak seperti In-band SQLi (Classic SQLi), mungkin memerlukan waktu lebih lama bagi penyerang untuk mengeksploitasi, namun, sama berbahayanya dengan bentuk lain dari Injeksi SQL. Dalam serangan SQLi inferensial, tidak ada data yang benar-benar ditransfer melalui aplikasi web dan penyerang tidak akan dapat melihat hasil dari serangan di-band (itulah sebabnya serangan seperti itu biasanya disebut sebagai “serangan SQL Injection buta”) .

Sebaliknya, penyerang dapat merekonstruksi struktur basis data dengan mengirimkan muatan, mengamati respons aplikasi web dan perilaku yang dihasilkan dari server basis data.

Dua jenis SQL Injection inferensial adalah Blind-boolean-based SQLi dan Blind-time-based SQLi.

 

Blind-boolean-based SQLi

Blind-boolean-based SQLi adalah teknik Injeksi SQL inferensial yang mengandalkan pengiriman kueri SQL ke database yang memaksa aplikasi untuk mengembalikan hasil yang berbeda tergantung pada apakah kueri mengembalikan hasil yang BENAR atau SALAH.

Bergantung pada hasilnya, konten dalam respons HTTP akan berubah, atau tetap sama. Ini memungkinkan penyerang untuk menyimpulkan jika muatan yang digunakan kembali benar atau salah, meskipun tidak ada data dari database yang dikembalikan.

Serangan ini biasanya lambat (terutama pada basis data besar) karena penyerang perlu menghitung basis data, karakter demi karakter.

Time-based Blind SQLi

Time-based Blind SQLi adalah teknik Injeksi SQL inferensial yang bergantung pada pengiriman kueri SQL ke database yang memaksa database untuk menunggu sejumlah waktu tertentu (dalam detik) sebelum merespons.

Waktu respons akan menunjukkan kepada penyerang apakah hasil kueri itu BENAR atau SALAH.

Bergantung pada hasilnya, respons HTTP akan dikembalikan dengan penundaan atau segera dikembalikan. Ini memungkinkan penyerang untuk menyimpulkan jika muatan yang digunakan kembali benar atau salah, meskipun tidak ada data dari database yang dikembalikan. Serangan ini biasanya lambat (terutama pada basis data besar) karena penyerang perlu menghitung karakter basis data berdasarkan karakter.

 

Out-of-band SQLi

Out-of-band SQLi tidak terlalu umum, sebagian besar karena itu tergantung pada fitur yang diaktifkan pada server database yang digunakan oleh aplikasi web. Injeksi SQL out-of-band terjadi ketika penyerang tidak dapat menggunakan saluran yang sama untuk meluncurkan serangan dan mengumpulkan hasil.

Teknik out-of-band menawarkan penyerang alternatif untuk teknik berbasis waktu inferensial, terutama jika respons server tidak sangat stabil (membuat serangan berbasis waktu inferensial tidak dapat diandalkan).

Teknik SQLi out-of-band akan bergantung pada kemampuan server database untuk membuat permintaan DNS atau HTTP untuk mengirimkan data ke penyerang.

Seperti halnya dengan perintah xp_dirtree Microsoft SQL Server, yang dapat digunakan untuk membuat permintaan DNS ke server sebagai kontrol penyerang; serta paket UTL_HTTP dari Oracle Database, yang dapat digunakan untuk mengirim permintaan HTTP dari SQL dan PL / SQL ke server yang diserang oleh penyerang.

Sumber:

https://www.acunetix.com/websitesecurity/sql-injection2/

 

Risiko SQL Injection

Dari Kingfisherdata.com

Sebagian besar bisnis mengandalkan server berbasis SQL mereka untuk menjaga situs web mereka berjalan sebagaimana mestinya. Namun sayangnya, sistem basis data ini mungkin tidak terlindungi seperti yang Anda kira. Survei Small Business Trends baru-baru ini menemukan bahwa 26% bisnis mengalami serangan injeksi SQL pada tahun lalu.

Bahkan perusahaan besar seperti Yahoo rentan terhadap serangan semacam ini – dan mereka dapat memiliki konsekuensi yang sangat besar.

Itulah mengapa sangat penting untuk mengeksplorasi jenis-jenis keamanan basis data yang tersedia untuk Anda. Di bawah ini, kami akan menguraikan beberapa risiko yang Anda ambil dengan tidak memiliki keamanan basis data SQL yang memadai.

 

Kerahasiaan data Anda menjadi longgar

Keterjagaan rahasia, ini adalah perhatian utama bagi sebagian besar bisnis. Pengungkapan data dapat menghasilkan hasil yang menghancurkan, baik untuk pelanggan Anda dan bisnis Anda sendiri.

Dalam beberapa serangan yang paling dipublikasikan, penjahat dapat mengekspos nomor Jaminan Sosial, nomor kartu kredit, alamat email, kata sandi akun, atau informasi pribadi lainnya yang dapat dengan mudah menempatkan klien dalam risiko pencurian identitas, penipuan, dan banyak lagi.

 

Anda mungkin kehilangan izin administratif

Atau lebih tepatnya, para penjahat ini bisa mendapatkan izin administratif dan bahkan menyamar sebagai pengguna yang ada. Secara potensial, ini dapat menyebabkan Anda dan administrator lainnya terkunci dari sistem dan tidak dapat mendapatkan kembali kendali.

Ini adalah salah satu alasan mengapa ahli SQL Server adalah sumber daya yang tak ternilai: mereka akan tahu cara mengamankan database SQL Server Anda untuk memastikan hanya mereka yang dapat mengakses sistem Anda.

 

Anda kemungkinan akan kehilangan data penting

Meskipun teknologi dapat membantu kita dalam banyak hal, ketergantungan yang berlebihan pada sistem ini dapat mengakibatkan bencana jika Anda tidak menyimpan catatan cadangan.

Basis data Anda tidak hanya menyimpan informasi klien Anda tetapi juga angka-angka yang penting bagi operasi Anda. Jika data ini diubah atau dihapus, bisnis Anda mungkin harus membayar mahal.

Saldo bisa diubah atau transaksi bisa dihapus, membuat Anda harus mencari tahu jalan mana yang terbaik.

 

Bisnis Anda bisa gagal

Tanpa bantuan dari pakar SQL Server, banyak pemilik bisnis bahkan mungkin tidak menyadari gravitasi serangan injeksi.

Penyerang ini dapat mencuri daftar klien Anda, menggunakan informasi pribadi karyawan Anda untuk melawan mereka, atau memengaruhi sistem Anda dengan cara yang lebih halus yang hanya bisa dikenali oleh seorang profesional.

Terlepas dari taktik yang digunakan penyerang ini, hasilnya tetap sama untuk banyak bisnis: mereka akhirnya bangkrut. Jenis serangan ini dapat merusak reputasi bisnis, terutama jika mereka tidak segera mengungkapkan masalahnya.

Pelanggan akan dengan cepat kehilangan kesetiaan yang mereka miliki kepada perusahaan Anda jika Anda menempatkan mereka dalam risiko, dan bisnis Anda tidak mungkin bertahan tanpa klien.

Itu sebabnya bekerja dengan ahli SQL Server sejak awal sangat penting; Anda tidak hanya akan melindungi pelanggan Anda, tetapi Anda juga akan melindungi bisnis Anda.

Sumber:

https://kingfisherdata.com/sql-injection-risks-attack-compromise-business/

Kajian Dari Sisi Makrifat

Dalam tubuh manusia, web server saya ibaratkan ibarat otak atau fikiran atau brain, yang jika otak manusia sudah terkena teknik SQL injection maka sang hacker dapat dengan mudah mengakses data yang ada dalam otak manusia tersebut, kemudian isi dari otaknya itu bisa dikurangi, ditambahi, dimanipulasi, dicopy, bahkan dihapus, yang jika si manusia tidak ahli dalam mengelola otaknya maka secara tidak sadar lambat laun dia menjadi zombie yang dikendalikan sang hacker, dia tidak sadar bahwa isi otaknya itu adalah data hasil manipulasi yang dia yakini sebagai sebuah kebenaran sejati.

Kita pasti sering melihat kejadian bahwa ada manusia yang membantai manusia dengan kejamnya bahkan anak kecil hingga bayi sekalipun. Kemudian mereka meyakini bahwa apa yang mereka lakukan itu ada ejawantah dari sang kebenaran sejati. Sadar atau tidak sadar database mereka sudah diinject oleh sang cracker dan kemudian ditanam code yang memanipulasi atau bahkan mengganti setiap code fitrah yang ada. Sehingga code fitrah manusia sebagai ‘pengurus bumi yang ideal untuk mewujudkan alam yang penuh rahmah’ diinject kemudian dimanipulasi menjadi wujud manusia ‘penguasa yang harus menguasai setiap jengkal bumi dengan segala cara walaupun dengan pembantaian dan penghancuran’ .

Mereka yang database dirinya sudah diinject oleh sang cracker kadang lupa kepada orang tua, istri, anak, suami, saudara, sahabat. Apa lagi tetangga dan manusia lain, bukan lupa lagi tapi gak dianggap manusia. Sehingga sudah banyak terjadi ayah memerkosa anak, adik memerkosa kakak, kakak memerkosa adik, murid membunuh guru, guru mencabuli murid, skala kampung, saling memerangi antar kampung, level nasional saling berperang sesama anak bangsa, dan level global perang dunia.

Mereka yang database dirinya sudah dicrack dengan teknik SQL injection jika sudah level akut akan menjadi setengah zombie bahkan menjadi zombie penuh. Karena isi dari database dirinya adalah bukan dirinya lagi, tetapi code fitrah diri hasil manipulasi. Mereka akan dingin tanpa rasa, tanpa belas kasih, tanpa mikir, dan tanpa kemanusiaan itu sendiri.

Dan perlu diketahui SQL injenction bisa dilakukan dari jarak jauh bahkan sangat jauh sekalipun. Anda, anak Anda, Istri Anda, suami Anda, sahabat, keluarga, dan seterusnya. Siapapun yang pernah masuk ke Internet sangat beresiko terkena inject database diri.

 

Waspada Selalu

Siapapun dia yang pernah masuk dunia internet, apa lagi sampe pernah mengisi sebuah form, mengakses ruang suatu alamat domain, membuat password, dan yang sejenis Anda sadar atau tidak sadar sedang memberi akses kepada resiko untuk terkena inject, atau mungkin langsung berada dalam proses penginjeksian.

Walaupun dan sekalipun Anda menggunakan nama palsu, atau masking pake VPN. Dengan memasuki dunia internet Anda sedang leak data jasadi mengenai siapa Anda, dimana Anda tinggal, siapa saja keluarga Anda, siapa relasi bisnis Anda, dan apa saja kegiatan Anda, dan lain-lain. Anda telah mengekspos vulnerabilities pribadi manusiawi Anda.

Jika semua tentang Anda sudah diketahui melalui leak database diri jasadi, sang cracker dengan teknik SQL injection tinggal melanjutkan inject ke data rohani, jika database rohani telah dapat di inject, maka sang cracker akan dapat merubah Anda bahkan menguasai Anda. Sehingga Anda menjadi Zombie.

Awasilah selalu apakah kamu atau kalian atau Anda, keluarga, sahabat, dan orang terdekat sedang atau sudah terkena inject?

Sekian bahasan untuk kali ini. Terimakasih telah berkunjung. Jaga diri, keluarga, sahabat, orang terdekat, dan tetap waspada.

Cheeers ☕ … KLepus .. WhuUuZz

Facebook Comments
error: Content is protected !!