Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

1. Trunchiați conținutul interogării

În cazul în care doriți să ignorați scripturile din interogare. De exemplu, pentru procesarea de mai jos, interogarea necesită condiția activ=1, dar putem comenta (--, -- -, -+, #, /*, /**/, // , ;%00…) și ignora. Când exploatăm, adesea nu știm ce face conținutul rămas al interogării, așa că folosirea comentariilor în acest caz este foarte eficientă.

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

După comentariu, interogarea noastră devine:

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

2. Ocoliți filtrarea cuvintelor cheie

A. Comentarii în linie

Comentariile inline sunt folosite foarte eficient pentru a ocoli filtrarea spațiilor albe. Puteți utiliza următoarele caractere pentru a ocoli filtrarea spațiilor albe: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). De exemplu:

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

Sau ocoliți filtrarea cuvintelor cheie (disponibil cu MySql). În exemplul de mai jos, cuvintele cheie uniune și parolă sunt în lista neagră, așa că au fost blocate. O putem ocoli prin:

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

b. Înlocuiți cuvintele cheie

Când exploatăm injecția SQL, folosim adesea cuvinte cheie precum: union, select, information_schema... În multe cazuri, programatorii pur și simplu înlocuiesc acele cuvinte cheie:

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

Putem vedea cu ușurință că lipsește codul de procesare de mai sus. Dacă este pur și simplu potrivirea modelului, bypass-ul este extrem de simplu. Să aplicăm distincția cu majuscule, unde literele mari și mici sunt interpretate diferit.

Acum, în loc să folosiți cuvântul cheie:

select, union…

Noi vom folosi:

SeLEcT, UniOn…

Baza acestei ocolire este că sistemele de gestionare a bazelor de date nu fac distincție între cuvintele cheie caz și caz.

În unele cazuri, aplicația web va filtra toate sau o parte din anumite cuvinte cheie (unire, selectare...). Vom ocoli după cum urmează:

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

După ce uniunea și selectarea sunt filtrate de aplicația web, vom rămâne cu interogarea corectă, după cum urmează:

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

c. Codificarea caracterelor

Putem ocoli atunci când WAF (Web Application Firewall) blochează cuvintele cheie prin codificarea acestora. Multe aplicații WAF vor decoda interogarea o singură dată și vor filtra cuvintele cheie din lista neagră, apoi haideți să codificăm cererea de două ori, astfel încât să poată fi ocolită în acest caz.

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

3. Ocoliți blocurile ghilimele simple și duble

- Să ne uităm la un exemplu înainte de a afla în mod specific despre această ocolire.

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

