Sunteți pe pagina 1din 6

SQLInjectionMetodedebypass. ScrisdeReckon&danyweb09RomanianSecurityTeam 1)Introducere 2)Celemaiuzualebypassuripentruspatii 3)Prezentareaexploitului 4)Metodararfolositasiexplicatadenoi.

1)Introducere

Suntsituatiicandnuestepermisafolosireaspatiilorsausuntfiltratesiinlocuitecualtcaracter. Exista4metodedeafacebypasslaacestaprotectie: Folosireacomentariilorinline. Caractereinurlencode. Folosireaparantezelorrotunde. Metodararfolositasiexplicatadenoi. 1.FolosireaComentariilorinline Insqlindiferentdetipuldeserver/**/reprezintauncomentariuoriceesteintrodusintre**nu suntinterpretatedecatreinterpreatorulsql. Leputemfolosipentrualeinlocuispatiilefaraaafectainjectiafolositainfelulurmator: /**/and/**/0/**/union/**/select/**/1,2,3,4++ Existafiltrecareeliminasauinterzicsegventadecaractere/**/,inacestcazputemfolosi comentarileinlineastfel: /*test*/and/*test/0/*test*/union/*test*/select/*test*/1,2,3,4++ /*test*/inacestfel,filtrulnuvamaidetectasiruldecaractere/**/sevatrecedeeliarsintaxa sqlnuvafiafectata 2.Caractereurlencode

+=>Inurlencode+inseamnaspatiudacafiltrulnostrunuvaverificaexistentacaracterului +sevatreceusordeeldeoarece+vafiinterpretatcaspatiu. %0d:%0dsauCR(carriagereturn)sepoatefolosiinlocdespatiuiaracestanuvaafecta sintaxacorecta.

%0C:%0csauformfeedsepoatefolosideasemeneainlocdespatiu. %0B:Unaltcaracterinterpretatcaspatiu. %0a:%0asaunewlinesepoatefolosiinlocdespatiudeoareceacestareprezintacaracterul derandnouiaracestavaputeadesparticomenzileperanduriseparateceacenureprezintao eroaredesintaxa. %a0:Unaltcaracterinterpretatcaspatiu %09:Unaltcaracterinterpretatcaspatiu %23%0a:%23inurlencodereprezinta#iaracestaareroldecomentariuinmysql,iarfaptulca esteintrodussi%0aunrandnoudupafacecaaceasintaxasafiecorectachiardacanucontine spatii. 3.Folosireaexpresiilorintreparantezerotunde Spreexemplusintaxaid=1and0unionselect1,2,3,4poatefitransformatain id=(1)and(0)union(select(1),(2),(3),(4)) Sau id=(1)and(0)union(select(1),(2),(3),(4)from(information_schema.tables)where(table_schema=da tabase())) Maiexactvalorilevorfiintroduseintreparanteze,iarexpresiiledecaresuntdeterminatelanga valori. Spreexempluin:id=1and1=1 id=1estevaloarea,trebuieintrodusaintreparanteze.andesteexpresiacareseleagade valoareaceastavafilasatanormal,iar1=1estevaloaredeoarecerezultatulacestuiavafio valoarefie1incazpozitivsau0incaznegativ 4.Metodararfolositasiexplicatadenoi. Sepresupunecaavemunfiltrucareneblocheazaspatiuldupaselectsauandsauorder,group etciarmetodelementionatemaisusnufunctioneaza. Ceputemface?Putemfolosisegventa!!sau**** Unde****=Oricevaloarenumerica. Ex:unionselect13371,2,3,4 Ceseintampla?Simpluooperatiematematica.InterpretatorulSQLvaconsideraca121este oscaderematematica,iarrezultatulvafi"aruncat"peprimacoloana:

Cuajutorulacesteimetodeputemcreamaimultecombinatiicadeexplu1*

Maisussevainterpretainmultirea1*1carevada1. Altevariante: Aicisevaincerca1laputerea1 Alteexemple:

1~ 1! 1&& 1% Peacelasiprincipiusepoatefolosisi(1)* Folosirea@inlocdespatiuldedupaselect:

Cesevaintampla?@indicainceputulunuinumedevariabila,iar@1vafiinterpretatca numedevariabilaiarrezultatullui@1estenullpentrucavariabilei@1nuiafostatribuitun rezultat. Deaiciputemcreadupaprincipiuldemaisusmaimultevariatii: @* @&& @^ @~ @! VariantepentruSQLInjection(MySQL,MsSQL&PostgreSQL): MySQL:

MsSQL:

PostgreSQL:

Tutorialrealizatintrunscopstricteducational. RomanianSecurityTeamdanyweb09&Reckon.

S-ar putea să vă placă și