Hvordan man omgår WAF.
|
03-12-2013, 23:57
|
|||
|
|||
Hvordan man omgår WAF.
I dag vil jeg skrive om hvordan man kan bypass WAF filtre.
Før du går i gang SKAL du have en viden i SQLi . Så lad os starte .. Hvad er WAF eller Web Application Firewall ? - En webapplikation firewall ( WAF ) er en appliancen , server plugin, eller filter, der anvender et sæt regler til en HTTP- samtale. Generelt dækker disse regler over nogle fælles angreb såsom cross-site scripting (XSS ) og SQL Injection. Ved at tilpasse reglerne til din application, kan mange angreb identificeres og blokeres. Nogle website bruger WAF -filter. Hvis du har fundet en vuln websteder, der har WAF og du forsøge at injecte et Uinon baseret forespørgsel og den forspørgsel ikke er acceptabelt vil der forkomme en 403 fobidden eller Web Application Firewall advarsel.. Det betyde at forespørgslen eller syntaks, som du injecter er der et WAF-filter ellers er det Blokeret af WAF . Ok nu her er nogle metode til at omgå WAF filtre. 1 ) Kommentarer : SQL comments er en velsignelse for os SQL injections. De giver os mulighed for at omgå en masse af de begrænsninger som web-applikation firewalls, sætter til at dræbe visse SQL-sætninger, som bruges af hackeren til at udføre, angreberns SQL injection. Nogle comments i SQL : Kode: / / , ? , / ** / , #, ? + , ? - , ; 2) Sag Ændring : Nogle WAF's vil kun blokere små angreb. Som vi kan se, kan vi kan nemt omgå dette ved lidt forandringer ? : Mulig Regex filter: Kode: /union\sselect/g 3) Inline commands : Nogle WAF s filters nøgleord som / union \ sselect /ig. Vi kan så omgå dette filter ved at bruge inline commands det meste af tiden, ved mere komplekse eksempler kræver det mere avancerede metode eks. tilføje SQL commands, der yderligere vil adskille de to ord til : Kode: id=1/*!UnIoN*/SeLeCT Læg mærke til udråbstegn. / * ! code * / Udråbstegnet udfører vores SQL-sætning. Inline commands kan bruges i hele SQL-sætningen, så hvis tabel_navn eller information_schema bliver blokkeret af nogle filtreres kan vi bare tilføje flere inline commands. For eksempel, lad os sige et websites filtrer blokkere følgende union,where, table_name, table_schema, =, and information_schema Det er 3 eksempler, og vi skal infiltere vores mål . Til dette ville vi gøre sådan her: Kode: id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*!table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*!TaBlE_ScHeMa*/+like+database()? - Ovenstående kode vil omgå filteret. Bemærk at vi kan bruge "?like?" i stedet for "? = ?" En anden måde at bruge inline comemnts, er når alt synes ikke at virke, kan du prøve at slå applikationens Firewall fra ved at lave en SQL-command ved brug af variabler: Kode: id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()? - Ovenstående kode skulle bypass Union+select filtere selv der hvor fælles inline commands ikke kan. 4) Buffer Overflow :/ Uventet input: En masse WAFS er skrevet i C sprog, der gør dem tilbøjelige til at flyde over eller eller handle anderledes, når det er indlæst med en masse data. Her er en WAF der gør denes arbejde korrekt, men når jeg giver en stor mængde data tillades ondsindede forspørgelser, og de besvares derved også.. Kode: id=1 and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAA 1000 more A?s)+UnIoN+SeLeCT+1,2,version(),4,5,database(),use r(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26 Det overstånede bypass virker. Jeg har selv lige brugt dette mod et websted nu her. 5 ) Erstattet søgeord ( preg_replace Nogle gange vil WAF-filteret fjerne alle forspørgelser, og nøgleord. For eksempel, lad os sige, at vi har et filter, der erstatter "union select" med hvid mellemrum. Vi vil så kunne omgå filteret sådan her: Kode: id=1+UNIunionON+SeLselectECT+1,2,3? Som du kan se , når "union select" er blevet fjernet vil vores "UNION + SELECT" tage "union select"'s plads og med succes injecte vores forespørgsel: Kode: UNION + SELECT +1,2,3 ? 6) Tegnsætning : De fleste WAFs-filters vil afkode et input , men nogle Wafs kan kun afkode et input engang så på den måde kan dobbelt kodning omgå visse filtere. Eksempler på dobbelt kodning : Kode: id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users?+ Når håber i har fået lidt ud af det, jeg synes selv det har været lidt svært at skrive det så alle vil få noget ud af det, men har gjort mit bedste og med hjælp fra en ven til de rigtige formuleringer synes jeg det er gået fint. BTW Morph3s har på et tidspunkt sagt at han vil lave et tool til at omgå WAF :D Lycia Out..
There is 3 rules for a life.
1. fuck. 2. Dont give a fuck. 3. Dont be fucked over |
|||
04-12-2013, 08:40
|
|||
|
|||
RE: Hvordan man omgår WAF.
Tjek evt. den her guide: https://www.shellsec.pw/showthread.php?tid=33
There is 3 rules for a life.
1. fuck. 2. Dont give a fuck. 3. Dont be fucked over |
|||
04-12-2013, 13:20
|
|||
|
|||
RE: Hvordan man omgår WAF. | |||
05-11-2015, 17:31
|
|||
|
|||
RE: Hvordan man omgår WAF.
Så lige tråden blev læst, og kom til at tænke på denne: http://translate.wooyun.io/2015/09/01/By...kbook.html
Den er et par måneder gammel. Alternativt kan man kigge på TamperScripts til SQLMap. |
|||
|
User(s) browsing this thread: 1 Gæst(er)