Pengenalan
SQL injection merupakan salah satu kelemahan yang paling dahsyat untuk dampak bisnis, karena dapat menyebabkan pembongkaran semua informasi yang sensitif yang tersimpan dalam sebuah aplikasi database, termasuk informasi berguna seperti username, password, nama, alamat, nomor telepon, dan rincian kartu kredit. Jadi SQL injection adalah kelemahan yang diterjadi ketika penyerang mampu mengubah Structured Query Language (SQL) di dalam database. Dengan mempengaruhi database, penyerang dapat memanfaatkan sintaks dan kemampuan dari SQL itu sendiri, serta kekuatan dan fleksibilitas yang mendukung fungsi database dan fungsi sistem operasi yang hanya dilakukan dalam database.
Bagaimana aplikasi web bekerja
Hal yang dimiliki aplikasi web adalah terlepas dari bahasa yang ditulis, bersifat interaktif, dan merupakan database-driven. Aplikasi web database-driven biasanya terdiri dari database back-end dengan halaman web yang berisi server-side script dan ditulis dalam bahasa pemrograman yang mampu mengekstrak informasi spesifik dari database yang bergantung pada berbagai interaksi dinamis dengan pengguna. Salahsatu aplikasi yang paling umum untuk aplikasi web database-driven adalah aplikasi e-commerce, dimana berbagai informasi disimpan dalam database, seperti produk, tingkat stok, harga, biaya kirim dan biaya kemasan, dan sebagainya.
Sebuah aplikasi web database-driven biasanya memiliki tiga tingkatan, yaitu tingkat presentasi (Web browser), tingkat logika (bahasa pemrograman seperti C#, ASP, .NET, PHP, JSP, dll), dan tingkat penyimpanan (Microsoft SQL server, MySQL, Oracle, dll) . Browser Web pada merupakan tingkat presentasi mengirimkan permintaan ke tingkat menengah (tingkat logika), yang memberikan pelayanan untuk permintaan membuat query dan update terhadap database (tingkat penyimpanan). Tingkat presentasi merukapan tingkat yang paling atas dalam aplikasi web. Tingkat presentasi menampilkan informasi yang terkait dengan layanan, dan berkomunikasi dengan tingkatan lain dengan mengeluarkan hasil ke browser/ klien dan semua tingkatan lain dalam jaringan.
Tingkatan data terdiri server database,di database informasi disimpan dan diambil.Tingkat ini dapat membuat data menjad berdiri sendiri dari server aplikasi atau logika bisnis sehingga meningkatkan skalabilitas dan kinerja. Tingkat presentasi tidak pernah berkomunikasi langsung dengan tingkat data dalam 3 tingkat model, semua komunikasi harus melalui tingkat middleware. Secara konseptual, tiga tingkatan arsitektur adalah linier. Web server yang berada dalam tingkat logika memuat script dari sistem file dan diteruskan melewati scripting engine, dimana akan diuraikan dan dieksekusi. Script membuka koneksi ke tingkat penyimpanan menggunakan konektor database dan mengeksekusi pernyataan SQL terhadap database. Kemudian database mengembalikan data ke konektor database, yang dilewatkan ke scripting engine dalam tingkat logika. Tingkat logika kemudian mengimplementasikan aplikasi apapun atau aturan logika bisnis sebelum kembali ke halaman web dalam format HTML ke web browser pengguna dalam tingkat presentasi. Web browser pengguna merender HTML dan menyajikan pengguna dengan gambaran grafis dari kode.
Memahami SQL Injection
Aplikasi web menjadi lebih canggih dan semakin teknis yang kompleks. Mulai dari internet dinamis dan portal intranet, seperti e-commerce dan pasangan extranet, untuk HTTP dikirimkan oleh aplikasi perusahaan seperti sistem manajemen dokumen dan ERP aplikasi. Sifat aplikasi web dengan desain yang beragam fitur dan kemampuan web tersebut untuk menyusun, memproses, dan menyerbarkan informasi melalui internet atau dari dalam intranet membuat aplikasi web tersebut menjadi target yang populer untu diserang. Aplikasi web menjadi target penyerangan juga disebabkan karena keamanan jaringan pada pasar teknologi telah jatuh tempo dan ada sedikit peluang untuk menembus sistem informasi melalui kelemahan networkbased, hacker semakin banyak yang berpindah fokus mereka untuk mencoba mengkompromi aplikasi tersebut.
SQL injection merupakan serangan dimana kode SQL dimasukkan atau ditambahkan ke dalam aplikasi/ user input parameter yang kemudian diteruskan ke SQL server back-end untuk parsing dan eksekusi. Setiap prosedur yang membangun pernyataan SQL berpotensi untuk mudah terserang. Bentuk injeksi utama SQL terdiri dari penyisipan langsung kode ke dalam parameter yang digabungkan dengan perintah SQL dan kemudian dieksekusi. Sebuah serangan langsung paling sedikit menyuntikan kode ke dalam string yang ditujukan ke penyimpanan di dalam tabel atau sebagai metadata. Ketika string yang tersimpan akhirnya digabungkan ke dalam perintah SQL dinamis, kode tersebut akan dieksekusi. Ketika aplikasi web gagal untuk membersihkan paramater dengan benar dilewatkan ke pernyataan SQL yang dibuat secara dinamis (bahkan ketika menggunakan teknik parameterisasi) ini memungkinkan untuk seorang penyerang untuk mengubah mengubah konstruksi back-end SQL.
Ketika seorang penyerang dapat memodifikasi pernyataan SQL, pernyataan tersebut akan dieksekusi dengan hak yang sama dengan aplikasi pengguna, saat menggunakan server SQL untuk mengeksekusi perintah yang berinteraksi dengan sistem operasi, proses akan berjalan dengan hak akses yang sama dengan komponen yang mengeksekusi perintah (misalnya database server, aplikasi server, atau web server).
0 Response to "Pengenalan SQL injection"
Post a Comment