Web Spiders
Automação
 para web
  Hacking
Coolers-lab $ whoami
  Antonio Costa “Cooler_”
• Experiência de 4 anos com desenvolvimento de sistemas web
  e web spiders em geral,soluções para problemas em unix...
• Desenvolvedor e pesquisador .
• Faço parte do grupo de pesquisa BugSec.
• Fundador da E-zine Cogumelo Binario.
• Programador em ASM,C,C++,Common Lisp,Perl,PHP...
• Trabalho atualmente na CONVISO.
https://github.com/CoolerVoid/
http://code.google.com/p/bugsec/
@Cooler_freenode
Agenda
• O que é um Web Spider ?
• Casos de uso
• Minerando dados
• APIs para ajudar no desenvolvimento
• Trabalhando com formulários e cookies
• Spoofing de user agent
• Autenticação,captcha e OAUTH
• Passando certificados com SSL
• Uso de proxys
• Scanners,fuzzers, Hacks...
Códigos exemplos da apresentação !

code.google.com/p/
bugsec/
downloads/list
• owasp_cooler.zip
O que é um Web Spider ?
• Geralmente trabalha nos protocolos
• HTTP e HTTPs
• E agora como fazer abstração do
  conteúdo ?
• Exemplo usando sockets
  simples

• arquivo ex1.c

• Leia
  rfc2616
• send()
  “GET /index.php
  HTTP/1.1nHost: localhost t n
  “
• Então para pegar a resposta
  um read()
• Como resultado temos o source da página :-)
• ./ex1
• Exemplo
• servidor HTTP
• Arquivo ex2.c
• Exemplo
• servidor HTTP programa ex2.c
• Se receber qualquer dado
  então
• String para write() vai ser
• "HTTP/1.1 200
  Oknn<html>codigo em
  html<br><b>BUGSEC</b></htm
  l>n"
• Ex2.c
• Onde podemos encontrar web
  spiders ?
Casos de uso



• No android e no iOS
• Na sua TV moderna

• Gateways de pagamento...
Casos de uso
• GPS
Casos de uso


• Muitos...
Casos de uso

• Em ferramentas...
Minerando dados
• Parsers !!!
• <p>rand(x)</p>
• /<p>(.*?)</p>/
• split(),strtok(),strcmp...
• Comparar letra por letra, ou cadeias...
• re2c,flex+bison,pcre,posix
  regex,sed...
• Bitwise “bitap”
• Assembly !? o.O
Minerando dados
• Spider para pegar temperatura do tempo




     Como você faria o Parser ???
Minerando dados


• Temperatura.pl
• PCRE

