
Blind SQL injection bisa menjadi sakit untuk mengeksploitasi. Ketika alat yang tersedia bekerja mereka bekerja dengan baik, tetapi ketika mereka tidak Anda harus menulis sesuatu kustom. Ini memakan waktu dan membosankan. BBQSQL dapat membantu Anda mengatasi masalah itu.
BBQSQL adalah kerangka kerja injeksi SQL buta ditulis dengan Python. Hal ini sangat berguna ketika menyerang kerentanan SQL injection rumit. BBQSQL juga merupakan alat semi-otomatis, yang memungkinkan sedikit kustomisasi bagi mereka yang sulit untuk memicu temuan injeksi SQL. Alat ini dibangun untuk menjadi database yang agnostik dan sangat serbaguna. Ia juga memiliki UI intuitif untuk membuat pengaturan serangan jauh lebih mudah. gevent Python juga dilaksanakan, membuat BBQSQL sangat cepat.
Ikhtisar Readme
Kami mencoba untuk menulis alat sedemikian rupa bahwa itu akan menjadi sangat jelas diri saat menyiapkan serangan di UI. Namun, demi ketelitian kami telah menyertakan Readme rinci yang harus memberikan wawasan tambahan pada spesifikasi masing-masing opsi konfigurasi. Satu hal yang perlu diperhatikan adalah bahwa setiap pilihan konfigurasi di UI memiliki deskripsi yang terkait dengan itu, jadi jika Anda memilih untuk menjalankan alat tanpa membaca halaman ini Anda harus bisa hack jalan Anda melalui serangan.
High Level Penggunaan
Mirip dengan alat injeksi SQL lain yang memberikan informasi permintaan tertentu.
Harus memberikan informasi yang biasa:
URL
Metode HTTP
header
Kue
metode pengkodean
mengarahkan perilaku
arsip
HTTP Auth
proxy
Kemudian tentukan dimana injeksi akan dan apa sintaks kita suntik. Baca terus untuk rincian.
Memasang
Ini harus lurus ke depan, tapi apa yang pernah. Coba jalankan:
sudo pip menginstal bbqsql
Jika itu tidak bekerja untuk Anda, Anda dapat menginstal dari sumber. Alat ini membutuhkan gevent, permintaan.
BBQSQL PilihanDalam menu Anda akan melihat tempat untuk pilihan BBQSQL. Di sini Anda menentukan pilihan berikut:
pertanyaanHal ini dijelaskan secara lebih rinci di bawah gambaran sintaks query.
csv_output_fileNama file output hasil ke. Biarkan kosong ini jika Anda tidak ingin output ke file.
teknikBBQSQL menggunakan dua teknik ketika melakukan serangan injeksi SQL buta. pertama dan standar teknik yang digunakan adalah binary_search. Lihat Wikipedia untuk informasi lebih lanjut.Teknik kedua dapat Anda gunakan adalah frequency_search. Frekuensi pencarian didasarkan pada analisis dari bahasa Inggris untuk menentukan frekuensi di mana surat akan terjadi. Metode pencarian ini sangat cepat terhadap data non-entropis, tapi bisa lambat terhadap data non-Inggris atau dikaburkan.Anda dapat menentukan baik binary_search atau frequency_search sebagai nilai untuk parameter ini.
comparison_attrIni menentukan jenis SQL injection Anda telah menemukan. Di sini Anda dapat mengatur yang atribut respon bbqsql http harus melihat untuk menentukan benar / salah.Anda dapat menentukan: status_code, url, waktu, ukuran, teks, konten, encoding, cookies, header, atau sejarahJika Anda telah mengidentifikasi injeksi sql yang menghasilkan kode status server yang berbeda set 'status_code' di sini. Jika cookie adalah set yang berbeda 'cookie'. Jika ukuran respon berbeda set 'ukuran'. Anda mendapatkan jist.
concurrencyConcurrency didasarkan pada perpustakaan gevent di Python. Fungsional, tampaknya bertindak seperti threading tetapi secara spesifik tentang bagaimana ini bekerja dapat dilihat pada pembicaraan DefCon kami di sini [menyisipkan link di sini]. Pengaturan ini mengontrol jumlah concurrency untuk menjalankan serangan dengan. Hal ini berguna untuk throttling permintaan dan mempercepat kali serangan. Untuk kinerja web-server benar-benar tinggi seperti nginx, kami telah mampu untuk mengatur konkuren yang 75. Secara default ini diatur ke '30'.
Permintaan Ikhtisar SintaksJika Anda mengalami injeksi kerentanan SQL yang memiliki beberapa kebiasaan aneh (seperti karakter tertentu tidak dapat disertakan atau fungsi seperti ASCII / CHAR tidak bekerja), Anda mungkin telah menemukan diri Anda menulis semacam script dengan sintaks injeksi kustom Anda. BBQSQL mengeluarkan bagian scripting dan menyediakan cara bagi Anda untuk menyisipkan di sintaks query kustom Anda dan mengeksploitasi dengan mudah.Input permintaan adalah di mana Anda akan membangun query Anda digunakan untuk exfiltrate informasi dari database. Asumsinya adalah bahwa Anda sudah telah mengidentifikasi SQL injection pada parameter yang rentan, dan telah diuji query yang berhasil.Berikut ini adalah contoh permintaan dapat Anda gunakan untuk membangun query Anda.Dalam contoh ini, penyerang mencari untuk memilih database versi:
vulnerable_parameter'; if(ASCII(SUBSTRING((SELECT @@version LIMIT 1 OFFSET ${row_index}) , ${char_index} ,1))) ${comparator:>}ASCII(${char_val}) WAITFOR DELAY '0\:0\:0${sleep}'; --
Home »Analisis» BBQSQL »Blind SQL Injection» Cookies »Database» Kerangka »Linux» Mungkin »Python» SQL »SQL Injection» SQL Injection Eksploitasi »BBQSQL - Sebuah Injection Eksploitasi Alat Blind SQLBBQSQL - Sebuah Injection Eksploitasi Alat Blind SQLLydecker Hitampada 11:30 | Posting disponsori oleh Scanner Netsparker Web Keamanan Aplikasi
Blind SQL injection bisa menjadi sakit untuk mengeksploitasi. Ketika alat yang tersedia bekerja mereka bekerja dengan baik, tetapi ketika mereka tidak Anda harus menulis sesuatu kustom. Ini memakan waktu dan membosankan. BBQSQL dapat membantu Anda mengatasi masalah itu.BBQSQL adalah kerangka kerja injeksi SQL buta ditulis dengan Python. Hal ini sangat berguna ketika menyerang kerentanan SQL injection rumit. BBQSQL juga merupakan alat semi-otomatis, yang memungkinkan sedikit kustomisasi bagi mereka yang sulit untuk memicu temuan injeksi SQL. Alat ini dibangun untuk menjadi database yang agnostik dan sangat serbaguna. Ia juga memiliki UI intuitif untuk membuat pengaturan serangan jauh lebih mudah. gevent Python juga dilaksanakan, membuat BBQSQL sangat cepat.
Ikhtisar ReadmeKami mencoba untuk menulis alat sedemikian rupa bahwa itu akan menjadi sangat jelas diri saat menyiapkan serangan di UI. Namun, demi ketelitian kami telah menyertakan Readme rinci yang harus memberikan wawasan tambahan pada spesifikasi masing-masing opsi konfigurasi. Satu hal yang perlu diperhatikan adalah bahwa setiap pilihan konfigurasi di UI memiliki deskripsi yang terkait dengan itu, jadi jika Anda memilih untuk menjalankan alat tanpa membaca halaman ini Anda harus bisa hack jalan Anda melalui serangan.
High Level PenggunaanMirip dengan alat injeksi SQL lain yang memberikan informasi permintaan tertentu.Harus memberikan informasi yang biasa:
URL
Metode HTTP
header
Kue
metode pengkodean
mengarahkan perilaku
arsip
HTTP Auth
proxy
Kemudian tentukan dimana injeksi akan dan apa sintaks kita suntik. Baca terus untuk rincian.
MemasangIni harus lurus ke depan, tapi apa yang pernah. Coba jalankan:
sudo pip menginstal bbqsql
Jika itu tidak bekerja untuk Anda, Anda dapat menginstal dari sumber. Alat ini membutuhkan gevent, permintaan.
BBQSQL PilihanDalam menu Anda akan melihat tempat untuk pilihan BBQSQL. Di sini Anda menentukan pilihan berikut:
pertanyaanHal ini dijelaskan secara lebih rinci di bawah gambaran sintaks query.
csv_output_fileNama file output hasil ke. Biarkan kosong ini jika Anda tidak ingin output ke file.
teknikBBQSQL menggunakan dua teknik ketika melakukan serangan injeksi SQL buta. pertama dan standar teknik yang digunakan adalah binary_search. Lihat Wikipedia untuk informasi lebih lanjut.Teknik kedua dapat Anda gunakan adalah frequency_search. Frekuensi pencarian didasarkan pada analisis dari bahasa Inggris untuk menentukan frekuensi di mana surat akan terjadi. Metode pencarian ini sangat cepat terhadap data non-entropis, tapi bisa lambat terhadap data non-Inggris atau dikaburkan.Anda dapat menentukan baik binary_search atau frequency_search sebagai nilai untuk parameter ini.
comparison_attrIni menentukan jenis SQL injection Anda telah menemukan. Di sini Anda dapat mengatur yang atribut respon bbqsql http harus melihat untuk menentukan benar / salah.Anda dapat menentukan: status_code, url, waktu, ukuran, teks, konten, encoding, cookies, header, atau sejarahJika Anda telah mengidentifikasi injeksi sql yang menghasilkan kode status server yang berbeda set 'status_code' di sini. Jika cookie adalah set yang berbeda 'cookie'. Jika ukuran respon berbeda set 'ukuran'. Anda mendapatkan jist.
concurrencyConcurrency didasarkan pada perpustakaan gevent di Python. Fungsional, tampaknya bertindak seperti threading tetapi secara spesifik tentang bagaimana ini bekerja dapat dilihat pada pembicaraan DefCon kami di sini [menyisipkan link di sini]. Pengaturan ini mengontrol jumlah concurrency untuk menjalankan serangan dengan. Hal ini berguna untuk throttling permintaan dan mempercepat kali serangan. Untuk kinerja web-server benar-benar tinggi seperti nginx, kami telah mampu untuk mengatur konkuren yang 75. Secara default ini diatur ke '30'.
Permintaan Ikhtisar SintaksJika Anda mengalami injeksi kerentanan SQL yang memiliki beberapa kebiasaan aneh (seperti karakter tertentu tidak dapat disertakan atau fungsi seperti ASCII / CHAR tidak bekerja), Anda mungkin telah menemukan diri Anda menulis semacam script dengan sintaks injeksi kustom Anda. BBQSQL mengeluarkan bagian scripting dan menyediakan cara bagi Anda untuk menyisipkan di sintaks query kustom Anda dan mengeksploitasi dengan mudah.Input permintaan adalah di mana Anda akan membangun query Anda digunakan untuk exfiltrate informasi dari database. Asumsinya adalah bahwa Anda sudah telah mengidentifikasi SQL injection pada parameter yang rentan, dan telah diuji query yang berhasil.Berikut ini adalah contoh permintaan dapat Anda gunakan untuk membangun query Anda.Dalam contoh ini, penyerang mencari untuk memilih database versi:
vulnerable_parameter '; jika (ASCII (SUBSTRING ((SELECT @@ version LIMIT 1 OFFSET $ {ROW_INDEX}), $ {char_index}, 1))) $ {pembanding:>} ASCII ($ {char_val}) waitfor DELAY '0 \: 0 \ : 0 $ {tidur} '; -
Sintaks query didasarkan sekitar penampung yang memberitahu BBQSQL bagaimana melaksanakan serangan itu.Anda perlu menyediakan penampung informasi berikut agar serangan itu untuk bekerja. Setelah Anda menempatkan ini dalam permintaan Anda, bbqSQL akan melakukan sisanya:$ {ROW_INDEX}: Ini memberitahu bbqSQL iterate baris di sini. Karena kita menggunakan LIMIT kita dapat melihat sejumlah n baris tergantung pada $ {ROW_INDEX} nilai.$ {Char_index}: Ini memberitahu bbqSQL yang karakter dari subselect untuk query.$ {Char_val}: Ini memberitahu bbqSQL mana untuk membandingkan hasil dari subselect untuk memvalidasi hasilnya.$ {Pembanding}: ini adalah bagaimana Anda memberitahu BBQSQL untuk membandingkan tanggapan untuk menentukan apakah hasilnya benar atau tidak. Secara default, simbol> digunakan.$ {Tidur}: Ini adalah opsional, tetapi mengatakan bbqSQL mana untuk memasukkan jumlah detik untuk tidur saat melakukan waktu SQL berdasarkan injection.Tidak semua tempat pemegang ini diperlukan. Misalnya, jika Anda telah menemukan boolean semi-buta berdasarkan SQL injection Anda dapat menghilangkan $ {tidur} parameter.
Parameter HTTPBBQSQL memiliki banyak parameter http Anda dapat mengkonfigurasi saat menyiapkan serangan Anda. Minimal Anda harus menyediakan URL, di mana Anda ingin pertanyaan injeksi untuk menjalankan, dan metode. Pilihan berikut dapat diatur:
arsip
header
kue
url
allow_redirects
proxy
data
metode
auth
Anda menentukan di mana Anda ingin pertanyaan injeksi untuk dimasukkan dengan menggunakan template $ {injection}. Tanpa template injeksi alat wont tahu di mana untuk memasukkan query.
arsipMenyediakan file yang akan dikirim dengan permintaan. Mengatur nilai ke jalan dan BBQSQL akan mengurus pembukaan / termasuk file.
headerheader HTTP yang akan dikirim dengan permintaan. Ini bisa menjadi string atau kamus. Sebagai contoh:{ "User-Agent": "bbqsql"} atau "User-Agent: bbqsql"
kueSebuah kamus atau string cookie yang akan dikirim dengan permintaan. Sebagai contoh:{ "PHPSESSIONID": "123123"} atau PHPSESSIONID = 123.123; JSESSIONID = foobar
urlTentukan url bahwa permintaan harus dikirim ke.
allow_redirectsIni adalah boolean yang menentukan pengalihan http cuaca akan follwed ketika membuat permintaan.
proxyTentukan proxy http yang akan digunakan untuk permintaan sebagai kamus. Sebagai contoh:{ "Http": "10.10.1.10:3128","https": "10.10.1.10:1080"}
dataMenentukan data pos yang akan dikirim bersama dengan permintaan. Ini bisa menjadi string atau kamus. Sebagai contoh:{ "Input_field": "value"} atau input_field = nilai
metodeMenentukan metode untuk permintaan http. metode yang valid adalah'Mendapatkan', 'pilihan', 'kepala', 'post', 'menempatkan', 'Patch', 'menghapus'
authMenentukan tuple dari username dan password yang akan digunakan untuk otentikasi dasar http. Sebagai contoh:( "Myusername", "mypassword")
ekspor ConfigSetelah Anda memiliki setup serangan Anda di UI, Anda dapat mengekspor file konfigurasi. Anda akan melihat pilihan ketika Anda menjalankan alat. file konfigurasi yang diekspor menggunakan ConfigParser, dan mudah dibaca. Contoh file konfigurasi dapat dilihat di bawah ini:`[Request Config] url = http://example.com/sqlivuln/index.php?username=user1&password=secret${injection} method = GET[HTTP Config] query = 'dan ASCII (substr ((SELECT Data FROM Data LIMIT 1 OFFSET $ {ROW_INDEX: 1}), $ {char_index: 1}, 1)) $ {pembanding:>} $ {char_val: 0} # teknik = binary_search comparison_attr = ukuran concurrency = 30`Hal ini berguna jika Anda berencana untuk melanjutkan serangan atau mungkin hanya menyesuaikan query tetapi tidak ingin pergi melalui kerumitan konfigurasi ulang setiap pilihan.
impor ConfigAnda juga dapat mengimpor konfigurasi dari baris perintah atau dari antarmuka pengguna. Untuk mengimpor konfigurasi dari baris perintah hanya menjalankan bbqsl dengan pilihan berikut:bbqsql -c config_fileKetika Anda memuat file konfigurasi baik melalui baris perintah atau antarmuka pengguna, rutinitas validasi yang sama dijalankan pada paramters untuk memastikan yang berlaku.
kustom HooksKadang-kadang Anda perlu melakukan sesuatu yang benar-benar gila. Mungkin Anda perlu untuk mengenkripsi nilai masuk ke lapangan sebelum mengirim permintaan atau mungkin Anda perlu encode tiga URL. Apapun, situasi ini membuat alat-alat lainnya tidak mungkin untuk digunakan. BBQSQL memungkinkan Anda untuk menentukan "hook" fungsi yang alat akan memanggil pada berbagai titik di seluruh permintaan. Misalnya, Anda dapat menentukan fungsi pre_request yang mengambil permintaan sebagai argumen, melakukan apa saja mutasi yang diperlukan, dan mengembalikan permintaan dimodifikasi untuk dikirim ke server.Untuk melaksanakan ini, membuat file Python dan menentukan fungsi kail. Nama fungsi yang tersedia tercantum di bawah. Dalam file kait Anda, Anda dapat menentukan sesedikit atau sebanyak fungsi kait ini seperti yang Anda inginkan. Kemudian, di bagian bbqsql_options dari me, Anda dapat menentukan lokasi hooks_file Anda. BBQSQL akan menyedot file ini dan menggunakan kait apa pun yang Anda ditetapkan.Adalah penting bahwa kait fungsi yang Anda tentukan memiliki tepat di bawah nama tertentu atau yang lain BBQSQL tidak akan tahu mana kait untuk panggilan ketika. Args Fungsi menerima satu parameter yang berisi semua argumen yang digunakan untuk membuat permintaan HTTP. Fungsi pre_request menerima permintaan objek sebelum dikirim. Fungsi post_request menerima permintaan objek setelah telah dikirim. Fungsi respon menerima objek respon sebelum dikembalikan ke BBQSQL.Kait berikut tersedia:args: Sebuah kamus dari argumen yang dikirim ke Request ().pre_request: The Permintaan objek, langsung sebelum dikirim.post_request: The Permintaan objek, langsung setelah dikirim.Tanggapan: Respon yang dihasilkan dari Minta.Untuk informasi lebih lanjut tentang bagaimana kait ini bekerja dan bagaimana kamus kait Anda harus melihat, memeriksa permintaan dokumentasi perpustakaan di kait-nyaContoh file kait mungkin terlihat seperti ini:
# file: hooks.py
import time
def pre_request(req):
"""
this hook replaces a placeholder with the current time
expecting the url to look like this:
http://www.google.com?k=v&time=PLACEHOLDER
"""
req.url = req.url.replace('PLACEHOLDER',str(time.time()))
return req
Ditemukan Bug?
Menyerahkan setiap perbaikan bug atau permintaan fitur untuk https://github.com/Neohapsis/bbqsql/
Bisa saya bantu?
Silahkan! Kami melihat ini menjadi tempat awal yang bagus untuk membangun kerangka sql injection yang mampu sepenuhnya. Jangan ragu untuk garpu kode dan kita bisa menggabungkan perubahan Anda jika mereka berguna.
Apa Up Dengan Nama?
BBQ adalah benar-benar lezat dan begitu SQL injection!
Download BBQSQL
https://github.com/Neohapsis/bbqsql
Terima Kasih untuk:
http://www.kitploit.com
https://github.com
https://www.kali.org/
0 Response to "BBQSQL - Sebuah Alat Eksploitasi Injection Blind SQL"
Post a Comment