Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

1. Kap de query-inhoud af

Voor het geval u de scripts in de query wilt negeren. Voor de onderstaande verwerking vereist de query bijvoorbeeld de voorwaarde active=1, maar we kunnen commentaar geven (--, -- -, -+, #, /*, /**/, // , ;%00…) en negeer het. Bij mining weten we vaak niet wat de resterende inhoud van de zoekopdracht doet, dus het gebruik van opmerkingen is in dit geval zeer effectief.

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

Na commentaar wordt onze vraag:

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

2. Omzeil trefwoordfiltering

A. Inline-opmerkingen

Inline-opmerkingen worden zeer effectief gebruikt om het filteren van witruimte te omzeilen. U kunt de volgende tekens gebruiken om witruimtefiltering te omzeilen: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Bijvoorbeeld:

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

Of omzeil trefwoordfiltering (beschikbaar bij MySql). In het onderstaande voorbeeld staan ​​de trefwoorden Union en Wachtwoord op de zwarte lijst en zijn ze dus geblokkeerd. We kunnen dit omzeilen door:

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

B. Vervang trefwoorden

Bij het exploiteren van SQL-injectie gebruiken we vaak trefwoorden zoals: union, select, information_schema... In veel gevallen vervangen programmeurs eenvoudigweg deze trefwoorden:

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

We kunnen gemakkelijk zien dat de bovenstaande verwerkingscode ontbreekt. Als het alleen maar om het matchen van patronen gaat, is de bypass uiterst eenvoudig. Laten we hoofdlettergevoelig toepassen, waarbij hoofdletters en kleine letters verschillend worden geïnterpreteerd.

In plaats van het trefwoord te gebruiken:

select, union…

We zullen gebruiken:

SeLEcT, UniOn…

De basis van deze bypass is dat databasebeheersystemen geen onderscheid maken tussen case en case-trefwoorden.

In sommige gevallen filtert de webapplicatie bepaalde trefwoorden (vereniging, selectie...) geheel of gedeeltelijk eruit. We zullen als volgt omzeilen:

id=1+uniunionon+SeLselectecT+1,2,3-- -

Nadat de unie en selectie door de webapplicatie zijn uitgefilterd, houden we als volgt de juiste vraag over:

id=1+union+SeLecT+1,2,3-- -

C. Tekencodering

We kunnen omzeilen wanneer WAF (Web Application Firewall) trefwoorden blokkeert door ze te coderen. Veel WAF-applicaties decoderen de zoekopdracht slechts één keer en filteren trefwoorden uit de zwarte lijst. Laten we het verzoek vervolgens twee keer coderen, zodat het in dit geval kan worden omzeild.

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

3. Bypass blokkeert enkele en dubbele aanhalingstekens

- Laten we naar een voorbeeld kijken voordat we specifiek over deze bypass leren.

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

In dit scenario hebben we een tabel in de database met de naam gebruikers. De volgende taak is om de kolomnaam in de tabel te kennen om de informatie ervan te verkrijgen. Net als in de bovenstaande zoekopdracht gebruiken we de voorwaarde: table_name='users'. Maar als zowel enkele aanhalingstekens (') als dubbele aanhalingstekens (") worden geblokkeerd door WAF, kunnen we 'users' of 'users' niet langer gebruiken. Dus hoe kunnen we dit probleem oplossen? Het ingebouwde databasesysteem geeft ons een functie die lost dit probleem heel goed op, namelijk de CHAR( )-functie (voor Oracle is dit CHR()). In de bovenstaande query zullen we dit bijvoorbeeld omzeilen door:

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilenWeb5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

PHP-programmeurs zijn zeer bekend met de functie addlashes(). De functie addlashes() heeft het effect dat er vóór speciale tekens zoals enkele aanhalingstekens ('), dubbele aanhalingstekens ("), backslash (\), NUL (null byte) teken "\" worden toegevoegd om het databasebeheersysteem te helpen. geen problemen en verwarring bij het verwerken van strings die deze karakters bevatten?Dus als we in de query willen injecteren volgens het script: name='someName' of '1'='1'-- De resultaten zijn niet langer wat we verwachtten.

Er is echter een techniek om de functie addlashes() te omzeilen en enkele aanhalingstekens (') in te voegen. Deze techniek is al geruime tijd openbaar en het implementeren van deze techniek is behoorlijk moeilijk omdat deze gekoppeld is aan de codeerstijl die op de website wordt toegepast.

4. Omzeil de fout "illegale combinatie van sortering voor bewerking UNION"

In sommige beheersystemen (vaak te vinden in MySql), wanneer databases en tabellen zijn ingesteld op sorteren, wordt bij gebruik van het trefwoord UNION de fout "illegale combinatie van sorteren voor bewerking UNION" gerapporteerd. Het instellen van de sortering kan te wijten zijn aan de bedoeling van de databaseontwerper of aan de standaardinstelling van MySql. Als u unie gebruikt, moeten we ervoor zorgen dat voor de selectiewaardevoorwaarde in elk veld het overeenkomstige codetype is gedefinieerd. Naar mijn mening komt deze fout vrij vaak voor, vooral bij CMS'en waarop Apache MySql wordt uitgevoerd. Mensen kunnen meer leren op: http://bugs.mysql.com/bug.php?id=57926.
In dit geval kunnen we manieren gebruiken om naar het juiste coderingstype te converteren.

Bijvoorbeeld in het volgende geval:

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

Als in de bovenstaande query de sortering van kolom1 bijvoorbeeld is ingesteld op Unicode-UTF8 of _latin1, moet datgene wat uit kolom2 is geselecteerd, worden geconverteerd naar de overeenkomstige code. We kunnen de stijl als volgt forceren:

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

We zien een nadeel in deze bypass-methode: we moeten weten dat de verzamelde code _latin1 is. Een betere manier om dit te omzeilen is naar mijn mening het gebruik van de hex- en unhex-coderings- en decoderingsfuncties.

Web5: SQL-injectie - Enkele technieken om filtermechanismen te omzeilen

Er zijn veel andere functies die kunnen worden gebruikt in plaats van hex en unhex.

Laat een reactie achter

Hoe u de kennisgeving van een auteursrechtverzoek in de rechterhoek van het scherm op Windows 10 verwijdert

Hoe u de kennisgeving van een auteursrechtverzoek in de rechterhoek van het scherm op Windows 10 verwijdert

Ziet u een activeringsmelding voor Windows 10 in de rechterhoek van het scherm? In dit artikel wordt uitgelegd hoe u de kennisgeving van een auteursrechtverzoek op Windows 10 verwijdert.

Instructies van AZ voor het installeren van Windows 10 build 14393.222

Instructies van AZ voor het installeren van Windows 10 build 14393.222

Onlangs heeft Microsoft de nieuwste cumulatieve update voor Windows 10 pc-gebruikers uitgebracht, genaamd Build 14393.222. Deze update voor Windows 10 repareert voornamelijk bugs op basis van gebruikersfeedback en verbetert de prestatie-ervaring van het besturingssysteem.

Bescherm uw computernetwerk met Bastion host in slechts 3 stappen

Bescherm uw computernetwerk met Bastion host in slechts 3 stappen

Heeft u computers op uw lokale netwerk die externe toegang nodig hebben? Het gebruik van een bastionhost als poortwachter voor uw netwerk kan een goede oplossing zijn.

3 manieren om snel alle gebeurtenislogboeken in Windows 10 te wissen

3 manieren om snel alle gebeurtenislogboeken in Windows 10 te wissen

Soms moet u oude gebeurtenislogboeken in één keer verwijderen. In deze handleiding laat Quantrimang.com u 3 manieren zien om snel alle gebeurtenislogboeken in Windows 10 Event Viewer te verwijderen.

Hoe u een Windows-toets maakt als uw toetsenbord niet beschikbaar is

Hoe u een Windows-toets maakt als uw toetsenbord niet beschikbaar is

Als je liever een oud klassiek toetsenbord gebruikt, zoals het IBM Model M, dat geen fysieke Windows-sleutel bevat, kun je er eenvoudig meer toevoegen door een sleutel te lenen die je niet vaak gebruikt.

Hoe u een transparante achtergrondmodus creëert op Windows 10

Hoe u een transparante achtergrondmodus creëert op Windows 10

WindowTop is een tool waarmee u alle toepassingsvensters en programma's op computers met Windows 10 kunt dimmen. Of u kunt een donkere achtergrondinterface op Windows gebruiken.

Valse IP-methoden helpen u anoniem toegang te krijgen

Valse IP-methoden helpen u anoniem toegang te krijgen

In veel eerdere artikelen hebben we vermeld dat online anoniem blijven uiterst belangrijk is. Elk jaar lekt privé-informatie uit, waardoor online beveiliging steeds noodzakelijker wordt. Dat is ook de reden dat we virtuele IP-adressen moeten gebruiken. Hieronder zullen we leren over methoden om nep-IP's te maken!

Hoe u de taalbalk op de taakbalk van Windows 8 uitschakelt

Hoe u de taalbalk op de taakbalk van Windows 8 uitschakelt

De Taalbalk op Windows 8 is een miniatuurtaalwerkbalk die is ontworpen om automatisch op het bureaublad te worden weergegeven. Veel mensen willen deze taalbalk echter op de taakbalk verbergen.

Tips om de internetverbindingssnelheid van Linksys te optimaliseren

Tips om de internetverbindingssnelheid van Linksys te optimaliseren

Het maximaliseren van de internetsnelheid is essentieel voor het optimaliseren van uw netwerkverbinding. U kunt een optimale entertainment- en werkervaring hebben met behulp van computers, internet-tv's, gameconsoles, enz.

Hoe u WEP, WPA, WPA2 instelt voor de Linksys-router

Hoe u WEP, WPA, WPA2 instelt voor de Linksys-router

Draadloze connectiviteit is tegenwoordig een noodzaak en daarom is draadloze beveiliging essentieel om de veiligheid in uw interne netwerk te garanderen.