SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
1/ 37
®
Burlando um WAF
25 de maio de 2015
®
2/ 37
®
Quem sou ?
● Antonio Costa “Cooler_”
● Desenvolvedor em ASM, C, C++, Lisp, Perl, PHP
etc...
● Pentest, codereview, engenharia reversa e
pesquisas para problemas diversos etc...
● @Cooler_freenode
● https://github.com/CoolerVoid
● acosta@conviso.com.br
● coolerlair@gmail.com
3/ 37
®
Agenda
● Entendendo o problema
● Burlando um WAF
● Automatizando o ataque
● Sugestões para mitigação
4/ 37
®
Entendendo o Problema
● WAF (web application firewall)
● Filtro com conjunto de regras
● Protege de ataques comuns
● Registra informações de ataques
● Bloqueia ataques
5/ 37
®
Entendendo o Problema
● Filtra tanto Request como Response
6/ 37
®
Entendendo o Problema
● Request exemplo:
GET /sell/cars.php?search=<script>alert(document.cookie)</script >
7/ 37
®
Entendendo o Problema
● Match exato
● BlackList...
● “alert(”,
● ”union”
● “select”
● “script”
● “eval”...
8/ 37
®
Entendendo o Problema
● Block por IP
● DoS
Spoofing ?
9/ 37
®
Entendendo o Problema
● Regras não são suficientes...
● Expressão regular “regex” não faz matching
10/ 37
®
Burlando um WAF
11/ 37
®
Burlando um WAF
● Como Detectar o WAF ?
● Descobrimento de um WAF pode se dar por alguns fatores são eles
“header” da Response, por cookies e outros meios.
● Pode-se fazer manualmente, entretanto é interessante automatizar
com ferramentas:
● https://svn.nmap.org/nmap/scripts/http-waf-detect.nse
● https://github.com/sandrogauci/wafw00f
● http://code.google.com/p/imperva-detect/
● …
12/ 37
®
Burlando um WAF
Mixed Case
● Em alguns casos o “patern matching” para um elemento de uma
blacklist seria “case sentive”, ou seja qualquer caractere que esteja
fora do padrão não irá passar por “matching”.
● “select” é diferente de “SeLecT”,”sEleCt”,”seLecT”...
● “script” é diferente de “sCriPT”,”ScRipT”...
● Entretanto o paylaod pode ser interpretado seja ataque de XSS ou SQL
injection, isso pois o ambiente que interpreta não é “case sentive”.
● Exemplo:
● /sell/cars.php?search=<script>alert(document.cookie)</script
● /sell/cars.php?search=<SCripT>AlErt(DoCuMenT.cOoKie)</scrIpt>
13/ 37
®
Burlando um WAF
Replace Keywords
● Alguns casos que não ocorre um block, fazem troca de uma string por outra,
exemplo se encontra palavra “union select” substitui por “” ou seja acaba
trocando por nada( apaga a ocorrência de uma palavra), logo á Request
continua não é bloqueada.
● Como atacante pode se aproveitar disso ?
● Exemplos:
● /cars_show.php?car_id=-30 UNIunionON SELselectECT 6,7,8,9
● Assim que o WAF fazer replace(troca) então temos:
● /cars_show.php?car_id=-30 UNION SELECT 6,7,8,9
14/ 37
®
Burlando um WAF
Spaces to comment
● Trocar espaços em branco por comentários “/**/”, ou mesmo
adicionar comentários em pontos aleatórios, ajuda a fugir do
“match”.
● Exemplos:
● /sell/cars.php?
search=id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()– -
● /sell/cars.php?search=id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*!
table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*!
TaBlE_ScHeMa*/+like+database()– -
15/ 37
®
Burlando um WAF
● Outras formas...
● Objetivo é o mesmo burlar
16/ 37
®
Burlando um WAF
Encodes
● Codificando os payloads podemos enganar o “match”, os mais
usados são encode64, url encode, double url encode...
● Exemplo:
<script>alert(document.cookie)</script
● Url encode:
%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript
● 64 encode
PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3Jpc
HQ=
17/ 37
®
Burlando um WAF
● HPP(HTTP Parameter Pollution)
● Uma técnica que visa enviar muitos parâmetros para assim
burlar filtros de ambientes.
18/ 37
®
Burlando um WAF
● Mude o IP use Proxy
● Mude o User Agent
19/ 37
®
Burlando um WAF
● Outras formas...
● obfuscar
● encodar apenas um
caracter etc...
20/ 37
®
Automatizando o ataque
● Por que automatizar ?
21/ 37
®
Automatizando o ataque
● Payloadmask
https://github.com/CoolerVoid/payloadmask
22/ 37
®
23/ 37
®
● Futuro da ferramenta
github.com/CoolerVoid/payloadmask/issues
24/ 37
®
Automatizando o ataque
● 0d1n
https://github.com/CoolerVoid/0d1n
25/ 37
®
Automatizando o ataque
● 0d1n
https://github.com/CoolerVoid/0d1n
26/ 37
®
Automatizando o ataque
27/ 37
®
Automatizando o ataque
28/ 37
®
Automatizando o ataque
29/ 37
®
Automatizando o ataque
● Exemplo:
./0d1n –host http://localhost/test.php –post
”car_name=ˆ ” –payloads payloads/xss.txt
–find_regex_list payloads/guess.txt –log
name_log –save_response –tamper
urlencode -proxy-rand paylaods/proxy.txt
30/ 37
®
Automatizando o ataque
31/ 37
®
Automatizando o ataque
32/ 37
®
Automatizando o ataque
● Exemplo:
./0d1n –host http://localhost/test.php –post
”car_name=ˆ ” –payloads payloads/xss.txt
–find_regex_list payloads/guess.txt –log
name_log –save_response
33/ 37
®
Automatizando o ataque
● Futuro da ferramenta...
github.com/CoolerVoid/0d1n/issues
34/ 37
®
Sugestões para mitigação
● Não usar Regex que tenha redundância
● Usar Whitelist e não Blacklist.
● Prevenção sempre, contratar serviços para
auditoria na aplicação
● Não esperar que o WAF faça tudo...
● Sanitizar informações e validar
● Mantenha o ambiente Hardenizado.
35/ 37
®
Agradecimentos !
● IAK, Sigsegv, M0nad, Slyfunky, Clandestine,
Robertux, F117, Loganbr, MMxM, eremita, Mente
Binaria, Otacon, Ephexis, pl4nkt0n, necrist,
dr_gordon, sheilong etc... galera do IRC etc..
● Aos Mestres da CONVISO
● Ulisses Castro por ter dado sugestão do “Tamper”
36/ 37
®
Perguntas ???
37/ 37
®

Contenu connexe

Tendances

백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판
백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판
백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판
Minseok(Jacky) Cha
 
100 doors kata solution
100 doors kata solution100 doors kata solution
100 doors kata solution
Steven Mak
 

Tendances (20)

Bounty Craft: Bug bounty reports how do they work, @sushihack presents at Nu...
Bounty Craft: Bug bounty reports  how do they work, @sushihack presents at Nu...Bounty Craft: Bug bounty reports  how do they work, @sushihack presents at Nu...
Bounty Craft: Bug bounty reports how do they work, @sushihack presents at Nu...
 
Pentesting like a grandmaster BSides London 2013
Pentesting like a grandmaster BSides London 2013Pentesting like a grandmaster BSides London 2013
Pentesting like a grandmaster BSides London 2013
 
Aws security with HIDS, OSSEC
Aws security with HIDS, OSSECAws security with HIDS, OSSEC
Aws security with HIDS, OSSEC
 
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEOClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
 
XXE Exposed: SQLi, XSS, XXE and XEE against Web Services
XXE Exposed: SQLi, XSS, XXE and XEE against Web ServicesXXE Exposed: SQLi, XSS, XXE and XEE against Web Services
XXE Exposed: SQLi, XSS, XXE and XEE against Web Services
 
Taking Hunting to the Next Level: Hunting in Memory
Taking Hunting to the Next Level: Hunting in MemoryTaking Hunting to the Next Level: Hunting in Memory
Taking Hunting to the Next Level: Hunting in Memory
 
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB,  or how we implemented a 10-times faster CassandraSeastar / ScyllaDB,  or how we implemented a 10-times faster Cassandra
Seastar / ScyllaDB, or how we implemented a 10-times faster Cassandra
 
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security TeamSecrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
 
InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
 
백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판
백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판
백신 프로그램의 원리와 동작 차민석 20151117_security plus 발표판
 
Secure Code Warrior - Os command injection
Secure Code Warrior - Os command injectionSecure Code Warrior - Os command injection
Secure Code Warrior - Os command injection
 
MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要
 
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
 
Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019
 
Showdown: IBM DB2 versus Oracle Database for OLTP
Showdown: IBM DB2 versus Oracle Database for OLTPShowdown: IBM DB2 versus Oracle Database for OLTP
Showdown: IBM DB2 versus Oracle Database for OLTP
 
Adventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree EngineAdventures with the ClickHouse ReplacingMergeTree Engine
Adventures with the ClickHouse ReplacingMergeTree Engine
 
Fundamentals of Linux Privilege Escalation
Fundamentals of Linux Privilege EscalationFundamentals of Linux Privilege Escalation
Fundamentals of Linux Privilege Escalation
 
100 doors kata solution
100 doors kata solution100 doors kata solution
100 doors kata solution
 
Reverse proxies & Inconsistency
Reverse proxies & InconsistencyReverse proxies & Inconsistency
Reverse proxies & Inconsistency
 
Presenting Radar: Validation and remediation of AWS cloud resources - GRC343 ...
Presenting Radar: Validation and remediation of AWS cloud resources - GRC343 ...Presenting Radar: Validation and remediation of AWS cloud resources - GRC343 ...
Presenting Radar: Validation and remediation of AWS cloud resources - GRC343 ...
 

En vedette

En vedette (20)

Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
Improving spam detection with automaton
Improving spam detection with automatonImproving spam detection with automaton
Improving spam detection with automaton
 
Mudanças de paradigmas
Mudanças de paradigmasMudanças de paradigmas
Mudanças de paradigmas
 
As Parábolas de Jesus parte 2/2
As Parábolas de Jesus parte 2/2As Parábolas de Jesus parte 2/2
As Parábolas de Jesus parte 2/2
 
1. curso de preparação de líderes
1. curso de preparação de líderes1. curso de preparação de líderes
1. curso de preparação de líderes
 
Rússia 2
Rússia 2Rússia 2
Rússia 2
 
Estudo Em Lc 5.27 39
Estudo Em Lc 5.27 39Estudo Em Lc 5.27 39
Estudo Em Lc 5.27 39
 
As Parábolas de Jesus parte 1/2
As Parábolas de Jesus parte 1/2As Parábolas de Jesus parte 1/2
As Parábolas de Jesus parte 1/2
 
Plano de Marketing Boulevard Monde
Plano de Marketing Boulevard MondePlano de Marketing Boulevard Monde
Plano de Marketing Boulevard Monde
 
Todas as Parábolas da Bíblia - Herbert Lockyer
Todas as Parábolas da Bíblia - Herbert LockyerTodas as Parábolas da Bíblia - Herbert Lockyer
Todas as Parábolas da Bíblia - Herbert Lockyer
 
Livro parabolas jesus_2011_etc
Livro parabolas jesus_2011_etcLivro parabolas jesus_2011_etc
Livro parabolas jesus_2011_etc
 
Todas as parabolas da biblia
Todas as parabolas da bibliaTodas as parabolas da biblia
Todas as parabolas da biblia
 
Parábolas de Jesus
Parábolas de JesusParábolas de Jesus
Parábolas de Jesus
 
Slides: Matematica Boulevard Monde
Slides: Matematica Boulevard MondeSlides: Matematica Boulevard Monde
Slides: Matematica Boulevard Monde
 
Bibliologia pr. jonas freitas de jesus
Bibliologia   pr. jonas freitas de jesusBibliologia   pr. jonas freitas de jesus
Bibliologia pr. jonas freitas de jesus
 
Vida e atos dos apóstolos (cairbar schutel)
Vida e atos dos apóstolos (cairbar schutel)Vida e atos dos apóstolos (cairbar schutel)
Vida e atos dos apóstolos (cairbar schutel)
 
ALFABETO PORTUGUÊS-HEBRAICO
ALFABETO PORTUGUÊS-HEBRAICOALFABETO PORTUGUÊS-HEBRAICO
ALFABETO PORTUGUÊS-HEBRAICO
 
Arqueologia biblica
Arqueologia biblicaArqueologia biblica
Arqueologia biblica
 
Biblia de jerusalem (1)
Biblia de jerusalem (1)Biblia de jerusalem (1)
Biblia de jerusalem (1)
 
Alfabeto hebraico
Alfabeto hebraicoAlfabeto hebraico
Alfabeto hebraico
 

Similaire à burlando um WAF

LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
Carlos Santos
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
Carlos Santos
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
Carlos Santos
 

Similaire à burlando um WAF (20)

Burlando Waf 2.0
Burlando Waf  2.0Burlando Waf  2.0
Burlando Waf 2.0
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Putting a-heat-with-thermostat
Putting a-heat-with-thermostatPutting a-heat-with-thermostat
Putting a-heat-with-thermostat
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e feature
 
Funcionamento interno do node.js e boas práticas
Funcionamento interno do node.js e boas práticasFuncionamento interno do node.js e boas práticas
Funcionamento interno do node.js e boas práticas
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Development pitfalls
Development pitfallsDevelopment pitfalls
Development pitfalls
 
See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Tunning da jvm dos comandos às configurações
Tunning da jvm  dos comandos às configuraçõesTunning da jvm  dos comandos às configurações
Tunning da jvm dos comandos às configurações
 
Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...
Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...
Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...
 
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
 
MSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browserMSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browser
 
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
 
Como ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComo ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noite
 
Lean para potencializar a qualidade no software
Lean para potencializar a qualidade no softwareLean para potencializar a qualidade no software
Lean para potencializar a qualidade no software
 

Plus de Antonio Costa aka Cooler_

Plus de Antonio Costa aka Cooler_ (10)

Strange security mitigations
Strange security mitigationsStrange security mitigations
Strange security mitigations
 
Understand study
Understand studyUnderstand study
Understand study
 
WAF protections and bypass resources
WAF protections and bypass resourcesWAF protections and bypass resources
WAF protections and bypass resources
 
Static analysis for beginners
Static analysis for beginnersStatic analysis for beginners
Static analysis for beginners
 
Raptor web application firewall
Raptor web application firewallRaptor web application firewall
Raptor web application firewall
 
0d1n
0d1n0d1n
0d1n
 
0d1n bsides2
0d1n bsides20d1n bsides2
0d1n bsides2
 
Bsides odin
Bsides odinBsides odin
Bsides odin
 
Bsides4cooler
Bsides4coolerBsides4cooler
Bsides4cooler
 
detector de ladrão com laser
detector de ladrão com laserdetector de ladrão com laser
detector de ladrão com laser
 

burlando um WAF

  • 1. 1/ 37 ® Burlando um WAF 25 de maio de 2015 ®
  • 2. 2/ 37 ® Quem sou ? ● Antonio Costa “Cooler_” ● Desenvolvedor em ASM, C, C++, Lisp, Perl, PHP etc... ● Pentest, codereview, engenharia reversa e pesquisas para problemas diversos etc... ● @Cooler_freenode ● https://github.com/CoolerVoid ● acosta@conviso.com.br ● coolerlair@gmail.com
  • 3. 3/ 37 ® Agenda ● Entendendo o problema ● Burlando um WAF ● Automatizando o ataque ● Sugestões para mitigação
  • 4. 4/ 37 ® Entendendo o Problema ● WAF (web application firewall) ● Filtro com conjunto de regras ● Protege de ataques comuns ● Registra informações de ataques ● Bloqueia ataques
  • 5. 5/ 37 ® Entendendo o Problema ● Filtra tanto Request como Response
  • 6. 6/ 37 ® Entendendo o Problema ● Request exemplo: GET /sell/cars.php?search=<script>alert(document.cookie)</script >
  • 7. 7/ 37 ® Entendendo o Problema ● Match exato ● BlackList... ● “alert(”, ● ”union” ● “select” ● “script” ● “eval”...
  • 8. 8/ 37 ® Entendendo o Problema ● Block por IP ● DoS Spoofing ?
  • 9. 9/ 37 ® Entendendo o Problema ● Regras não são suficientes... ● Expressão regular “regex” não faz matching
  • 11. 11/ 37 ® Burlando um WAF ● Como Detectar o WAF ? ● Descobrimento de um WAF pode se dar por alguns fatores são eles “header” da Response, por cookies e outros meios. ● Pode-se fazer manualmente, entretanto é interessante automatizar com ferramentas: ● https://svn.nmap.org/nmap/scripts/http-waf-detect.nse ● https://github.com/sandrogauci/wafw00f ● http://code.google.com/p/imperva-detect/ ● …
  • 12. 12/ 37 ® Burlando um WAF Mixed Case ● Em alguns casos o “patern matching” para um elemento de uma blacklist seria “case sentive”, ou seja qualquer caractere que esteja fora do padrão não irá passar por “matching”. ● “select” é diferente de “SeLecT”,”sEleCt”,”seLecT”... ● “script” é diferente de “sCriPT”,”ScRipT”... ● Entretanto o paylaod pode ser interpretado seja ataque de XSS ou SQL injection, isso pois o ambiente que interpreta não é “case sentive”. ● Exemplo: ● /sell/cars.php?search=<script>alert(document.cookie)</script ● /sell/cars.php?search=<SCripT>AlErt(DoCuMenT.cOoKie)</scrIpt>
  • 13. 13/ 37 ® Burlando um WAF Replace Keywords ● Alguns casos que não ocorre um block, fazem troca de uma string por outra, exemplo se encontra palavra “union select” substitui por “” ou seja acaba trocando por nada( apaga a ocorrência de uma palavra), logo á Request continua não é bloqueada. ● Como atacante pode se aproveitar disso ? ● Exemplos: ● /cars_show.php?car_id=-30 UNIunionON SELselectECT 6,7,8,9 ● Assim que o WAF fazer replace(troca) então temos: ● /cars_show.php?car_id=-30 UNION SELECT 6,7,8,9
  • 14. 14/ 37 ® Burlando um WAF Spaces to comment ● Trocar espaços em branco por comentários “/**/”, ou mesmo adicionar comentários em pontos aleatórios, ajuda a fugir do “match”. ● Exemplos: ● /sell/cars.php? search=id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()– - ● /sell/cars.php?search=id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*! table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*! TaBlE_ScHeMa*/+like+database()– -
  • 15. 15/ 37 ® Burlando um WAF ● Outras formas... ● Objetivo é o mesmo burlar
  • 16. 16/ 37 ® Burlando um WAF Encodes ● Codificando os payloads podemos enganar o “match”, os mais usados são encode64, url encode, double url encode... ● Exemplo: <script>alert(document.cookie)</script ● Url encode: %3Cscript%3Ealert%28document.cookie%29%3C%2Fscript ● 64 encode PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3Jpc HQ=
  • 17. 17/ 37 ® Burlando um WAF ● HPP(HTTP Parameter Pollution) ● Uma técnica que visa enviar muitos parâmetros para assim burlar filtros de ambientes.
  • 18. 18/ 37 ® Burlando um WAF ● Mude o IP use Proxy ● Mude o User Agent
  • 19. 19/ 37 ® Burlando um WAF ● Outras formas... ● obfuscar ● encodar apenas um caracter etc...
  • 20. 20/ 37 ® Automatizando o ataque ● Por que automatizar ?
  • 21. 21/ 37 ® Automatizando o ataque ● Payloadmask https://github.com/CoolerVoid/payloadmask
  • 23. 23/ 37 ® ● Futuro da ferramenta github.com/CoolerVoid/payloadmask/issues
  • 24. 24/ 37 ® Automatizando o ataque ● 0d1n https://github.com/CoolerVoid/0d1n
  • 25. 25/ 37 ® Automatizando o ataque ● 0d1n https://github.com/CoolerVoid/0d1n
  • 29. 29/ 37 ® Automatizando o ataque ● Exemplo: ./0d1n –host http://localhost/test.php –post ”car_name=ˆ ” –payloads payloads/xss.txt –find_regex_list payloads/guess.txt –log name_log –save_response –tamper urlencode -proxy-rand paylaods/proxy.txt
  • 32. 32/ 37 ® Automatizando o ataque ● Exemplo: ./0d1n –host http://localhost/test.php –post ”car_name=ˆ ” –payloads payloads/xss.txt –find_regex_list payloads/guess.txt –log name_log –save_response
  • 33. 33/ 37 ® Automatizando o ataque ● Futuro da ferramenta... github.com/CoolerVoid/0d1n/issues
  • 34. 34/ 37 ® Sugestões para mitigação ● Não usar Regex que tenha redundância ● Usar Whitelist e não Blacklist. ● Prevenção sempre, contratar serviços para auditoria na aplicação ● Não esperar que o WAF faça tudo... ● Sanitizar informações e validar ● Mantenha o ambiente Hardenizado.
  • 35. 35/ 37 ® Agradecimentos ! ● IAK, Sigsegv, M0nad, Slyfunky, Clandestine, Robertux, F117, Loganbr, MMxM, eremita, Mente Binaria, Otacon, Ephexis, pl4nkt0n, necrist, dr_gordon, sheilong etc... galera do IRC etc.. ● Aos Mestres da CONVISO ● Ulisses Castro por ter dado sugestão do “Tamper”