Pemindai Injeksi SQL Lanjutan - IIS & DBO
Mekanisme canggih injeksi SQL yang dapat digunakan oleh pengguna jahat untuk mendapatkan informasi penting dan memanfaatkannya untuk mendapatkan kendali penuh atas sistem komputer.
Catatan Penjelasan
Artikel ini tidak berusaha menjelaskan teknik baru dalam kompromi sistem komputer, teknik injeksi SQL sangat tua dan diketahui tetapi pada saat yang sama bisa sangat kuat. Artikel ini juga tidak mencerminkan eksploitasi kerentanan yang tidak diketahui, ini diketahui dan telah dilaporkan, yang jika dapat mencerminkan mekanisme canggih yang tidak dipublikasikan dari injeksi SQL yang dapat digunakan oleh pengguna berbahaya untuk mendapatkan informasi penting dan memanfaatkannya untuk mendapatkan kendali penuh atas sistem komputer.
Menggabungkan teknik ini dengan server web IIS dengan izin pengguna yang ditinggikan (DBO) di database Microsoft SQL Server dapat menyebabkan hilangnya kontrol server yang terkena dampak.
Artikel ini akan mencoba menjelaskan risiko potensial yang disebabkan oleh salah konfigurasi database SQL yang berinteraksi dengan halaman web eksternal melalui server web IIS dan memberikan perincian tentang bagaimana pengguna jahat dapat memperoleh manfaat darinya.
Ringkasan Pendek (Wikipedia)
Injeksi SQL adalah teknik injeksi kode, yang digunakan untuk menyerang aplikasi berbasis data, di mana pernyataan SQL jahat dimasukkan ke dalam bidang entri untuk dieksekusi (misalnya untuk membuang konten database ke penyerang). Injeksi SQL harus mengeksploitasi kerentanan keamanan dalam perangkat lunak aplikasi, misalnya, ketika input pengguna salah disaring secara tidak benar untuk karakter pelarian literal string yang tertanam dalam pernyataan SQL atau input pengguna tidak diketik dengan kuat dan dieksekusi secara tidak terduga. Injeksi SQL sebagian besar dikenal sebagai vektor serangan untuk situs web tetapi dapat digunakan untuk menyerang semua jenis database SQL.
Serangan injeksi SQL memungkinkan penyerang untuk memalsukan identitas, merusak data yang ada, menyebabkan masalah penolakan seperti membatalkan transaksi atau mengubah saldo, memungkinkan pengungkapan lengkap semua data pada sistem, menghancurkan data atau membuatnya tidak tersedia, dan menjadi administrator server basis data.
Kerentanan
Dengan asumsi bahwa di halaman web ada masalah keamanan dengan lewat parameter untuk memungkinkan injeksi SQL, masalah utamanya adalah bahwa server web IIS dapat menampilkan informasi penting kepada pengguna dengan menggunakan fungsi konversi transact-sql yang tidak valid. Bayangkan URL berikut di mana parameter ID memungkinkan injeksi.
https://www.victim.com/index.aspx?id=1
Pengguna jahat dapat mengganti nilai parameter ID dengan fungsi konversi transact-sql
konversi (int, (pilih+pengguna));-
URL terakhir adalah gaya ini:
https://www.victim.com/index.aspx?id=convert(int, (pilih+user));-
Fungsi konversi mencoba untuk mengonversi string ke integer, yang menyebabkan pengecualian di mana server web IIS membuat kesalahan serius yang menunjukkan nilai kueri yang dieksekusi.
Output yang khas adalah sesuatu seperti ini:
Konversi gagal saat mengonversi nilai nvarchar '{user}' ke tipe data int.
Karena kita dapat melihat nilai {user} sesuai dengan nilai saat ini dari pengguna database, di samping semua ini jika nilai yang dikembalikan adalah DBO akan memberi tahu kami bahwa pengguna database memiliki hak eksekusi maksimum, sehingga akan dapat menjalankan perintah shell menggunakan fungsi transact-sql xp_cmdshell.
Menggunakan halaman web dengan pengguna basis data dengan hak istimewa maksimum adalah kesalahan keamanan yang serius di mana administrator sistem tidak boleh jatuh.
Singkatnya, dapat mengatakan bahwa kerentanan terdiri dari tiga faktor:
- Kesalahan dalam menangani parameter GET/POST yang memungkinkan injeksi SQL. (Pengembang Perangkat Lunak)
- Server web IIS yang menampilkan informasi fungsi konversi. (Microsoft)
- Gunakan pengguna database di halaman web dengan hak istimewa maksimum. (Administrator Sistem/Pengembang Perangkat Lunak)
Versi 4.0 (Pribadi)
Versi 4.0 pemindai yang diperluas itu ada di repositori pribadi (terlihat oleh sponsor) dengan semua fungsinya.
- https://github.com/iricartb/advanced-sql-injection-scanner-release
Informasi lebih lanjut
https://advanced-sql-lection.blogspot.com/2017/06/ivan-ricart-borges-advanced-sql.html