Minggu, 01 Mei 2011

Apa itu SQL Injection - apakah Serangannya Berbahaya?

 
SQL injection adalah serangan di mana kode berbahaya dimasukkan ke dalam string yang kemudian diteruskan ke sebuah contoh dari SQL Server untuk parsing dan eksekusi. A malicious hacker can do a lot of harm using these attacks. Seorang hacker berbahaya dapat melakukan banyak merugikan menggunakan serangan. In India According to Indian Cyber Crime dept malicious hackers usually attack govt sites, as they are open to it. Di India Menurut India Cyber ​​Crime dept hacker jahat biasanya menyerang situs govt, karena mereka terbuka untuk itu.

Kosakata:

  • SQL: Server Query Language-digunakan dalam aplikasi web untuk berinteraksi dengan database.
  • SQL Injection: Metode pemanfaatan aplikasi web dengan menyediakan input pengguna yang dirancang untuk memanipulasi database SQL query.
  • Injection: Anda memasukkan injeksi ke dalam bentuk html yang dikirim ke aplikasi web.Aplikasi kemudian menempatkan Anda masukan langsung ke sebuah query SQL.Dalam advertantly, ini memungkinkan Anda untuk memanipulasi untuk query

  

Aplikasi:

Hacking SQL server database-driven (biasanya hanya orang-orang yang menggunakan unparsed input pengguna dalam query database). Masih ada jumlah yang mengejutkan aplikasi web berbasis data di internet yang rentan terhadap jenis ini memanfaatkan.Menjadi yang khas sebagai metode semua, frekuensi target yang mungkin menurun dari waktu ke waktu sebagai metode menjadi lebih dikenal. Ini adalah salah satu orang eksploitasi yang tidak mudah dicegah dengan patch yang sederhana namun oleh seorang programmer yang kompeten.

Bagaimana Digunakan dan di mana ia digunakan?

Pertama, mari kita melihat sebuah query SQL yang khas:

SELECTfieldName1,fieldName2FROMdatabaseNamerestrictionsToFilterWhichEntriesToReturn WHERE

Sekarang, untuk membedah ...
Daerah merah adalah di mana kriteria diinput. Sisanya struktur query query.

# SELECT fieldName1, fieldName2 - Menentukan nama dari kolom yang akan dikembalikan dari database.
# FROM databaseName Menetapkan nama database untuk pencarian.
# WHERE restrictionsToFilterWhichEntriesToReturn - Menentukan yang entri untuk kembali
.

Berikut adalah contoh untuk login script's seseorang: 

SELECT FROM WHERE userAcessFlags userDatabase username = "(masukan di sini)" dan userPass = "(masukan di sini)".

Idenya adalah menebak apa query yang aplikasi terlihat hal-hal seperti dan masukan yang dirancang untuk mengembalikan data lain dari apa yang dimaksudkan.

Dalam contoh di atas, masukan seperti berikut ini dapat memberikan mendapatkan akses ke account administrator:

User: administrator
Pass: ” OR “”=”
 

Membuat query seperti ini: 

SELECT userAcessFlags FROM userDatabase WHEREuserName=”administrator” AND userPass=”" OR “”=“” 

Seperti yang Anda lihat, ""="" (tidak ada yang memang cocok dengan apa-apa)

Catatan: Suntikan jarang yang sederhana seperti ini .

Seseorang dapat menjadi kreatif dan menggunakan pesan kesalahan untuk keuntungan Anda untuk mengakses database lain, ladang, dan entri.Belajar SQL sedikit untuk menggunakan hal-hal seperti UNI untuk menggabungkan hasil query dengan yang tidak dimaksudkan. Di sisi keamanan, data pengguna mengurai dan menyingkirkan setiap simbol tambahan sekarang bahwa Anda tahu bagaimana hal itu dilakukan.
Ide dalam contoh ini adalah untuk keluar dari tanda kutip. 
Ketika hal ini di dalam tanda kutip, hal tersebut tidak diproses sebagai kode atau apa tapi sebagai frase dan apa itu.
Injeksi password adalah: "OR" "="
Apa yang dilakukan adalah menutup string yang dimulai dengan tanda kutip di bagian userPass = ".Setelah Anda keluar, MAKA hal dianggap kode.Jadi, saya menempatkan OR"" = "setelah saya keluar dari string.Anda akan melihat bahwa itu adalah membandingkan dua tanda kutip dengan satu, tetapi tanda kutip sudah dibangun oleh aplikasi selesai sehingga kita memiliki: 
userPass = "" OR ""=""  
Perhatikan bagaimana tanda kutip pertama dan terakhir tidak berwarna.

Tambahan Informasi tentang SQL Injection:

Ini hanya versi yang sangat sederhana dan Anda mungkin akan perlu belajar SQL sedikit untuk memahami. Here are a few SQL terms that do other things: Berikut adalah beberapa SQL istilah yang melakukan hal-hal lain: 

UNION: Anda menggunakan ini untuk menggabungkan hasil dari salah satu query dengan yang lain.Anda dapat meletakkan hal-hal seperti SELECT setelah UNI dalam rangka untuk mencari database lain dan hal.Kadang-kadang anda mungkin perlu menggunakan SEMUA dalam conjuction untuk keluar dari klausa tertentu.Ini tidak ada salahnya jadi ketika Anda ragu-ragu Anda bisa melakukan sesuatu seperti:

” UNION ALL SELECT 0,”,’hash’ FROM otherDatabase WHERE userName=”admin 

Tombol ketika menggunakan UNION untuk membuat baru permintaan Anda kembali jumlah yang sama kolom di datatype yang sama sehingga Anda bisa mendapatkan hasil yang Anda inginkan.

# Ini bekerja kadang-kadang untuk mengakhiri query sehingga mengabaikan ke seluruh hal-hal yang mungkin diberi makan setelah itu jika Anda tidak menyukainya. For example: Sebagai contoh: 

SELECT * FROM userDatabase WHERE userName=”admin”;–” AND userPass=”aH0qcQOVz7e0s”

NOT IN:Jika Anda tidak tahu yang merekam anda mau, anda bisa merekam siklus (Anda meminta info jelas, dan Anda menempatkan apa yang sudah Anda punya di NOT IN klausa sehingga Anda bisa mendapatkan entri berikutnya).

Penggunaan:   

SELECT userName userPass FROM userDatabase WHERE userName NOT IN(‘Dehstil’,'Twistedchaos’) 

EXEC: Perintah ini tidak harus selalu bekerja, tetapi jika bekerja ... Anda menang, Anda bisa melakukan apa saja.Misalnya, Anda bisa menyuntikkan sesuatu seperti ini:  

‘;EXEC master.dbo.xp_cmdshell ‘cmd.exe dir c: 

Semua contoh saya sejauh ini hanya untuk proses membaca. 

 

0 komentar:

Posting Komentar

My Advice To You

Select your cell phone

MAP

Diberdayakan oleh Blogger.

Updates Via E-Mail

Categories