Você está na página 1de 41

IDENTIFICANDO VULNERABILIDADES EM

LARGA ESCALA ATRAVÉS DE FALHAS DE


DESENVOLVIMENTO
Quem sou eu:
Desenvolvedor PHP?
-Sim

Entusiasta da área de segurança?


-Sim

Então trabalha com segurança?


-Não, se trabalhar é ganhar dinheiro, resposta é não.

Evangelizador PHP?
-É alguém que ajuda a comunidade de alguma forma, seja divulgando ou
repassando conhecimento ou de alguma outra forma.
Padrão

“qualquer objeto que serve de modelo


para a elaboração de outro”
google
Parte 1

Estudo de uma falha


Estudo de uma falha de segurança
● Estudo de falha
● Identificar o padrão
● Forçar o erro
● Trabalhar injeção
● Eliminar falsos positivos
● Validar retorno
Padrão
Padrão
Padrão
Padrão
Padrão / Desenvolvimento X Vulnerabilidade

XSS
Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious
scripts are injected into otherwise benign and trusted web sites.
Padrão / Desenvolvimento X Vulnerabilidade

XSS
Padrão / Desenvolvimento X Vulnerabilidade

XSS
Padrão => Texto na requisição GET/POST se repete no corpo do texto.

Forçar Erro => Alterar parâmetro GET/POST.

Trabalhar injeção => Alterar tags html e verificar se existe filtros na impressão.

Eliminar falso positivo => Checar se esta realmente esta visível.

Validar retorno => se as tags foram realmente impressas com o texto.


Padrão / Desenvolvimento X Vulnerabilidade

Sql Injection
Attack consists of insertion or "injection" of a SQL query via the input data from the
client to the application.
Padrão / Desenvolvimento X Vulnerabilidade

Sql Injection
Padrão / Desenvolvimento X Vulnerabilidade

Sql Injection
Padrão => É utilizado número ou texto no GET/POST para retorno de informação.

Forçar erro => Inserindo aspas.

Trabalhar injeção => Inserção das aspas.

Eliminar falso positivo => Validar se erro já existe antes das aspas inseridas.
Padrão / Desenvolvimento X Vulnerabilidade

Sql Injection
Validar retorno => Se tiver error de query devido a entrada de parâmetro. Já era!
Exemplo:

Warning: mysql_

PostgreSql Error:

Microsoft OLE DB Provider for Oracle


Padrão / Desenvolvimento X Vulnerabilidade

Local File Download / Path Traversal

A path traversal attack (also known as directory traversal) aims to access files and
directories that are stored outside the web root folder.
Padrão / Desenvolvimento X Vulnerabilidade

Local File Download / Path Traversal


Padrão / Desenvolvimento X Vulnerabilidade
Local File Download / Path Traversal
Padrão => É utilizado caminho do arquivo no GET/POST para escolha de arquivo
para download.

Forçar Erro => Alterando parâmetro GET/POST, referente ao arquivo.

Trabalhar injeção => Navegar pelas pastas encontrando arquivos utilizando ../
procurando pelo arquivo de origem ou index. Exemplo:

site.com.br/index.php?file=../../index.php
Padrão / Desenvolvimento X Vulnerabilidade
Local File Download / Path Traversal
Eliminar falso positivo => Caso venha arquivo vazio ou arquivo de erro.

Validar retorno => Verificar no retorno se aquele é realmente um arquivo de


sistema. O arquivo deve iniciar com:

<? / <?php / <% / <%@


Padrão / Desenvolvimento X Vulnerabilidade

Local File Inclusion

The File Inclusion vulnerability allows an attacker to include a file, usually


exploiting a "dynamic file inclusion" mechanisms implemented in the target
application.
Padrão / Desenvolvimento X Vulnerabilidade

Local File Inclusion


Padrão / Desenvolvimento X Vulnerabilidade
Local File Inclusion
Padrão => É utilizado caminho do arquivo no GET/POST para escolha de arquivo
para leitura.

Forçar Erro => Alterando parâmetro GET/POST.

Trabalhar injeção => Navegar pelas pastas encontrando arquivos utilizando ../

site.com.br/index.php?page=../../etc/passwd

Eliminar falso positivo => Caso venha arquivo vazio.


Padrão / Desenvolvimento X Vulnerabilidade
Local File Inclusion
Valida retorno => Verificar no retorno se aquele é realmente um arquivo de
sistema. Ira mostrar linhas padrões para sistemas linux como etc/passwd.
Parte 2

Localizando alvos
Localizando alvos
● Utilização de buscadores
○ Quais?
■ Google
■ Bing
■ Yandex
■ DukeDukeGo
■ Yahoo
■ Outros
○ Problemas
■ Sensibilidade a automação
■ Paginação
■ Diversificação de tecnologia
Localizando alvos
● Identificações de padrões das vulnerabilidades
○ Via url
○ Estrutura
○ Via Conteúdo da página
■ Título
■ Formulários
■ Corpo
○ Via extensão
○ Outros
Localizando alvos
● Utilização de dorks baseadas em na identificação dos padrões
○ Exploitdb
○ 0day.today
● Extração dos dados.
● Gerenciar requisições.
● Eliminação falsos positivos.
Padrão de dorks
XSS site:com.ar inurl:index.php?titulo=
Padrão de dorks
SQL INJECTION site:com.ar inurl:index.asp?id=
Padrão de dorks
LOCAL FILE DOWNLOAD site:com.ar inurl:descarga.php?file=
Padrão de dorks
LOCAL FILE INCLUSION site:com.ar inurl:index.php?pagina=

FAIL
Extração de dados
PHP Avenger - php avenger sh --dork=”index.php?titulo” --check=”xss”

Baseado no script o inrul do Cleiton Pinheiro


Resultados
XSS
Resultados
Sql Injection
Resultados
Local File Download / Path Traversal
Resultados
Local File Inclusion

EM BREVE...
Bibliotecas
Bibliotecas
Bibliotecas
Fim / Contato
https://github.com/aszone/

https://github.com/lenonleite/

https://packagist.org/packages/aszone/

http://lenonleite.com.br

http://php.lenonleite.com.br/

http://www.aszone.com.br/

@lenonleite

Você também pode gostar