Kamis, 06 Mei 2010

SQL Injection

print this page Print this page

 hacked viewSQL Injection adalah salah satu mekanisme serangan web yang digunakan oleh hacker untuk mencuri data dari organisasi. Hal ini mungkin salah satu lapisan teknik yang paling umum menyerang aplikasi yang digunakan hari ini. Ini adalah jenis serangan yang mengambil keuntungan dari salah pengkodean aplikasi web yang memungkinkan hacker untuk menyuntikkan perintah SQL ke dalam mengatakan bentuk login untuk memungkinkan mereka untuk mendapatkan akses ke data yang tersimpan dalam database Anda.
Pada dasarnya, SQL Injection terjadi karena bidang yang tersedia untuk input memungkinkan pengguna pernyataan SQL melewati dan query database secara langsung.


SQL Injection: Sebuah Penjelasan mendalam
Aplikasi Web memungkinkan pengunjung situs yang sah untuk mengirimkan dan mengambil data ke / dari database melalui Internet dengan menggunakan browser web yang mereka sukai. Database adalah pusat untuk situs modern - mereka menyimpan data yang diperlukan untuk situs web untuk menyampaikan konten khusus bagi 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 rak-the-web dan aplikasi kustom. aplikasi web dan database memungkinkan Anda untuk secara teratur menjalankan bisnis Anda.
SQL Injection merupakan teknik hacking yang mencoba untuk melewati perintah SQL (laporan) melalui aplikasi web untuk dieksekusi oleh database backend. Jika tidak dibersihkan dengan benar, aplikasi web dapat menyebabkan serangan SQL Injection yang memungkinkan hacker untuk melihat informasi dari database dan / atau bahkan menghapus it out.
fitur tersebut sebagai halaman login, dukungan dan bentuk permintaan produk, formulir umpan balik, halaman pencarian, shopping cart dan pengiriman umum konten dinamis, bentuk situs web modern dan menyediakan bisnis dengan sarana yang diperlukan untuk berkomunikasi dengan calon pelanggan dan pelanggan. Fitur-fitur situs merupakan contoh aplikasi web yang dapat dibeli baik off-the-shelf atau dikembangkan sebagai program dipesan lebih dahulu.
Fitur-fitur situs semua rentan terhadap serangan SQL Injection yang timbul karena bidang yang tersedia untuk input memungkinkan pengguna pernyataan SQL melewati dan query database secara langsung.
SQL Injection: Sebuah Contoh Wikipedia
Ambil sebuah halaman login yang sederhana di mana pengguna yang sah akan memasukkan username dan password untuk masuk kombinasi daerah yang aman untuk melihat rincian pribadinya atau meng-upload komentar di forum.
Ketika pengguna yang sah mengajukan rincian-nya, sebuah query SQL yang dihasilkan dari detail dan diserahkan ke database untuk verifikasi. Jika valid, user diperbolehkan akses. Dengan kata lain, aplikasi web yang mengontrol halaman login akan berkomunikasi dengan database melalui serangkaian perintah yang direncanakan untuk memverifikasi username dan password kombinasi. Pada verifikasi, sah pengguna diberikan akses yang sesuai.
Melalui SQL Injection, hacker dapat input khusus dibuat perintah SQL dengan maksud melewati penghalang berupa login dan melihat apa yang ada di belakangnya. Ini hanya mungkin jika input tidak benar dibersihkan (yaitu, membuat kebal) dan dikirim langsung dengan query SQL ke database. SQL Injection kerentanan menyediakan sarana bagi 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 kebutuhan untuk melakukan hacking serangan SQL Injection adalah sebuah browser web, pengetahuan tentang query SQL dan pekerjaan menebak kreatif untuk tabel penting dan nama field. Kesederhanaan belaka dari SQL Injection telah memicu popularitas.
Lain isi:
Mengapa mungkin untuk lulus SQL Query ke database meskipun hal ini tersembunyi di balik firewall?
Apakah database saya di risiko untuk SQL Injection?
Apa dampak dari SQL Injection?
Contoh dari SQL Injection Attack
Bagaimana saya mencegah serangan SQL Injection?
Mengapa mungkin untuk melewati SQL query langsung ke database yang tersembunyi di balik firewall dan mekanisme keamanan lain?
Firewall dan mekanisme deteksi intrusi serupa menyediakan pertahanan sedikit atau tidak terhadap skala penuh SQL Injection serangan web.
Sejak situs Web Anda harus publik, mekanisme keamanan akan mengizinkan lalu lintas web publik untuk berkomunikasi dengan aplikasi web Anda / s (umumnya lebih dari port 80/443). Aplikasi web memiliki akses terbuka untuk database untuk kembali (update) itu (yang diminta diubah) informasi.
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 yang tersimpan dalam database relasional (atau koleksi tabel yang mengatur dan struktur data). SQL, sebenarnya, 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, semua yang menggunakan SQL sebagai blok bangunan dasar mereka.
termasuk perintah SQL SELECT, INSERT, DELETE dan DROP TABLE. DROP TABLE adalah sebagai menyenangkan karena suara dan pada kenyataannya akan menghilangkan tabel dengan nama tertentu.
Dalam skenario yang sah dari contoh halaman login di atas, perintah SQL yang direncanakan untuk aplikasi web mungkin tampak seperti berikut:
SELECT count (*)
DARI users_list_table
WHERE username = 'FIELD_USERNAME'
DAN password = 'FIELD_PASSWORD "
Dalam bahasa Inggris, ini perintah SQL (dari aplikasi web) menginstruksikan database untuk mencocokkan username dan password masukan oleh pengguna yang sah untuk kombinasi itu sudah disimpan.
Setiap jenis aplikasi web sulit dikodekan dengan query SQL spesifik yang akan mengeksekusi ketika fungsi melakukan yang sah dan berkomunikasi dengan database. Jika ada field input dari aplikasi web tidak benar dibersihkan, hacker dapat menyuntikkan perintah SQL tambahan yang memperluas jangkauan dari SQL perintah akan menjalankan aplikasi web, sehingga melampaui desain dimaksudkan asli dan fungsi.
Seorang hacker sehingga akan memiliki saluran komunikasi yang jelas (atau, dalam istilah awam, terowongan) untuk database terlepas dari semua sistem deteksi intrusi dan peralatan jaringan keamanan diinstal sebelum database server fisik.
Apakah database saya di risiko untuk SQL Injection?
SQL Injection adalah salah satu layer aplikasi serangan yang paling umum saat ini digunakan di Internet. Walaupun kenyataan bahwa secara relatif mudah untuk melindungi terhadap SQL Injection, ada sejumlah besar aplikasi web yang tetap rentan.
Menurut Keamanan Aplikasi Web Consortium (WASC) 9% dari total insiden hacking dilaporkan di 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 SQL Injection kerentanan.
Mungkin sulit untuk menjawab pertanyaan apakah situs web dan aplikasi web yang rentan terhadap SQL Injection terutama jika Anda tidak programmer atau Anda bukan orang yang telah diberi kode aplikasi web Anda.
Pengalaman kami membuat kita yakin bahwa ada kemungkinan besar bahwa data Anda sudah berisiko dari SQL Injection.
Apakah seorang penyerang dapat melihat data yang disimpan dalam 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 yang rentan, baik untuk kompromi atau yang lain untuk mendapatkan informasi.
Jika kode tidak benar, maka Anda berisiko memiliki pelanggan Anda dan data perusahaan dikompromikan.
Apa penyerang memperoleh akses untuk juga tergantung pada tingkat keamanan ditetapkan oleh database. Basis data dapat diatur untuk membatasi untuk perintah tertentu saja. Sebuah akses baca biasanya diaktifkan untuk digunakan oleh aplikasi web kembali berakhir.
Bahkan jika seorang penyerang tidak dapat memodifikasi sistem, ia masih akan bisa membaca informasi berharga.
Apa dampak dari SQL Injection?
Setelah penyerang menyadari bahwa sistem yang rentan terhadap SQL Injection, dia mampu menyuntik Query SQL / Perintah melalui lapangan formulir masukan. Hal ini setara dengan menyerahkan penyerang database Anda dan memungkinkan dia untuk menjalankan perintah SQL termasuk DROP TABLE ke database!
Seorang penyerang dapat melakukan pernyataan SQL sewenang-wenang pada sistem yang rentan. Hal ini dapat mengganggu integritas dari database Anda dan / atau mengungkapkan informasi sensitif. Tergantung pada database back-end digunakan, SQL injection menyebabkan kerentanan 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, gunakan subselects, atau tambahkan query 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 berisi 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 tersebut ditemukan. Data sedang sengaja dicuri melalui berbagai hack serangan sepanjang waktu. Para ahli lebih jarang hacker tertangkap.
Contoh Attack SQLInjection
Berikut adalah contoh dasar HTML form dengan dua input, login dan password.
<form method="post" action="http://testasp.acunetix.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 id
DARI login
WHERE username = '$ username'
DAN password = '$ password'
Jika variabel $ username dan $ password yang diminta langsung dari input pengguna, ini dengan mudah dapat dikompromikan. Misalkan kita memberikan "Joe" sebagai nama pengguna dan bahwa string berikut ini disediakan sebagai password: apa-apa 'OR' x '=' x
SELECT id
DARI login
WHERE username = 'Joe'
ATAU DAN password = 'apa' 'x' = 'x'
Sebagai masukan dari aplikasi web tidak dibersihkan dengan benar, penggunaan tanda kutip tunggal telah berubah komando WHERE SQL ke dalam klausa dua-komponen.
The 'x' = 'x' jaminan bagian untuk benar peduli apa bagian pertama berisi.
Hal ini akan memungkinkan penyerang untuk memotong bentuk login tanpa benar-benar mengetahui berlaku username / password kombinasi!
Bagaimana saya mencegah serangan SQL Injection?
Mekanisme firewall dan deteksi gangguan serupa memberikan sedikit pertahanan terhadap serangan web skala penuh. Sejak situs Web Anda harus publik, mekanisme keamanan akan mengizinkan lalu lintas web publik untuk berkomunikasi dengan database server Anda melalui aplikasi web. Bukankah ini apa yang mereka telah dirancang untuk melakukan?
Patch server Anda, database, bahasa pemrograman dan sistem operasi adalah penting tapi akan sama sekali tidak cara terbaik untuk mencegah SQL Injection.

 

Read the full article on How to Check for and Prevent SQL Injection Attacks.

Download Acunetix Web Vulnerability Scanner and find out if your site is vulnerable!



1 komentar:

  1. WOw...

    Aa hacker..

    ajarin dumz kk cara hack web..

    saia da target nih

    www.sumedang.go.id

    mohon lanjutan`y iah kk hacker

    BalasHapus