Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web Spiders automação para web Hacking

Web Spiders automação para web Hacking

Cooler_ mad coder

September 17, 2012
Tweet

More Decks by Cooler_ mad coder

Other Decks in Programming

Transcript

  1. 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://www.bugsec.com.br @Cooler_freenode
  2. • 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... Agenda
  3. • send() “GET /index.php HTTP/1.1\nHost: localhost \t \n “ •

    Então para pegar a resposta um read() • Como resultado temos o source da página :-) O que é um Web Spider ?
  4. • Exemplo • servidor HTTP programa ex2.c • Se receber

    qualquer dado então • String para write() vai ser • "HTTP/1.1 200 Ok\n\n<html>codigo em html<br><b>BUGSEC</b> </html>\n" O que é um Web Spider ?
  5. • No android e no iOS • Na sua TV

    moderna • Gateways de pagamento... Casos de uso
  6. • Parsers !!! • <p>rand(x)</p> • /<p>(.*?)<\/p>/ • split(),strtok(),strcmp... •

    Comparar letra por letra, ou cadeias... • re2c,flex+bison,pcre,posix regex,sed... Minerando dados
  7. • Temperatura.pl • PCRE foreach (@result) { if ($_ =~

    m/<b>(.*?).C<\/b>/) { my $graus="$1"; … Minerando dados
  8. • Seu spider tem permissões para minar os dados ?

    • “robots.txt” Minerando dados
  9. • 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
  10. • 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
  11. 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");
  12. 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");
  13. • 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. Spoofing de User Agent
  14. • 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 Passando certificados com SSL
  15. • Brute Force ? Sim, por que não ? •

    Wp-brute = brute force para wordpress • Fairy = brute force para auth http Autenticação, captcha e OAUTH
  16. • HTTP AUTH , o mais fácil de brutar :-)

    Autenticação, captcha e OAUTH
  17. • 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
  18. • Captcha o que é ? • Como quebrar um

    captcha ? Autenticação, captcha e OAUTH
  19. • OAUTH o que é ? • Facebook • twitter

    • APIs • Tokens • http://oauth.net Autenticação, captcha e OAUTH
  20. • PTC ( Paid to Click) ,Pagam por Cliques !

    • AdSense como google , buscapé,submarino,zura... • Neobux , adbux ,landbux... irc.makecash.org Automação no web browser
  21. • 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 Scanners,fuzzers, hacks...
  22. • Um Bruteforce • -h Site.com/index.jsp • -P 'login=admin?password=!' •

    Depois basta analisar a tabela gerada Scanners,fuzzers, hacks...