În acest scenariu, avem un tabel în baza de date numit utilizatori. Următorul lucru este să cunoașteți numele coloanei din tabel pentru a obține informațiile acesteia. Ca și în interogarea de mai sus, folosim condiția: table_name='users'. Dar dacă atât ghilimele simple ('), cât și ghilimelele duble (") sunt blocate de WAF, nu mai putem folosi „utilizatori” sau „utilizatori”. Deci, cum să rezolvăm această problemă? Sistemul de baze de date încorporat ne oferă o funcție care rezolvă foarte bine această problemă, care este funcția CHAR( ) (pentru Oracle este CHR()). De exemplu, în interogarea de mai sus o vom ocoli prin:

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrareWeb5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

Programatorii PHP sunt foarte familiarizați cu funcția addslashes(). Funcția addslashes() are ca efect adăugarea înainte de caractere speciale precum ghilimele simple ('), ghilimele duble ("), backslash (\), caracterul NUL (octet nul) "\" pentru a ajuta sistemul de gestionare a bazei de date. nicio dificultate și confuzie în manipularea șirurilor care conțin acele caractere? Astfel, atunci când dorim să injectăm în interogare conform scriptului: name='someName' sau '1'='1'-- Rezultatele nu mai sunt cele așteptate.

Cu toate acestea, există o tehnică de a ocoli funcția addslashes() pentru a injecta caractere ghilimele simple ('). Această tehnică este publică de destul de mult timp, iar implementarea acestei tehnici este destul de dificilă, deoarece este legată de stilul de codare aplicat site-ului.

4. Ocoliți eroarea „mix ilegal de colare pentru operațiunea UNION”

În unele sisteme de management (întâlnite în mod obișnuit în MySql), când bazele de date și tabelele au fost setate la collare, atunci când se folosește cuvântul cheie UNION, va fi raportată eroarea „mix ilegal de collare pentru operațiunea UNION”. Setarea colabării se poate datora intenției designerului bazei de date sau din cauza setării implicite a MySql. În cazul utilizării uniunii, trebuie să ne asigurăm că condiția de selectare a valorii din fiecare câmp trebuie să aibă tipul de cod corespunzător definit. În opinia mea, această eroare este destul de comună, în special pentru CMS-urile care rulează Apache MySql. Oamenii pot afla mai multe la: http://bugs.mysql.com/bug.php?id=57926.
În acest caz, putem folosi modalități de conversie la tipul de codificare adecvat.

De exemplu în următorul caz:

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

În interogarea de mai sus, dacă coloana1 are setarea de colare la Unicode-UTF8 sau _latin1, de exemplu, atunci ceea ce este selectat din coloana2 va trebui convertit în codul corespunzător. Putem forța stilul după cum urmează:

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

Vedem un dezavantaj în această metodă de ocolire: trebuie să știm că codul colat este _latin1. O modalitate mai bună de a o ocoli, în opinia mea, este să utilizați funcțiile de codificare și decodare hex și unhex.

Web5: injecție SQL - Câteva tehnici pentru a ocoli mecanismele de filtrare

Există multe alte funcții care pot fi folosite în loc de hex și unhex.

Lasă un comentariu

Cum să eliminați notificarea de solicitare a drepturilor de autor din colțul din dreapta al ecranului pe Windows 10

Cum să eliminați notificarea de solicitare a drepturilor de autor din colțul din dreapta al ecranului pe Windows 10

Vedeți o notificare de activare a Windows 10 în colțul din dreapta al ecranului? Acest articol vă va ghida cum să ștergeți notificarea de solicitare a drepturilor de autor pe Windows 10.

Instrucțiuni de la AZ despre cum să instalați Windows 10 build 14393.222

Instrucțiuni de la AZ despre cum să instalați Windows 10 build 14393.222

Recent, Microsoft a lansat cea mai recentă actualizare cumulativă pentru utilizatorii de PC Windows 10 numită Build 14393.222. Această actualizare lansată pentru Windows 10 remediază în principal erorile pe baza feedback-ului utilizatorilor și îmbunătățește experiența de performanță a sistemului de operare.

Protejați-vă rețeaua de computere cu gazda Bastion în doar 3 pași

Protejați-vă rețeaua de computere cu gazda Bastion în doar 3 pași

Aveți computere în rețeaua locală care au nevoie de acces extern? Utilizarea unei gazde bastion ca gatekeeper pentru rețeaua dvs. poate fi o soluție bună.

3 moduri de a șterge rapid toate jurnalele de evenimente în Windows 10

3 moduri de a șterge rapid toate jurnalele de evenimente în Windows 10

Uneori, poate fi necesar să ștergeți jurnalele vechi de evenimente dintr-o dată. În acest ghid, Quantrimang.com vă va arăta 3 moduri de a șterge rapid toate jurnalele de evenimente din Windows 10 Event Viewer.

Cum să creați o tastă Windows dacă tastatura nu este disponibilă

Cum să creați o tastă Windows dacă tastatura nu este disponibilă

Dacă preferați să utilizați o tastatură clasică veche, cum ar fi IBM Model M, care nu include o tastă fizică Windows, există o metodă ușoară de a adăuga mai multe, împrumutând o tastă pe care nu o utilizați des.

Cum se creează un mod de fundal transparent pe Windows 10

Cum se creează un mod de fundal transparent pe Windows 10

WindowTop este un instrument care are capacitatea de a estompa toate ferestrele aplicațiilor și programele care rulează pe computere cu Windows 10. Sau puteți utiliza o interfață cu fundal întunecat pe Windows.

Metodele IP false vă ajută să accesați anonim

Metodele IP false vă ajută să accesați anonim

În multe articole anterioare, am menționat că păstrarea anonimatului online este extrem de importantă. Informații private sunt scurse în fiecare an, ceea ce face securitatea online din ce în ce mai necesară. Acesta este și motivul pentru care ar trebui să folosim adrese IP virtuale. Mai jos, vom afla despre metodele de a crea IP-uri false!

Cum să dezactivați bara de limbă pe bara de activități Windows 8

Cum să dezactivați bara de limbă pe bara de activități Windows 8

Bara de limbă din Windows 8 este o bară de instrumente de limbă în miniatură concepută pentru a fi afișată automat pe ecranul desktop. Cu toate acestea, mulți oameni doresc să ascundă această bară de limbă în bara de activități.

Sfaturi pentru a optimiza viteza conexiunii la Internet de la Linksys

Sfaturi pentru a optimiza viteza conexiunii la Internet de la Linksys

Maximizarea vitezei de internet este esențială pentru optimizarea conexiunii la rețea. Puteți avea o experiență optimă de divertisment și de lucru folosind computere, televizoare gata de internet, console de jocuri etc.

Cum se configurează WEP, WPA, WPA2 pentru routerul Linksys

Cum se configurează WEP, WPA, WPA2 pentru routerul Linksys

Conectivitatea wireless este o necesitate astăzi și, din această cauză, securitatea wireless este esențială pentru a asigura siguranța în rețeaua dumneavoastră internă.