O documento discute o uso de web spiders para automatizar tarefas na web, como mineração de dados de sites. Ele explica o que são web spiders e como eles funcionam usando sockets HTTP/HTTPS. Também fornece exemplos de código e discussões sobre APIs, formulários, cookies, autenticação e outros tópicos relevantes para o desenvolvimento de web spiders.
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...
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"
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!
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");
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.
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
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”.