Você está na página 1de 52

Web Spiders

Automao
para web
Hacking

Coolers-lab $ whoami
Antonio Costa Cooler_
Experincia de 4 anos com desenvolvimento de
sistemas web e web spiders em geral,solues para
problemas em unix...
Desenvolvedor e pesquisador .
Fao 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 formulrios e cookies
Spoofing de user agent
Autenticao,captcha e OAUTH
Passando certificados com SSL
Uso de proxys
Scanners,fuzzers, Hacks...

Cdigos exemplos da
apresentao !

code.google.com
/p/bugsec/
downloads/list
owasp_cooler.zip

Cdigos exemplos da
apresentao !

O que um Web
Spider ?
Geralmente trabalha nos protocolos
HTTP e HTTPs

E agora como fazer abstrao do


contedo ?

Exemplo usando
sockets simples
arquivo ex1.c
Leia
rfc2616

send()
GET /index.php
HTTP/1.1\nHost:
localhost \t \n
Ento para pegar a
resposta um read()
Como resultado temos o source da
pgina :-)

./ex1

Exemplo
servidor HTTP
Arquivo ex2.c

Exemplo
servidor HTTP programa
ex2.c
"HTTP/1.1 200
Ok\n\n<html>codigo em
html<br><b>BUGSEC</b>
</html>\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

Minerando dados

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

Abstrao,normalizao e
profundidade.

Minerando dados

Minerando dados
Seu spider tem permisses 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++...
No precisa recriar a roda com
sockets!

APIs para ajudar no


desenvolvimento

APIs para ajudar no


desenvolvimento

Trabalhando com
formulrios e cookies

Sempre que temos input no


protocolo HTTP temos como os mais
populares mtodos POST e GET.
Em RestFul temos outros como
Delete,Put...
Outras entradas tambm User
Agent

Trabalhando com
formulrios 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 aplicao 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);

Autenticao,
captcha e OAUTH

Brute Force ?
Sim, por que no ?
Wp-brute = brute force para wordpress
Fairy = brute force para auth http

Autenticao,
captcha e OAUTH

Autenticao,
captcha e OAUTH
HTTP AUTH , o mais fcil de brutar :-)

Autenticao,
captcha e OAUTH
Green Fairy Programa para brute force de auth
HTTP
https://github.com/CoolerVoid/Fairy
Fcil para entender
curl_easy_setopt(curl_handle,
CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_easy_setopt(curl_handle,
CURLOPT_USERPWD, auth);

auth==admin:password

Autenticao,
captcha e OAUTH

Captcha o que ?
Como quebrar um captcha ?

Autenticao,
captcha e OAUTH

OAUTH o que ?

Facebook
twitter
APIs
Tokens
http://oauth.net

Automao 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...

Site.com/index.jsp?var=!
&x=0!
Onde temos ! ser trocado
por um PAYLOAD, ento 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,bman,slyfunky),
CONVISO.
Clandestine,sigsegv,muzgo,F117,
bsdaemon, eremitah,crash,Ricardo
Logan, kov...

Você também pode gostar