foreach (@result) {
   if ($_ =~ m/<b>(.*?).C</b>/) {
    my $graus="$1";
…
Minerando dados

• Abstração,normalização e
  profundidade.
Minerando dados
• Seu spider tem permissões para minar os dados ?
                 •   “robots.txt”
APIs para ajudar no
                          desenvolvimento


• Ruby a gem Mechanize,curl...
• Perl no CPAN temos
  LWP,WWW::Mechanize,curl...
• Python requests...
• Java,PHP,Common Lisp,C++...

• Não precisa recriar a roda com sockets!
APIs para ajudar no
     desenvolvimento

•
APIs para ajudar no
     desenvolvimento

•
Trabalhando com
                     formulários e cookies



• Sempre que temos input no protocolo
  HTTP temos como os mais populares
  métodos POST e GET.

• Em RestFul temos outros como
  Delete,Put...
• Outras entradas também “User Agent”
Trabalhando com
formulários e cookies
POST e GET com libcurl


POST:
curl_easy_setopt(curl,
CURLOPT_POSTFIELDS,
"bugsec=1&floripa=praia");

GET:
curl_easy_setopt(curl, CURLOPT_URL,
"http://www.bugsec.com.br/site.jsp?var=1");
POST e GET com libcurl


Vide ex3.c
COOKIE:
 res = curl_easy_setopt(curl,
CURLOPT_COOKIELIST,
"Set-Cookie: quem=nozes");

curl_easy_setopt(curl,
CURLOPT_COOKIEJAR,
"cookie.txt");
Spoofing de User Agent

• Como mudar o User Agent ?
Spoofing de User Agent


• Como mudar o User Agent ?

• curl_setopt (curl, CURLOPT_USERAGENT,
  "Mozilla/5.0 NetBSD 4.1");

• Analisar como a aplicação se comporta com
  diferentes User Agent.

• Enganar sistemas anti-bots que usam
  blacklists.
Passando certificados
                                  com SSL


• curl_setopt(x, CURLOPT_SSL_VERIFYPEER, false);


  OU

• curl_setopt(x, CURLOPT_SSL_VERIFYPEER, true);
• curl_setopt(x, CURLOPT_SSL_VERIFYHOST, 2);
• curl_setopt (x, CURLOPT_CAINFO,”/local/CA/cert.crt”);


• CURLOPT_CAPATH
Uso de proxys

• curl_setopt(x,CURLOPT_HTTPPROXYTUNNEL, 1);
• curl_setopt(x, CURLOPT_PROXY,
  “201.66.121.116:666”);
• curl_setopt(x, CURLOPT_FOLLOWLOCATION, 1);
Autenticação,
                         captcha e OAUTH



• Brute Force ?
• Sim, por que não ?

• Wp-brute = brute force para wordpress
• Fairy = brute force para auth http
Autenticação,
    captcha e OAUTH

•
Autenticação,
                          captcha e OAUTH
• HTTP AUTH , o mais fácil de brutar :-)
Autenticação,
                              captcha e OAUTH


• Green Fairy – Programa para brute force de auth HTTP
• https://github.com/CoolerVoid/Fairy
• Fácil para entender


• curl_easy_setopt(curl_handle,
  CURLOPT_HTTPAUTH, CURLAUTH_ANY);
• curl_easy_setopt(curl_handle,
  CURLOPT_USERPWD, auth);


• auth==”admin:password”
Autenticação,
                       captcha e OAUTH
• Captcha o que é ?
• Como quebrar um captcha ?
Autenticação,
                       captcha e OAUTH


• OAUTH o que é ?

•   Facebook
•   twitter
•   APIs
•   Tokens
•   http://oauth.net
Automação no web
                             browser
• PTC ( Paid to Click) ,Pagam por Cliques !
• AdSense como google ,
  buscapé,submarino,zura...
• Neobux , adbux ,landbux...




         irc.makecash.org
Scanners,fuzzers,GPS
                     hacks...

• 0d1n :
 http://code.google.com/p/0d1n/
Scanners,fuzzers, hacks...



• Um Scanner

• Site.com/index.jsp?var=!&x=0!
• Onde temos “!” será trocado
  por um PAYLOAD, então enviamos
  “Request”.
• Logo depois será feito uma busca por
  strings suspeitas na “Response”.
Scanners,fuzzers, hacks...


• Analisamos os dados “hammer.html”
Scanners,fuzzers, hacks...


• Ao clicar em uma linha na tabela
Scanners,fuzzers, hacks...



• Um Bruteforce

• -h Site.com/index.jsp
• -P 'login=admin?password=!'

• Depois basta analisar a tabela gerada
•



• github.com/CoolerVoid/beer
Perguntas ?
Contato
• c00f3r@gmail.com
• acosta@conviso.com.br
Muito Obrigado !
• BugSec (m0nad,iak,sigsegv,bman,slyfunky),
  CONVISO.
• Clandestine,muzgo,F117,bsdaemon,
  eremitah,crash,kov...

Mais conteúdo relacionado

PDF
“Web Spiders” – Automação para Web Hacking
PDF
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
PDF
Automatizando tarefas com Python
PDF
Jug bizus
PDF
Jug bizus (4)
ODP
Desenvolvendo web crawler/scraper com Python
PPTX
Identifique brechas, proteja sua aplicação | Php avenger e octopus
PDF
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
“Web Spiders” – Automação para Web Hacking
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
Automatizando tarefas com Python
Jug bizus
Jug bizus (4)
Desenvolvendo web crawler/scraper com Python
Identifique brechas, proteja sua aplicação | Php avenger e octopus
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade

Mais procurados (8)

PDF
Jurassic JavaScript Park - Rodando Offline até na ilha Nublar!
PDF
Mashups: Criando Valor na Web 2.0
PDF
Construindo uma startup em 54 horas com Python
PDF
Javascript no SAPO e libsapojs
PDF
Mashups: Criando Valor na Web 2.0 (BandTec)
PDF
Desenvolvimento de jogos com HTML5 e javascript
PDF
Ecossistema Ruby e Rails (Serpro BH)
ODP
Construindo um Google Pyrate
Jurassic JavaScript Park - Rodando Offline até na ilha Nublar!
Mashups: Criando Valor na Web 2.0
Construindo uma startup em 54 horas com Python
Javascript no SAPO e libsapojs
Mashups: Criando Valor na Web 2.0 (BandTec)
Desenvolvimento de jogos com HTML5 e javascript
Ecossistema Ruby e Rails (Serpro BH)
Construindo um Google Pyrate
Anúncio

Destaque (8)

PDF
Raptor web application firewall
PDF
Improving spam detection with automaton
PDF
Vivendo de hacking
PPTX
Falsificação de solicitação entre sites csrf.html
PDF
PDF
Development pitfalls
PDF
burlando um WAF
Raptor web application firewall
Improving spam detection with automaton
Vivendo de hacking
Falsificação de solicitação entre sites csrf.html
Development pitfalls
burlando um WAF
Anúncio

Semelhante a Bsides4cooler (20)

PDF
Crawling - Coleta de dados na Web com PHP
ODP
A Biblioteca cURL
KEY
PHP RESTful Web Services - PHPConf'09
PDF
Scraping for fun and glory
PPTX
Web scraping com python
PDF
Scraping for fun and glory annotated
PDF
PHP RESTful Web Services
PDF
Linguagem PHP para principiantes
PDF
Crawleando a web feito gente grande com o scrapy
PDF
O get and post para etico hacker
PDF
REST com Python
PPTX
PDF
Php curl - Coleta de dados na web
PDF
Diapositivos práticos - Integração de Sistemas.pdf
PDF
HTTP: A Base do Desenvolvimento Web - FISL 12
PDF
Raspagem de Dados com Python
ODP
Introdução a Desenvolvimento Web
PDF
Procergs php-seguro
PPTX
Aplicações web parte 1
Crawling - Coleta de dados na Web com PHP
A Biblioteca cURL
PHP RESTful Web Services - PHPConf'09
Scraping for fun and glory
Web scraping com python
Scraping for fun and glory annotated
PHP RESTful Web Services
Linguagem PHP para principiantes
Crawleando a web feito gente grande com o scrapy
O get and post para etico hacker
REST com Python
Php curl - Coleta de dados na web
Diapositivos práticos - Integração de Sistemas.pdf
HTTP: A Base do Desenvolvimento Web - FISL 12
Raspagem de Dados com Python
Introdução a Desenvolvimento Web
Procergs php-seguro
Aplicações web parte 1

Mais de Antonio Costa aka Cooler_ (7)

PDF
Strange security mitigations
PDF
Understand study
PDF
WAF protections and bypass resources
PDF
Static analysis for beginners
PDF
Burlando Waf 2.0
PDF
detector de ladrão com laser
Strange security mitigations
Understand study
WAF protections and bypass resources
Static analysis for beginners
Burlando Waf 2.0
detector de ladrão com laser

Último (19)

PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPTX
ccursoammaiacursoammaiacursoammaia123456
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PDF
Jira Software projetos completos com scrum
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PPT
Conceitos básicos de Redes Neurais Artificiais
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
Banco de Dados 2atualização de Banco de d
PPTX
Tipos de servidor em redes de computador.pptx
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
SEMINÁRIO DE IHC - A interface Homem-Máquina
ccursoammaiacursoammaiacursoammaia123456
Processos no SAP Extended Warehouse Management, EWM100 Col26
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Analise Estatica de Compiladores para criar uma nova LP
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
Processamento da remessa no SAP ERP, SCM610 Col15
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
Jira Software projetos completos com scrum
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Conceitos básicos de Redes Neurais Artificiais
Aula de Engenharia de Software principais caracteristicas
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Banco de Dados 2atualização de Banco de d
Tipos de servidor em redes de computador.pptx

Bsides4cooler

  • 2. Coolers-lab $ whoami Antonio Costa “Cooler_” • Experiência de 4 anos com desenvolvimento de sistemas web e web spiders em geral,soluções para problemas em unix... • Desenvolvedor e pesquisador . • Faço parte do grupo de pesquisa BugSec. • Fundador da E-zine Cogumelo Binario. • Programador em ASM,C,C++,Common Lisp,Perl,PHP... • Trabalho atualmente na CONVISO. https://github.com/CoolerVoid/ http://code.google.com/p/bugsec/ @Cooler_freenode
  • 3. Agenda • O que é um Web Spider ? • Casos de uso • Minerando dados • APIs para ajudar no desenvolvimento • Trabalhando com formulários e cookies • Spoofing de user agent • Autenticação,captcha e OAUTH • Passando certificados com SSL • Uso de proxys • Scanners,fuzzers, Hacks...
  • 4. Códigos exemplos da apresentação ! code.google.com/p/ bugsec/ downloads/list • owasp_cooler.zip
  • 5. O que é um Web Spider ? • Geralmente trabalha nos protocolos • HTTP e HTTPs
  • 6. • E agora como fazer abstração do conteúdo ?
  • 7. • Exemplo usando sockets simples • arquivo ex1.c • Leia rfc2616
  • 8. • send() “GET /index.php HTTP/1.1nHost: localhost t n “ • Então para pegar a resposta um read() • Como resultado temos o source da página :-)
  • 10. • Exemplo • servidor HTTP • Arquivo ex2.c
  • 11. • Exemplo • servidor HTTP programa ex2.c • Se receber qualquer dado então • String para write() vai ser • "HTTP/1.1 200 Oknn<html>codigo em html<br><b>BUGSEC</b></htm l>n"
  • 13. • Onde podemos encontrar web spiders ?
  • 14. Casos de uso • No android e no iOS • Na sua TV moderna • Gateways de pagamento...
  • 16. Casos de uso • Muitos...
  • 17. Casos de uso • Em ferramentas...
  • 18. Minerando dados • Parsers !!! • <p>rand(x)</p> • /<p>(.*?)</p>/ • split(),strtok(),strcmp... • Comparar letra por letra, ou cadeias... • re2c,flex+bison,pcre,posix regex,sed... • Bitwise “bitap” • Assembly !? o.O
  • 19. Minerando dados • Spider para pegar temperatura do tempo Como você faria o Parser ???
  • 20. Minerando dados • Temperatura.pl • PCRE foreach (@result) { if ($_ =~ m/<b>(.*?).C</b>/) { my $graus="$1"; …
  • 22. Minerando dados • Seu spider tem permissões para minar os dados ? • “robots.txt”
  • 23. APIs para ajudar no desenvolvimento • Ruby a gem Mechanize,curl... • Perl no CPAN temos LWP,WWW::Mechanize,curl... • Python requests... • Java,PHP,Common Lisp,C++... • Não precisa recriar a roda com sockets!
  • 24. APIs para ajudar no desenvolvimento •
  • 25. APIs para ajudar no desenvolvimento •
  • 26. Trabalhando com formulários e cookies • Sempre que temos input no protocolo HTTP temos como os mais populares métodos POST e GET. • Em RestFul temos outros como Delete,Put... • Outras entradas também “User Agent”
  • 28. POST e GET com libcurl POST: curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "bugsec=1&floripa=praia"); GET: curl_easy_setopt(curl, CURLOPT_URL, "http://www.bugsec.com.br/site.jsp?var=1");
  • 29. POST e GET com libcurl Vide ex3.c COOKIE: res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, "Set-Cookie: quem=nozes"); curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookie.txt");
  • 30. Spoofing de User Agent • Como mudar o User Agent ?
  • 31. Spoofing de User Agent • Como mudar o User Agent ? • curl_setopt (curl, CURLOPT_USERAGENT, "Mozilla/5.0 NetBSD 4.1"); • Analisar como a aplicação se comporta com diferentes User Agent. • Enganar sistemas anti-bots que usam blacklists.
  • 32. Passando certificados com SSL • curl_setopt(x, CURLOPT_SSL_VERIFYPEER, false); OU • curl_setopt(x, CURLOPT_SSL_VERIFYPEER, true); • curl_setopt(x, CURLOPT_SSL_VERIFYHOST, 2); • curl_setopt (x, CURLOPT_CAINFO,”/local/CA/cert.crt”); • CURLOPT_CAPATH
  • 33. Uso de proxys • curl_setopt(x,CURLOPT_HTTPPROXYTUNNEL, 1); • curl_setopt(x, CURLOPT_PROXY, “201.66.121.116:666”); • curl_setopt(x, CURLOPT_FOLLOWLOCATION, 1);
  • 34. Autenticação, captcha e OAUTH • Brute Force ? • Sim, por que não ? • Wp-brute = brute force para wordpress • Fairy = brute force para auth http
  • 35. Autenticação, captcha e OAUTH •
  • 36. Autenticação, captcha e OAUTH • HTTP AUTH , o mais fácil de brutar :-)
  • 37. Autenticação, captcha e OAUTH • Green Fairy – Programa para brute force de auth HTTP • https://github.com/CoolerVoid/Fairy • Fácil para entender • curl_easy_setopt(curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY); • curl_easy_setopt(curl_handle, CURLOPT_USERPWD, auth); • auth==”admin:password”
  • 38. Autenticação, captcha e OAUTH • Captcha o que é ? • Como quebrar um captcha ?
  • 39. Autenticação, captcha e OAUTH • OAUTH o que é ? • Facebook • twitter • APIs • Tokens • http://oauth.net
  • 40. Automação no web browser • PTC ( Paid to Click) ,Pagam por Cliques ! • AdSense como google , buscapé,submarino,zura... • Neobux , adbux ,landbux... irc.makecash.org
  • 41. Scanners,fuzzers,GPS hacks... • 0d1n : http://code.google.com/p/0d1n/
  • 42. Scanners,fuzzers, hacks... • Um Scanner • Site.com/index.jsp?var=!&x=0! • Onde temos “!” será trocado por um PAYLOAD, então enviamos “Request”. • Logo depois será feito uma busca por strings suspeitas na “Response”.
  • 43. Scanners,fuzzers, hacks... • Analisamos os dados “hammer.html”
  • 44. Scanners,fuzzers, hacks... • Ao clicar em uma linha na tabela
  • 45. Scanners,fuzzers, hacks... • Um Bruteforce • -h Site.com/index.jsp • -P 'login=admin?password=!' • Depois basta analisar a tabela gerada
  • 49. Muito Obrigado ! • BugSec (m0nad,iak,sigsegv,bman,slyfunky), CONVISO. • Clandestine,muzgo,F117,bsdaemon, eremitah,crash,kov...