Explorando vulnerabilidades em REST (Representational State Transfer)

Slides:



Advertisements
Apresentações semelhantes
Falhas mais comuns em aplicações WEB
Advertisements

HTML - HiperText Markup Language Tecnologia para Web
Banco de Dados Prof. Antonio.
Master Pages no ASP.NET 2.0 Adaptado/Retirado do MSDN.
Camada de Acesso a Dados em ASP.NET
Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Segurança na Web: Uma janela de oportunidades
OWASP AppSec Brazil 2010, Campinas, SP
Programas Utilitários Básicos
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Introdução à Engenharia da Computação
Material III-Bimestre Wagner Santos C. de Jesus
Cookies e Sessões Mauro César Lopes. Mecanismos para guardar estados entre requisições HTTP HTTP é um protocolo sem estado Uma requisição é independente.
WebWork e JSP Keven andrade
Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira.
SOA - Arquitetura Orientada a Serviços
Marcos Aurélio Rodrigues
Protocolo HTTP e HTML Prof. Danton Cavalcanti Franco Junior
Segurança Aplicações Java EE Utilizando JAAS
SQL Injection.
XIV Jornada de Cursos .NET com C# Antônio Carlos Bruno Inojosa.
Aula 7 Prof. Naércio Filho Técnico em Informática
Minicurso PHP – Parte 2 João Paulo Ribeiro jpribeiro.com
Aulas ministradas por:
Como fazer um SQL Injection Marco Ferreira Rui Cunha
Design Patterns / Acesso ao banco de dados (java.sql)
Treinamento AJAX Segurança
ASP (Active Server Pages)
RESTful Webservices Lucas Batistussi –
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
Treinamento sobre SQL.
Conceitos Programas Programação Linguagens de Programação SQL.
DESENVOLVIMENTO WEB I HTML Tabelas. Tabelas servem para organizar!!!  Usamos tabelas para organizar conteúdos que tenham relação entre si, procurando.
Especialização em Segurança da Informação MELHORES PRÁTICAS DE PROGRAMAÇÃO Carlos/Cleofas/Rafael/StéphanasSegurança em Aplicações.
Implementação MVC Pedro Antonino.
RESTFul com Slim Framework
Unidade 6 – Formulários HTML Prof.: Henrique Santos
PHP e Formulários Web.
IIS Web Server.
PROGRAMAÇÃO WEB AULA 01 Prof. Gustavo Linhares
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
RSS RDF SITE SUMMARY REALLY SIMPLE SINDICATION RICH SITE SUMMARY Débora Maria Russiano Pereira – Campus Araranguá Thais Garcia - Capes REUNI.
Programação WEB Apresentação.
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
FERRAMENTAS DE DESENVOLVIMENTO WEB Apresentação. Prof. Norton Glaser  Professor universitário desde 2005  Ministra aulas na Fatec Ipiranga e Fatec SC.
SQLite Banco de Dados II.
SQL Server Comando PIVOT.
Ultimos recursos Jobson Ronan
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução a Aplicações Web.
Linguagem SQL Prof. Juliano.
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
Web Services Marden Menezes Sharp Shooters.NET User’s Group Recife-PE11/11/2002.
Conceitos básicos Professor Esp. Diego André Sant’Ana
Segurança no Desenvolvimento de Sistemas.
Trabalho Teórico Sistemas Distribuídos e Tolerância a Falhas
Aula 5 – Formulários GET – POST - REQUEST
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução ao Projeto.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Webservices.
Bancos de Dados Sistema de Banco de dados – sistema de manutenção de registros por computador. É considerado como uma sala.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Projeto Integrador I Implementação de Servidor de Arquivos Eliane Linhares Mota 1.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
PHP + MYSQL. Mysql O MySQL é servidor de banco de dados multiusuário, multitarefa que trabalha com uma das linguagens de manipulação de dados mais popularizadas.
Servidor WEB IGOR ALVES. O protocolo HTTP 1990 surgimento da aplicação www Grande quantidade de informação que pode ser acessada por demanda Buscadores.
Webservices Rest.
Transcrição da apresentação:

Explorando vulnerabilidades em REST (Representational State Transfer) Wagner Elias http://wagnerelias.com

O que é REST? Arquitetura de implementação de webservices que utiliza XML para transferência de estados

Por quê REST? Possuí uma implementação fácil e simples baseado em HTTP Disponibiliza um CRUD (Create, Reade, Update, Delete) Ferramenta fundamental para “web programável” Devido a simplicidade é bastante popular

Web Programável? Conceito que determina que sites utilizam recursos um dos outros Ex.: Amazon disponibiliza seus produtos usando REST e qualquer um poder fazer uma Query e listar os livros da Amazon no seu site

Problemas com REST Por ser “for dummies” possibilita implementações Quick-Dirt Não existe uma linguagem padrão para troca de informações Parser desenvolvidos sem visão de segurança e ausência de validação de informações (Not RESTfull)

GET no Webservices <?xml version="1.0" encoding="ISO-8859-1"?> <users> <user> <username>gandalf</username> <password>!c3</password> <userid>0<userid/> <mail>gandalf@middleearth.com</mail> </user> <username>Stefan0</username> <password>w1s3c</password> <userid>500<userid/> <mail>Stefan0@whysec.hmm</mail> </users> Identifica Eschema

POST no Webservices Injeção de um novo usuário http://www.example.com/addUser.php?username=tony&password=Un6R34kb!e&email=s4tan@hell.com

GET (após injeção de XML) no Webservices <?xml version="1.0" encoding="ISO-8859-1"?> <users> <user> <username>gandalf</username> <password>!c3</password> <userid>0<userid/> <mail>gandalf@middleearth.com</mail> </user> <username>Stefan0</username> <password>w1s3c</password> <userid>500<userid/> <mail>Stefan0@whysec.hmm</mail> <username>tony</username> <password>Un6R34kb!e</password> <userid>500<userid/> <mail>s4tan@hell.com</mail> </users> Novo Usuário Inserido

POST no Webservices injeção de TAGS XML http://www.example.com/addUser.php?username=tony&password=Un6R34kb!e&email=s4tan@hell.com</mail><TagInject>Informação Injetada</TagInject>

GET (após injeção de TAG XML) no Webservices <?xml version="1.0" encoding="ISO-8859-1"?> <users> <user> <username>gandalf</username> <password>!c3</password> <userid>0<userid/> <mail>gandalf@middleearth.com</mail> </user> <username>Stefan0</username> <password>w1s3c</password> <userid>500<userid/> <mail>Stefan0@whysec.hmm</mail> <username>tony</username> <password>Un6R34kb!e</password> <userid>500<userid/> <mail>s4tan@hell.com</mail><taginject>Informação Injetada</taginject> </users> Informação injetada pode ser usada para troca de informações Entre BOTNETS

POST no Webservices SQL Injection Server http://www.example.com/addUser.php?username=tony OR 1=1&password=Un6R34kb!e OR 1=1 Server Select user, pass from login where user=[username] OR 1=1 AND pass=[password] OR 1=1

Possibilidade de usar webservices como vetor de ataques http://www.example.com/addUser.php?username=tony&password=Un6R34kb!e&email=s4tan@hell.com</mail><TagInject>{Malicious Code}</TagInject> Todos os sites que consomem o conteúdo (web programável) e que não tratar adequadamente os dados recebidos pode ser explorado pelo código injetado no webservices

OWASP (Open Web Application Security Project) Wagner Elias http://wagnerelias.com OWASP (Open Web Application Security Project) Brazil Chapter Leader http://www.owasp.org