A. SQL
Injection: Apa itu?
SQL Injection: Sebuah Penjelasan mendalam
Sebuah Contoh Sederhana
Lain isi:
Apa dampak dari SQL Injection?
Contoh Serangan SQL Injection
Bagaimana saya mencegah serangan SQL Injection?
Apakah database saya di risiko untuk SQL Injection?
Bahkan jika penyerang tidak dapat memodifikasi sistem, ia masih akan bisa membaca informasi berharga.
Apa dampak dari SQL Injection?
Contoh Attack SQLInjection
Berikut adalah contoh formulir dasar HTML dengan dua input, login dan password.
Cara termudah untuk login.asp untuk bekerja adalah dengan membangun sebuah query database yang terlihat seperti ini:
Jika variabel $ username dan $ password diminta langsung dari input pengguna, ini dengan mudah dapat dikompromikan. Misalkan kita memberikan "Joe" sebagai nama pengguna dan bahwa string berikut diberikan sebagai password: apa-apa 'ATAU' x '=' x
The = 'x' 'x' jaminan bagian untuk benar terlepas dari apa bagian pertama berisi.
Bagaimana saya mencegah serangan SQL Injection?
SQL Injection adalah salah satu mekanisme serangan
web yang digunakan oleh hacker untuk mencuri data dari organisasi. Ini
mungkin salah satu lapisan teknik yang paling umum menyerang aplikasi yang
digunakan saat ini. Ini adalah jenis serangan yang mengambil keuntungan dari
salah pengkodean aplikasi web Anda yang memungkinkan hacker untuk menyuntikkan
perintah SQL ke dalam mengatakan bentuk login untuk memungkinkan mereka untuk
mendapatkan akses ke data diadakan dalam database Anda.
Pada intinya, SQL Injection muncul karena bidang
yang tersedia untuk masukan pengguna SQL memungkinkan laporan untuk lulus
melalui dan query database secara langsung.
SQL Injection: Sebuah Penjelasan mendalam
Aplikasi Web memungkinkan pengunjung situs yang
sah untuk menyerahkan dan mengambil data ke / dari database melalui internet
menggunakan web browser pilihan mereka. Database
adalah pusat untuk situs web modern - mereka menyimpan data yang diperlukan
untuk situs web untuk memberikan konten khusus untuk pengunjung dan memberikan
informasi kepada pelanggan, pemasok, karyawan dan sejumlah stakeholder. Pengguna
identitasnya, informasi keuangan dan pembayaran, statistik perusahaan semua
mungkin penduduk dalam database dan diakses oleh pengguna yang sah melalui dari
rak-the-dan aplikasi web kustom.aplikasi web dan database memungkinkan Anda
untuk secara teratur menjalankan bisnis Anda.
SQL Injection merupakan teknik hacking yang
mencoba untuk melewati perintah SQL (pernyataan) melalui aplikasi web untuk eksekusi
oleh database backend. Jika tidak dibersihkan dengan benar, aplikasi web dapat
mengakibatkan serangan SQL Injection yang memungkinkan hacker untuk melihat
informasi dari database dan / atau bahkan menghapusnya.
Fitur tersebut sebagai halaman login, dukungan dan
bentuk permintaan produk, formulir tanggapan, halaman pencarian, shopping cart
dan pengiriman umum konten dinamis, bentuk situs web modern dan menyediakan
bisnis dengan sarana yang diperlukan untuk berkomunikasi dengan prospek dan
pelanggan. Fitur-fitur situs web adalah contoh aplikasi web yang
mungkin baik dibeli off-the-rak atau dikembangkan sebagai program dipesan lebih
dahulu.
Fitur-fitur situs web semua rentan terhadap
serangan SQL Injection yang timbul karena bidang yang tersedia untuk input SQL
memungkinkan pengguna laporan untuk lulus melalui dan query database secara
langsung.
Sebuah Contoh Sederhana
Ambil halaman login sederhana di mana pengguna
yang sah akan memasukkan username dan kombinasi sandi untuk memasuki wilayah
yang aman untuk melihat rincian pribadinya atau meng-upload komentar di forum.
Ketika pengguna yang sah menyampaikan detailnya,
sebuah query SQL dihasilkan dari rincian ini dan diserahkan ke database untuk
verifikasi. Jika valid, pengguna diijinkan akses. Dengan
kata lain, aplikasi web yang mengontrol halaman login akan berkomunikasi dengan
database melalui serangkaian perintah yang direncanakan sehingga untuk
memverifikasi username dan kombinasi sandi. Pada
verifikasi, pengguna yang sah diberikan akses yang tepat.
Melalui SQL Injection, hacker dapat memasukkan
perintah SQL dibuat khusus dengan maksud untuk melewati penghalang form login
dan melihat apa yang ada di belakangnya. Ini hanya
mungkin jika input tidak benar dibersihkan (yakni, membuat kebal) dan dikirim
langsung dengan query SQL untuk database. SQL
Injection kerentanan menyediakan sarana bagi seorang hacker untuk berkomunikasi
secara langsung ke database.
Teknologi yang rentan terhadap serangan ini adalah
bahasa script dinamis termasuk ASP, ASP.NET, PHP, JSP, dan CGI. Semua
penyerang perlu melakukan hacking serangan SQL Injection adalah web browser,
pengetahuan tentang query SQL dan bekerja menebak kreatif untuk tabel penting
dan nama field. Kesederhanaan semata SQL Injection telah memicu popularitasnya.
Lain isi:
Mengapa mungkin untuk lulus SQL Query ke database
walaupun hal ini tersembunyi di balik firewall?
Apakah database saya di risiko untuk SQL
Injection?Apa dampak dari SQL Injection?
Contoh Serangan SQL Injection
Bagaimana saya mencegah serangan SQL Injection?
Mengapa mungkin untuk lulus SQL query langsung ke
database yang tersembunyi di balik firewall dan setiap mekanisme keamanan
lainnya?
Firewall dan mekanisme deteksi intrusi serupa
memberikan pembelaan sedikit atau tidak terhadap skala penuh SQL Injection
serangan web.
Karena website anda harus publik, mekanisme
keamanan akan memungkinkan lalu lintas web publik untuk berkomunikasi dengan
aplikasi web / s (umumnya lebih port 80/443). Aplikasi
web yang memiliki akses terbuka untuk database untuk kembali (update) informasi
(diubah) diminta.
Dalam SQL Injection, hacker menggunakan query SQL
dan kreativitas untuk sampai ke database data perusahaan sensitif melalui
aplikasi web.
SQL atau Structured Query Language adalah bahasa
komputer yang memungkinkan Anda untuk menyimpan, memanipulasi, dan mengambil
data disimpan dalam database relasional (atau kumpulan tabel yang mengatur dan
data struktur). SQL ini, pada kenyataannya, satu-satunya cara bahwa
sebuah aplikasi web (dan pengguna) dapat berinteraksi dengan database. Contoh
database relasional termasuk Oracle, Microsoft Access, MS SQL Server, MySQL,
dan FileMaker Pro, yang kesemuanya menggunakan SQL sebagai blok bangunan dasar
mereka.
termasuk perintah SQL SELECT, INSERT, DELETE dan
DROP TABLE. DROP TABLE adalah sebagai kedengarannya tidak
menyenangkan dan bahkan akan menghilangkan tabel dengan nama tertentu.
Dalam skenario yang sah dari contoh halaman login
di atas, perintah SQL yang direncanakan untuk aplikasi web mungkin terlihat seperti
berikut:
SELECT count (*)DARI users_list_tableWHERE username = 'FIELD_USERNAME'DAN password = 'FIELD_PASSWORD "
Dalam bahasa Inggris, ini perintah SQL (dari
aplikasi web) menginstruksikan database untuk mencocokkan masukan username dan
password oleh pengguna yang sah untuk kombinasi ia telah disimpan.
Setiap jenis aplikasi web sulit dikodekan dengan
query SQL spesifik yang akan mengeksekusi ketika menjalankan fungsi yang sah
dan berkomunikasi dengan database. Jika kolom input dari aplikasi web tidak benar
dibersihkan, hacker mungkin menyuntikkan tambahan perintah SQL yang memperluas
jangkauan dari perintah SQL aplikasi web akan mengeksekusi, sehingga melampaui
desain dimaksudkan asli dan fungsi.
Seorang hacker dengan demikian akan memiliki saluran
komunikasi yang jelas (atau, dalam istilah awam, terowongan) ke database
terlepas dari semua sistem deteksi intrusi dan peralatan jaringan keamanan
dipasang sebelum database server fisik.
Apakah database saya di risiko untuk SQL Injection?
SQL Injection adalah salah satu lapisan aplikasi
yang paling umum menyerang saat ini sedang digunakan di Internet. Terlepas
dari kenyataan bahwa itu relatif mudah untuk melindungi terhadap SQL Injection,
ada sejumlah besar aplikasi web yang masih rentan.
Menurut Keamanan Aplikasi Web Consortium (WASC) 9%
dari total insiden hacking dilaporkan dalam media sampai 27 Juli 2006 adalah
karena SQL Injection. Data yang lebih baru dari penelitian kita sendiri
menunjukkan bahwa sekitar 50% dari website kami telah discan tahun ini rentan
terhadap kerentanan SQL Injection.
Mungkin sulit untuk menjawab pertanyaan apakah
situs web dan aplikasi web Anda rentan terhadap SQL Injection terutama jika
Anda tidak programmer atau anda bukan orang yang memiliki kode aplikasi web
Anda.
Pengalaman kami membuat kita percaya bahwa ada
kemungkinan besar bahwa data anda sudah resiko dari SQL Injection.
Apakah penyerang dapat melihat data yang tersimpan
pada database atau tidak, benar-benar tergantung pada bagaimana website Anda
adalah kode untuk menampilkan hasil query yang dikirim. Yang
pasti adalah bahwa penyerang akan dapat menjalankan Perintah SQL
sewenang-wenang pada sistem rentan, baik untuk berkompromi atau lain untuk
mendapatkan informasi. Jika benar kode, maka Anda berisiko memiliki pelanggan
Anda dan data perusahaan dikompromikan. Apa keuntungan akses penyerang juga tergantung
pada tingkat keamanan yang diatur oleh database. Database
dapat diatur untuk membatasi perintah tertentu saja.Sebuah akses baca biasanya
diaktifkan untuk digunakan oleh aplikasi web kembali berakhir.
Bahkan jika penyerang tidak dapat memodifikasi sistem, ia masih akan bisa membaca informasi berharga.
Apa dampak dari SQL Injection?
Setelah penyerang menyadari bahwa sistem rentan
terhadap SQL Injection, ia mampu menyuntikkan SQL Query / Perintah melalui
masukan formulir. Ini setara dengan menyerahkan penyerang database dan
memungkinkan dia untuk mengeksekusi perintah SQL termasuk DROP TABLE ke
database!
Seorang penyerang dapat melakukan laporan
sewenang-wenang SQL pada sistem yang rentan. Hal ini
dapat membahayakan integritas dari database Anda dan / atau mengungkapkan
informasi sensitif. Tergantung pada database back-end digunakan, kerentanan
SQL injection mengakibatkan berbagai tingkat data / sistem akses bagi penyerang. Dimungkinkan
untuk memanipulasi query yang ada, untuk UNION (digunakan untuk memilih
informasi terkait dari dua tabel) data sewenang-wenang, menggunakan subselects,
atau menambahkan pertanyaan tambahan.
Dalam beberapa kasus, dimungkinkan untuk membaca
atau menulis ke file, atau untuk menjalankan perintah shell pada sistem operasi
yang mendasarinya. SQL Server tertentu seperti Microsoft SQL Server
mengandung disimpan dan diperpanjang prosedur (fungsi database server). Jika
penyerang bisa mendapatkan akses ke prosedur, bisa mengeja bencana.
Sayangnya dampak dari SQL Injection hanya
ditemukan saat pencurian ditemukan.Data sedang tanpa disadari dicuri melalui
berbagai serangan hack sepanjang waktu.Para ahli lebih dari hacker jarang
tertangkap.
Contoh Attack SQLInjection
Berikut adalah contoh formulir dasar HTML dengan dua input, login dan password.
<form method="post" action="http://testasp.vulnweb.com/login.asp"><input name="tfUName" type="text" id="tfUName"><input name="tfUPass" type="password" id="tfUPass"></ Form>
Cara termudah untuk login.asp untuk bekerja adalah dengan membangun sebuah query database yang terlihat seperti ini:
SELECT idDARI loginWHERE username = '$ username'DAN password = '$ password'
Jika variabel $ username dan $ password diminta langsung dari input pengguna, ini dengan mudah dapat dikompromikan. Misalkan kita memberikan "Joe" sebagai nama pengguna dan bahwa string berikut diberikan sebagai password: apa-apa 'ATAU' x '=' x
SELECT idDARI loginWHERE username = 'Joe'DAN password 'sesuatu' = OR 'x' = 'x'
Sebagai masukan dari aplikasi web yang tidak benar
dibersihkan, penggunaan tanda kutip tunggal telah mengubah WHERE SQL perintah
ke klausul dua komponen.
The = 'x' 'x' jaminan bagian untuk benar terlepas dari apa bagian pertama berisi.
Hal ini akan memungkinkan penyerang untuk melewati
form login tanpa benar-benar mengetahui username yang valid / kombinasi
password!
Bagaimana saya mencegah serangan SQL Injection?
Firewall dan mekanisme deteksi intrusi serupa sedikit
memberi pertahanan terhadap serangan web skala penuh. Karena
website anda harus publik, mekanisme keamanan akan memungkinkan lalu lintas web
publik untuk berkomunikasi dengan database server Anda melalui aplikasi web. Bukankah ini apa yang mereka telah dirancang untuk
lakukan?
Patching server Anda, database, bahasa
pemrograman dan sistem operasi adalah penting tapi akan sama sekali tidak cara
terbaik untuk mencegah serangan SQL Injection.
Tidak ada komentar:
Posting Komentar