SlideShare uma empresa Scribd logo
1 de 78
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
WEBGOAT
TRABALHO FINAL DE TÉCNICAS DE SEGURANÇA DA PROTEÇÃO –
GESTÃO DE AMEAÇAS E VULNERABILIDADES
Cleyton Tsukuda Kano – RM 43443
Danilo Luiz Favacho Lopes – RM 43050
Décio Vicente Castaldi – RM 43052
Paulo Kuester Neto – RM 42987
MBA em Gestão de Segurança da Informação
19º SEG
São Paulo, Março de 2013.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
SUMÁRIO
1. INTRODUÇÃO....................................................................................................3
1.1. Problema ......................................................................................................3
1.2. Objetivo.........................................................................................................6
1.3. Motivação......................................................................................................7
1.4. Metodologia ..................................................................................................7
1.5. Ambiente utilizado.........................................................................................8
1.6. Informações adicionais sobre as ferramentas auxiliares ...............................8
2. PROJETO WEBGOAT......................................................................................10
2.1. Open Web Application Security Project (OWASP) ......................................10
2.2. WebGoat.....................................................................................................10
2.3. Didática.......................................................................................................12
3. COLOCANDO EM PRÁTICA ............................................................................13
3.1. Lição Geral:.................................................................................................13
3.1.1. HTML basics:........................................................................................13
3.1.2. HTML splitting:......................................................................................14
3.2. Primeira Lição – Falhas no controle de acesso: ..........................................17
3.3. Segunda Lição – Segurança no AJAX: .......................................................29
3.4. Terceira Lição – Falhas de autenticação:....................................................52
3.5. Lição Desafio: .............................................................................................63
4. CONCLUSÃO ...................................................................................................70
5. REFERENCIAL BIBLIOGRÁFICO ....................................................................71
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
1. INTRODUÇÃO
1.1. Problema
É inegável que vivemos hoje em um mundo amplamente dependente de tecnologia,
se por um lado essa popularização alavancou a nossa sociedade a uma velocidade
evolutiva nunca antes experimentada, isso também elevou os riscos, pois hoje
serviços vitais como energia, transportes, alimentos e sistemas financeiros, só para
citarmos alguns dos mais críticos, estão em maior ou menor grau conectados
através de plataformas e sistemas.
Tendo em vista esse cenário, é imperativa que as organizações hoje devam ter uma
preocupação e um plano estruturado que leve em conta a segurança da informação,
do contrário, correm o risco de ter suas operações comprometidas, sua
competitividade diminuída ou em casos mais extremos o fechamento do próprio
negócio.
O que antes era privilégio ou motivo de preocupação apenas de organizações
militares, governos ou mais tarde grandes conglomerados empresariais, hoje é parte
do modelo de médias e pequenas empresas que esperam estarem aliadas as
melhores práticas para garantir a relação de confiança com seus fornecedores,
grandes clientes, abertura de capital entre outros.
Pesquisa recente da Ernst & Young mostra que 55% das empresas elevarão seus
investimentos com segurança da informação. Embora esse ambiente pareça
promissor existe um longo caminho a ser percorrido, pois existe ainda um número
grande de empresas onde a segurança da informação ainda não é visualizada como
estratégica, nem como um investimento para o negócio e sim como um custo a mais
na planilha financeira.
A segurança da informação vem ganhando cada dia mais força, mas apesar disso
ainda existem diversas aplicações, e podemos destacar negativamente
principalmente aquelas expostas a Internet (web pessoais e organizacionais) que
apresentam falhas básicas relacionadas à segurança.
Em 2011, Magno (Logan) Rodrigues (2011), conduziu um trabalho que apontou
algumas destas falhas de segurança nas aplicações web, tais como o banco de
currículos das organizações C.E.S.A.R e Pitang - Agile IT (que utiliza o mesmo
sistema da C.E.S.A.R) (Figura 1 e Figura 2 respectivamente).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 1 – SQL Injection no banco de currículos da organização C.E.S.A.R
Fonte: (RODRIGUES, 2011)
Figura 2 - SQL Injection no banco de currículos da organização Pitang – Agile IT
Fonte: (RODRIGUES, 2011)
Através desta falha na aplicação destas duas organizações, Rodrigues (2011)
apresentou a obtenção de acesso a dados sobre o sistema deles (Figura 3 e Figura
4).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 3 - SQL Injection no banco de currículos da organização C.E.S.A.R
Fonte: (RODRIGUES, 2011)
Figura 4 - SQL Injection no banco de currículos da organização Pitang – Agile IT
Fonte: (RODRIGUES, 2011)
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Este é um pequeno exemplo ou amostra dos riscos envolvidos ao se delegar a
segundo plano a preocupação com segurança da informação.
Esforços tem sido empreendidos para elevar a conscientização sobre as falhas e
riscos na má implementação de desenvolvimento de aplicações web no que
concernem as práticas de segurança de informação. Neste ponto podemos destacar
a organização sem fins lucrativos OWASP (open software security community) que
conduz através de alguns projetos essa tarefa.
Dentre os diversos projetos, podemos sem dúvida apontar o WebGoat framework
desenvolvido para incentivar o estudo e testes das principais falhas de segurança
em ambientes web de uma maneira prática, como destaque.
Pelo contexto dado, é de fundamental importância que os desenvolvedores,
designers, arquitetos de soluções organizacionais se eduquem e conscientizem-se a
respeito da segurança da informação para aprimorarem e terem o mínimo de
segurança nas soluções finais de suas aplicações (RODRIGUES, 2011). E através
da aplicação WebGoat torna-se possível verificar as vulnerabilidades na prática e
entender como funciona o princípio básico da mente de um atacante, para assim
encontrar um meio de evitar que estas falhas básicas estejam presentes nas
aplicações web.
1.2. Objetivo
Este trabalho de pesquisa tem por objetivo demonstrar de uma maneira geral e
tomando como exemplo algumas das lições presentes na ferramenta web
denominada de WebGoat (versão padrão, não sendo a versão de desenvolvedor),
algumas das teorias discutidas na disciplina - gestão de ameaças e vulnerabilidades
, explorando, além dos ensinamentos introdutórios apresentados pelo tópico da lição
geral da ferramenta, as primeiras três lições de segurança da informação para
aplicações web e a lição desafio.
Dessa forma serão trabalhadas no total as seguintes cinco lições:
a. Lição Geral (HTML basics e HTML splitting);
b. Falhas no controle de acesso;
c. Segurança no AJAX;
d. Falhas de autenticação;
e. Lição Desafio.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
1.3. Motivação
A escolha por esta aplicação web se deu pelo interesse do grupo (formado por
estudantes do curso de MBA em Gestão de Segurança da Informação) em aprimorar
o conhecimento a respeito da segurança da informação, através de exercícios
práticos neste ambiente propositalmente inseguro apresentado pelo WebGoat.
A possibilidade de demonstrar praticamente conceitos que normalmente só
teorizados, o aprendizado da anatomia dos ataques sem dúvida tem impacto direto
na melhoria da formação dos integrantes deste trabalho e aos demais alunos que
terão a possibilidade de ver com detalhes o uso desta ferramenta e aplica-la no local
de trabalho estando melhores preparados para proteger as informações da empresa
em que atuam ou irão atuar e foram fatores preponderantes na escolha do tema.
A relevância e atualidade das lições aqui aprendidas e demonstradas na ferramenta
também podem ser destacadas como sendo de forte influência como decisivos na
condução desse processo acadêmico.
Por fim, o fato de a ferramenta ser open source e a amplitude e aplicabilidade de tal
trabalho levantam maiores possibilidades para que outros profissionais também
interessados em aprimorar conhecimentos ou aplicar técnicas de análise de
vulnerabilidades possam ser implementados sem a necessidade de um custo muitas
vezes impeditivo de aplicações comerciais.
1.4. Metodologia
Este tópico visa elencar como foi desenvolvido o percurso metodológico no qual o
trabalho se apoia. Além da correta documentação dos recursos e sistemas
envolvidos são listados os processos de estudo das diferentes lições ou atividades
referenciadas no trabalho.
Inicialmente o ambiente de forma básica pode ser definido como uma máquina
virtual com o sistema operacional Linux, servidor web apache e servidor de
aplicações tomcat onde a ferramenta webgoat será instalada e configurada para
posterior teste e realização das tarefas.
Os sistemas e versões utilizados neste trabalho de pesquisa são listados no item 1.5
permitindo que posteriores pesquisas, que se valham deste trabalho possam
reproduzir se necessário o ambiente inicial objeto de estudo.
A organização do trabalho está dividida em tópicos, sendo que no tópico dois será
de dada de maneira simplificada como é feito o desenvolvimento da ferramenta
WebGoat, a responsável por sua concepção e sua missão. Ainda neste tópico será
exposto o objetivo da ferramenta e uma visão histórica de sua origem. Por fim, como
está colocada a didática da ferramenta e seu uso.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
No tópico três, serão demonstradas as lições que foram elencadas nos objetivos da
pesquisa, seus problemas e como podemos chegar às soluções demonstrando o
caminho de resolução. O estudo da ferramenta será feito através da exploração de
quatro lições apresentadas.
No tópico quatro será dada a conclusão deste trabalho de pesquisa revisitando os
objetivos de pesquisa para verificar sua correta aplicação.
1.5. Ambiente utilizado
 Sistema operacional Linux Ubuntu 10.10
 Java Development Kit (JDK) 1.7.0.11
 Tomcat 7.0.35
 WebGoat 5.4 Standard
 WebScarab Lite v20070504-1631
 Web-browser Mozilla Firefox 3.6.10 com Add-ons:
o Tamper Data 11.0.1
o Firebug 1.7.3
1.6. Informações adicionais sobre as ferramentas auxiliares
 Tomcat: é um software open source que se utiliza das tecnologias Java
Servlet e JavaServer Pages (APACHE SOFTWARE FOUNDATION, 2013),
por isso a necessidade de se possui o Java instalado no ambiente.
Esta ferramenta atua no ambiente montado pelo grupo para atuar como um
servidor web para a aplicação WebGoat.
 WebScarab: é um framework para análise de aplicações web que se
comunica com elas através dos protocolos HTTP e HTTPS (OWASP, 2013c).
Em algumas das lições trabalhadas pelo grupo, esta ferramenta é utilizada
como um proxy (servidor intermediário) para interceptação das requisições
criadas pelo web-browser e das respostas provenientes do servidor (neste
caso, o servidor Tomcat). Assim torna-se possível a manipulação dos dados
que estão sendo trafegados entre o cliente e o servidor.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
 Tamper Data: é um complemento desenvolvido para o web-browser Firefox
da Mozilla, para interceptar a comunicação entre o cliente e servidor
(requisição e resposta) e assim visualizar e modificar os cabeçalhos e
parâmetros HTTP/HTTPS (JUDSON, 2010).
Esta ferramenta foi utilizada em algumas das lições trabalhadas pelo grupo
para modificar parâmetros que estavam sendo passados e também para
visualizar alguns comportamentos das lições e o que está sendo passado
como parâmetro, em busca de pistas para completar a lição. É uma
ferramenta menos robusta que o WebScarab, portanto, é utilizada
principalmente com o objetivo de auxiliar em tarefas mais simples.
 Firebug: é um complemento desenvolvido para o web-browser Firefox da
Mozilla, que se permite ter dentro do próprio web-browser uma ferramenta de
desenvolvimento (HEWITT; ODVARKO; CAMPBELL, 2013). Com ele é
possível editar, depurar e monitorar os comportamentos dos códigos HTML,
CSS e JavaScript de qualquer página web e em tempo real (HEWITT;
ODVARKO; CAMPBELL, 2013).
Esta ferramenta foi utilizada pelo grupo para observar, no código HTML, por
alguma pista para concluir a lição. Em alguns casos serviu para editar o
código HTML a fim de burlar alguns comportamentos e em uma das lições,
para o ajuste de uma tag HTML para que o WebScarab conseguisse atuar. E
o recurso de depuração foi também utilizado para observar o comportamento
da aplicação em uma das lições.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
2. PROJETO WEBGOAT
2.1. Open Web Application Security Project (OWASP)
A Fundação OWASP (Open Web Application Security Project) surgiu em 2001 e em
2004, a OWASP foi estabelecida como organização internacional não lucrativa, por
sua natureza não possui associação com empresas ou serviços ditos comerciais.
Seus fóruns, aplicativos e documentos são abertos ao público em geral e está é uma
das filosofias com que foi concebida.
A missão é o de promover o desenvolvimento seguro de aplicações e serviços de
internet, seja promovendo conferências, artigos ou através dos projetos que ela
mesma desenvolve. Por sua natureza, de código aberto, ela foi imbuída de uma
transparência que se reflete inclusive nas finanças. Respeito, organização e
inovação também podem ser listados como valores da Fundação OWASP.
Conforme citado anteriormente, a OWASP é responsável pelo desenvolvimento de
informações em materiais como documentos e aplicações gratuitas e de código
aberto (open-source), onde, dentre eles encontra-se o projeto WebGoat (OWASP,
2013a) que será objeto de estudo deste trabalho.
Por sua missão a OWASP auxilia e ajuda em muito a dar visibilidade à segurança da
informação, informando empresas e pessoas sobre os riscos na segurança de
softwares (OWASP, 2013a).
2.2. WebGoat
O WebGoat é uma aplicação web desenvolvida pela OWASP, construída sob a
linguagem de programação Java na plataforma J2EE (Java Platform, Enterprise
Edition) e concebida propositalmente para ser insegura, contendo falhas, com o
objetivo de ensinar lições de segurança em aplicações web (OWASP, 2013b).
A origem do nome deste projeto, segundo a organização responsável por ele
(2013b), é devido ao sentimento desconfortável dos desenvolvedores por não
conhecerem muito bem a respeito da segurança de suas aplicações e que eles não
deveriam se sentir assim, pois até os melhores programadores cometem erros na
segurança. Como um jeito de não se sentirem mal por isso e responsabilizarem a si
próprios por tal desconhecimento, eles necessitam de um culpado por isso, algo
conhecido em inglês como scape-goat (OXFORD, 2008).
Com esta aplicação é possível verificar diversos tipos de vulnerabilidades existentes
fornecendo um ambiente de aplicação web de aprendizado, com navegação através
de lições em diferentes níveis. Vendo na prática como funciona e onde as
vulnerabilidades residem, torna-se possível conhecer a visão do atacante para
descobrir as brechas das aplicações. Assim, passa a ser possível aplicar testes na
aplicação desenvolvida para evitar que estas mesmas vulnerabilidades estejam
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
presentes em ambientes reais. É fundamental que a segurança da informação seja
incluída em todo o ciclo de desenvolvimento de aplicações e serviços que são
disponibilizados, seja somente para o público interno de uma organização ou
exposta na Internet para o público em geral. Essa boa prática minimizará falhas e
riscos desnecessários para a empresa podendo inclusive ter impactos financeiros ou
exposição de dados sigilosos que muitas vezes levam a perda maciça de receita ou
credibilidade.
Desenvolvedores atentos e aprendendo anatomia de ataques podem se valer de
uma melhor prática de programação e sem dúvida isso não deve ser negligenciado.
No entanto a ideia não é sair verificando vulnerabilidades em aplicações de outrem
sem a devida permissão (OWASP, 2013b).
Segundo o site da organização desenvolvedora (2013b), existe a pretensão de
expandir futuramente a aplicação com o objetivo de se tornar uma plataforma de
benchmark e um website para servir de Honeypot (um tipo de armadilha para
invasores).
O WebGoat não se encontra hospedado em um servidor de internet, por isso, antes
de iniciar a navegação é necessário instala-lo em uma estação de trabalho, que
pode ser no próprio sistema residente em seu computador como uma máquina
virtualizada para essa tarefa. Seu pré-requisito é possuir a máquina virtual Java
(JVM) e o servidor web Apache Tomcat (OWASP, 2013b). Os sistemas operacionais
suportados atualmente são: Linux, OS X Tiger e Windows (OWASP, 2013b).
Na Figura, é possível visualizar a tela inicial do WebGoat depois de já instalado,
onde do lado esquerdo as lições ou tópicos estão apresentados por temas.
Figura 5 – Interface da aplicação WebGoat
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
2.3. Didática
A didática do WebGoat é baseada em ensinamentos sobre segurança em
aplicações web. Através de um web-browser o usuário consegue navegar por entre
as lições e ainda acompanhar a evolução através de um scorecard (OWASP,
2013b).
Cada uma das lições dá uma visão geral sobre a vulnerabilidade que está sendo
trabalhada e contém problemas, tais como (OWASP, 2013b):
a. Cross-site Scripting (XSS);
b. Falhas no controle de acesso (cross site request forgery (CSRF), acesso
remoto de administrador, etc.);
c. Falhas de autenticação e gerência de sessões (roubo de seção, spoof em
cookie de autenticação, etc.);
d. Manipulação de campos ocultos/parâmetros;
e. Falhas de injeção (SQL Injection; Log spoofing, XPath injection, etc.);
f. Falhas em Web Services (web service SQL/SAX injection, WSDL scanning,
etc.);
g. Vulnerabilidades no código (pistas e comentários no HTML);
h. Buffer overflows;
i. Segurança no AJAX (DOM/XML/JSON injection, etc.);
j. E contém também uma lição desafio, cujo objetivo é quebrar a autenticação,
roubar os dados de cartão de crédito e desfigurar o site, mais conhecido
como deface.
A análise das lições envolve basicamente a análise do conteúdo no lado cliente
(client side) como o código fonte em HTML e os scripts, assim como a comunicação
entre o cliente o servidor e também os cookies e dados locais (OWASP, 2013b).
No próximo item do trabalho, Colocando em Prática, serão exemplificadas cinco
lições tendo como objetivo a explicação do uso da ferramenta WebGoat bem como o
aprendizado sobre a anatomia dos ataques.
O escopo desse trabalho se limita ao desenvolvimento de alguns desses temas
como HTML básico, Falhas no controle de acesso, Segurança do AJAX e Falhas de
autenticação, porém a ferramenta WebGoat contém inúmeros outros que podem e
devem ser explorados a fim de conhecer melhor um cenário real onde múltiplos
ataques podem ser utilizados contra uma aplicação real.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
3. COLOCANDO EM PRÁTICA
3.1. Lição Geral:
3.1.1. HTML basics:
O objetivo desta lição é verificar o funcionamento básico da linguagem HTML
através da manipulação de caracteres que podem ser inseridos no campo de
um formulário web por exemplo. Familiarizar-se com alguns campos de sessão
do HTTP, cookies e códigos.
No campo disponível, pede-se que seja inserido um nome ou um texto
qualquer (Figura 6)
Figura 6 – Interface da lição geral: HTML Basics
Depois de realizada a ação, o texto é apresentado de forma reversa (Figura 7).
Figura 7 – Confirmação de sucesso na lição geral: HTML Basics
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
3.1.2. HTML splitting:
O objetivo desta lição é explorar a falta de validação para o campo, onde é
possível inserir códigos que são validados pela aplicação.
Muitas vezes dependendo de como é feita a validação dos dados por parte da
aplicação web, inserir determinados caracteres, variáveis ou códigos pode
levar a um comportamento não previsto inicialmente pela aplicação, o que sem
dúvida leva a um comprometimento dos dados que podem ser impressos ou
manipulados.
Inicialmente é inserido o seguinte código (Figura 8):
en%0d%0aHTTP/1.1+200+OK
Que representa:
en
HTTP/1.1 200 OK
Figura 8 – Inserção de código simples
Após a inserção do código, é possível verificar a interpretação do código e que
foi detectado um ataque (Figura 9).
Figura 9 – Interpretação de código e detecção de ataque
Posteriormente é inserido o seguinte código (Figura 10), conforme sugere a
mensagem apresentada pela anterior:
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
en%0d%0aHTTP/1.1+304+Not+Modified
Representando:
en
HTTP/1.1 304 Not Modified
Figura 10 – Inserção de código para HTTP Splitting
Agora é possível verificar novamente que houve a interpretação do código e
houve sucesso no primeiro estágio desta lição (Figura 11).
Figura 11 – Interpretação do código e conclusão do primeiro estágio
Conforme é apresentado pela mensagem da Figura anterior, o seguinte código
(Figura 12) é inserido:
foobar%0d%0aContent-
Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-
Type:%20text/html%0d%0aLast-
Modified:%20Mon,%2027%20Oct%202060%2014:50:18%20GMT%0d%0a
Content-Length:%2047
Representando:
foobar
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Mon, 27 Oct 2060 14:50:18 GMT
Content-Length: 47
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 12 – Inserção de código para Cache Poisoning
Agora é possível verificar sucesso nesta lição geral de HTTP Splitting e
também do “envenenamento” do cache (Figura 13).
Figura 13 – Sucesso na lição geral: HTTP Splitting
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
3.2. Primeira Lição – Falhas no controle de acesso:
a. Utilizando uma matriz de controle de acesso
Para esta lição (Figura 14) é necessário apenas encontrar o usuário com
papel de gerenciador de conta.
Figura 14 – Utilizando uma matriz de controle de acesso
Para isso deve-se selecionar como fonte, o papel de Account Manager e
verificar o acesso de usuário a usuário até encontrar o perfil que possua este
papel (Figura 15 e Figura 16).
Figura 15 – Verificação do papel de gerenciador de conta com usuário Moe
Figura 16 – Verificação do papel de gerenciador de conta com usuário Larry
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Através da Figura 16, é possível verificar que o usuário Larry possui o papel
de gerenciador de conta. Encontrado o usuário com este perfil, a lição é
marcada como completa.
b. Contornar um esquema de controle do tipo Path Based Access
O objetivo desta lição (Figura 17) é ter acesso ao arquivo denominado
“tomcat-users.xml”.
Figura 17 – Contornar um esquema de controle do tipo Path Based Access
Para isso, basta selecionar qualquer arquivo na lista e clicar no botão para
visualizar o arquivo (Figura 18).
Figura 18 – Arquivo selecionado para visualização
Com o TamperData ativo, deve-se interceptar a requisição (Figura 19).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 19 – Interceptação via TamperData
Através da interceptação, via TamperData, digitar o caminho do arquivo alvo
denominado “tomcat-users.xml”.
Conforme consta na descrição desta lição, o arquivo se encontra no seguinte
diretório: “../tomcat/conf/tomcat-users.xml”.
Como o diretório atual é: “/home/webgoat/Desktop/WebGoat-
5.4/tomcat/webapps/WebGoat/lesson_plans/English”, então o objetivo é
retornar até o diretório “../tomcat” para assim seguir até o outro diretório onde
se encontra o arquivo alvo.
Este procedimento deve ser realizado através do seguinte comando:
“../../../../conf/tomcat-users.xml” (Figura 20).
Figura 20 – Comando para acesso ao arquivo via TamperData
Após acesso ao arquivo “tomcat-users.xml” esta lição é marcada como
completa e é apresentado o conteúdo do arquivo logo abaixo da lista de
arquivos (Figura 21).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 21 – Visualização do arquivo “tomcat-users.xml”
c. LAB: Controle de acesso baseado em papel
i. Estágio um: Contornar o controle de acesso da camada de negócio
O objetivo para este estágio (Figura 22) é utilizar a função de apagar perfis
com um usuário que não tenha privilégios necessários para isso, ou seja,
realizar uma ação não permitida para o perfil.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 22 – Estágio um: Contornar o controle de acesso da camada de negócio
Para realizar este objetivo, deve-se entrar no perfil com privilégios de
administração (Figura 23) para verificar como é denominada a ação de
apagar perfis.
Figura 23 – Lista de perfis disponíveis
É selecionado o usuário John Wayne (como sugerido pela lição, a senha é
o primeiro nome em letras minúsculas, portanto: john), que possui papel de
administrador (Figura 24).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 24 – Login de usuário com privilégios de administrador
Uma vez dentro do perfil de John Wayne, é selecionada a ação de apagar
perfis (Figura 25).
Figura 25 – Opção de apagar perfis selecionada
Através da interceptação desta ação, via TamperData, é importante
verificar que o nome dela é “DeleteProfile” (Figura 26).
Figura 26 – Nome da ação de apagar perfis
Agora com um usuário de privilégio do tipo empregado, é realizado o
acesso (Figura 27).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 27 – Acesso de usuário com privilégios do tipo empregado
Uma vez acessado o perfil do usuário, é possível verificar que não existe a
opção de apagar perfis. Mas ainda assim será possível realizar tal
operação. Para isso, basta selecionar o perfil e clicar em qualquer botão,
neste caso será selecionado o botão de visualizar o perfil (Figura 28).
Figura 28 – Seleção de perfil do usuário
Após clicar no botão, a ação deve ser interceptada pelo TamperData e o
nome da ação deve ser renomeada para a ação de apagar perfis (Figura
29), que neste caso é: DeleteProfile.
Figura 29 – Alteração do nome da ação chamada
Feito isso, o estágio está completo e se segue para o próximo estágio
(Figura 30).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 30 – Conclusão do estágio
ii. Estágio dois: Adicionar o controle de acesso da camada de negócio
Para a realização deste estágio (Figura 31) é necessário possuir a versão
de desenvolvedor do programa WebGoat. Como este trabalho se pauta
pela versão padrão do programa, então será seguido para o próximo
estágio.
Figura 31 – Estágio dois
iii. Estágio três: Contornar o controle de acesso da camada de dados
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Neste estágio será realizado o acesso indevido das informações de perfil
de outro usuário.
Antes de iniciar de fato esta lição, é interessante verificar os valores dos
perfis disponíveis, para esta tarefa foi utilizado o FireBug para facilitar a
busca pelo trecho de código (Figura 32).
Figura 32 – Trecho de código com perfis disponíveis, obtidos através do Firebug
Feito isso, pode-se fazer o acesso com o perfil de Tom Cat (Figura 33),
com a senha tom.
Figura 33 – Acesso ao usuário Tom Cat
Com o perfil de Tom, agora é possível verificar informações de outros
usuários, através da intercepção via TamperData (Figura 34) e alteração do
valor do perfil.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 34 – Interceptação da ação de visualização de perfis
Para este experimento será visualizada as informações do usuário de valor
igual a 111, que de acordo com o código obtido através do FireBug (Figura
32), representa o perfil de John Wayne. Então o valor do parâmetro
chamado de “employee_id” será igual a 111 (Figura 35).
Figura 35 – Alteração do valor do parâmetro “employee_id”
Feito isso, torna-se possível a visualização das informações do usuário
John Wayne através do perfil de Tom Cat e assim este estágio encontra-se
concluído (Figura 36).
Figura 36 – Visualização das informações de John Wayne com perfil de Tom Cat
iv. Estágio quatro: Adicionar o controle de acesso da camada de dados
Da mesma forma que o estágio dois, para a realização deste estágio
(Figura 37) é necessário possuir a versão de desenvolvedor do programa
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
WebGoat. Como este trabalho se pauta pela versão padrão do programa,
então será seguido para a próxima lição.
Figura 37 – Estágio quatro
d. Acesso remoto de administrador
O objetivo desta lição é realizar acesso à interface administrativa do
WebGoat. Acessando o WebGoat normalmente, ele já apresenta a opção
com as funções administrativas no menu. Porém ela é restrita, apresentando
somente a opção de visualizar o Report Card (Figura 38).
Figura 38 – Opções administrativas disponíveis com acesso não administrativo
Para ter acesso às outras informações administrativas basta adicionar a
informação "&admin=true" à URL, em qualquer interface (Figura 39).
Figura 39 – Obtendo acesso administrativo através da URL
Com acesso administrativo, as opções das funções administrativas estão
completas (Figura 40). Agora se tem acesso às interfaces de informação do
usuário e do produto e ainda uma opção chamada Adhoc Query apareceu,
porém não será trabalhada para esta lição.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 40 – Opções administrativas completas com acesso administrativo
Ao clicar na opção de informação do usuário, a interface pode retornar à
interface inicial, então se deve adicionar novamente à informação
"&admin=true" à URL (Figura 39) e a interface irá exibir as informações do
usuário (Figura 41).
Figura 41 – Informação do usuário
Ao clicar na opção de informação do produto, a interface pode retornar à
interface inicial, então se deve adicionar novamente à informação
"&admin=true" à URL (Figura 39) e a interface irá exibir as informações do
produto (Figura 42).
Figura 42 – Informação do produto
Retornando à lição corrente, pode-se observar que agora ela se encontra
completa (Figura 43).
Figura 43 – Lição de acesso remoto de administrador
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
3.3. Segunda Lição – Segurança no AJAX:
a. Política de proteção de mesma origem
Esta lição (Figura 44) apresenta o elemento chave do AJAX, que é o
XMLHttpRequest (XHR), que permite o javascript a fazer chamadas
assíncronas do cliente para o servidor.
Figura 44 – Política de proteção de mesma origem
Para completar esta lição, basta clicar nos dois links e observar o que
acontece ao longo do processo.
Então primeiramente é clicado o primeiro link, que faz referência ao arquivo
“sameOrigin.jsp” (Figura 45).
Figura 45 – Referência ao arquivo sameOrigin.jsp
Nesse processo é criada uma requisição XHR e o resultado é apresentado na
Figura 46.
Figura 46 – Resposta do arquivo "sameOrigin.jsp"
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Clicando agora no segundo link, ele faz uma referência ao site de buscas,
Google, buscando por aspectos de segurança (Figura 47).
Figura 47 – Referência ao site de buscas Google
Da mesma forma que o primeiro link, é criado uma requisição XHR e a lição
se torna completa (Figura 48).
Figura 48 – Lição completa
b. LAB: DOM-Based cross-site scripting
Esta lição apresenta o desafio de desfigurar o site (deface). E o objetivo aqui
é inserir uma imagem através do campo de entrada de dados.
Figura 49 – LAB: DOM-Based cross-site scripting
Para isso, deve-se clicar no link do texto “OWASP IMAGE” (Figura 49) e
verificar a sua localização (Figura 50).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 50 – Localização da Imagem OWASP
Utilizando a tag “img” HTML, basta inserir a localização da imagem e inserir
no campo de entrada desta lição (Figura 51): <img
src="images/logos/owasp.jpg" />
Figura 51 – Inserção da tag “img” HTML no campo de entrada
Feito isso, o primeiro estágio estará completo e seguirá para o segundo
estágio (Figura 52).
Figura 52 – Estágio um completo
Para o segundo estágio, basta forçar um erro na fonte da imagem e inserir um
alerta para exibir uma mensagem (Figura 53): <img src=null
onerror="alert('FIAP - 19SEG')" />
Figura 53 – Exibição de alerta com o erro na fonte da imagem
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Feito isso, o segundo estágio estará completo e seguirá para o terceiro
estágio (Figura 54).
Figura 54 – Estágio dois completo
Para o terceiro estágio, deve-se adicionar uma tag de “iframe” (Figura 55):
<iframe src="javascript:alert('FIAP - 19SEG');"></iframe>
Figura 55 – Inserção da tag “iframe”
Feito isso, o terceiro estágio estará completo e seguirá para o quarto estágio
(Figura 56).
Figura 56 – Estágio três completo
Para este próximo estágio (Figura 57), basta inserir o código fornecido,
demonstrado na Figura 56:
Please enter your password:<BR><input type = "password"
name="pass"/><button onClick="javascript:alert('I have your password: '
+
pass.value);">Submit</button><BR><BR><BR><BR><BR><BR><BR><B
R><BR><BR><BR><BR><BR><BR><BR><BR>
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 57 – Inserção do código fornecido
Se inserir um texto no campo de senha (neste caso foi inserido o seguinte
texto: SENHA), ele irá exibir na janela que se abrirá (Figura 58).
Figura 58 – Exibição da senha
Feito isso, o quarto estágio estará completo e seguirá para o quinto estágio
(Figura 59).
Figura 59 – Estágio quatro completo
Para o quinto estágio, o objetivo é realizar uma correção no arquivo
“escape.js” para mitigar a vulnerabilidade do DOM XSS.
Para isso, deve-se editar o arquivo utilizando-se o seguinte comando através
de um terminal (Figura 60): sudo gedit /home/webgoat/Desktop/WebGoat-
5.4/tomcat/webapps/WebGoat/javascript/DOMXSS.js
Figura 60 – Comando para abrir o arquivo no editor de texto
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Ao abrir o arquivo no editor de texto, será apresentando a informação
apresentada pela Figura 61:
Figura 61 – Código original
Alterar o código onde se encontra o “name” e inserir o seguinte código (Figura
62): escapeHTML(name);
Figura 62 – Código alterado
Feito isso, basta retornar à lição e clicar novamente no botão de submeter
para concluir este estágio (Figura 63).
Figura 63 – Estágio cinco completo
c. LAB: Filtro no lado cliente
O objetivo dessa lição é demonstrar os perigos em enviar informações
desnecessárias e que, supostamente, o usuário não deveria visualizar.
Para verificar este problema, deve-se selecionar qualquer usuário da lista,
com o objetivo de carregar algumas informações.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Com o auxílio do FireBug, basta procurar no código por uma tabela oculta
com id denominado "hiddenEmployeeRecords" (Figura 64).
Figura 64 – Informações na tabela oculta
Para o preenchimento do campo de entrada desta lição, é necessário
encontrar o valor referente ao salário do usuário Neville, que possui o id igual
a 112 (Figura 65).
Figura 65 – Informação solicitada sobre o salário de um usuário
Com este primeiro estágio completo, agora o objetivo é corrigir o problema
(Figura 66), para que se retornem somente as informações necessárias para
o usuário selecionado.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 66 – Estágio um completo
Para isso, deve-se editar o arquivo "clientSideFiltering.jsp" utilizando-se o
seguinte comando através de um terminal (Figura 67): sudo gedit
/home/webgoat/Desktop/WebGoat-
5.4/tomcat/webapps/WebGoat/lessons/Ajax/clientSideFiltering.jsp
Figura 67 – Comando para abrir o arquivo no editor de texto
No arquivo, é possível verificar o trecho de código com a função de
acrescentar ao objeto "sb" referente ao StringBuffer (Figura 68).
Figura 68 – Informações originais do arquivo
Para garantir que somente um gerente veja os empregados que trabalham
para ele, deve-se alterar o código para (Figura 69):
sb.append("/Employees/Employee[Managers/Manager/text() = " + userId
+ "]/UserID | ");
sb.append("/Employees/Employee[Managers/Manager/text() = " + userId
+ "]/FirstName | ");
sb.append("/Employees/Employee[Managers/Manager/text() = " + userId
+ "]/LastName | ");
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
sb.append("/Employees/Employee[Managers/Manager/text() = " + userId
+ "]/SSN | ");
sb.append("/Employees/Employee[Managers/Manager/text() = " + userId
+ "]/Salary ");
Figura 69 – Informações alteradas no arquivo
Retornando para a lição e selecionando qualquer usuário novamente, pode-se
verificar que a tabela oculta não apresenta mais informações desnecessárias
para este usuário que está solicitando as informações (Figura 70).
Figura 70 – Informações com maior restrição na tabela oculta
Para completar esta lição, basta clicar no botão localizado no final da página
(Figura 71).
Figura 71 – Botão de conclusão da lição
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
d. DOM injection
Para esta lição, pode-se trabalhar em duas formas. A primeira delas, porém
incorreta, será utilizando o FireBug. Com o auxílio deste plugin, busca-se pelo
código do botão desabilitado e procurar pelo código responsável por isto
(Figura 72).
Figura 72 – Código responsável pela desativação do botão
Para habilitar basta apagar este código (Figura 73).
Figura 73 – Código responsável pela desativação do botão apagado
Dessa forma, torna-se possível inserir a informação no campo de entrada e
ativar. Porém é possível verificar que a informação inserida não é válida
(Figura 74).
Figura 74 – Botão ativo e informação inválida
Mas mesmo apesar de ser feito da forma incorreta (o botão se torna ativo,
mas aparece o texto indicando que a chave está errada), a lição é marcada
como completa (Figura 75).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 75 – Lição completa de forma incorreta
Uma vez completa, é importante reiniciar a lição para realizar outras formas
de completar novamente (Figura 76).
Figura 76 – Reiniciando a lição
A segunda forma, a mais correta para esta lição, é utilizando o WebScarab.
Mas antes é necessário realizar o ajuste de uma tag HTML. Com o auxílio do
FireBug, deve-se localizar o código referente ao campo de entrada (Figura
77).
Figura 77 – Código referente ao campo de entrada
O parâmetro "Name" deve ser selecionado e apagado (Figura 78).
Figura 78 – Parâmetro "Name" selecionado e apagado
O código referente a este campo deve ficar na forma como é apresentada na
Figura 79.
Figura 79 – Código referente ao campo de entrada corrigido
Agora, deve-se ativar a interceptação de respostas no WebScarab (Figura
80).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 80 – Interceptação de respostas via WebScarab
Com a interceptação ativa, deve ser inserido um número qualquer no campo
de entrada (por exemplo: 1) e a resposta será interceptada (Figura 81).
Figura 81 – Resposta interceptada
Deve-se selecionar todo o corpo do texto, apagar e substituir pelo seguinte
comando (Figura 82): document.form.SUBMIT.disabled=false;
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 82 – Comando para habilitar o botão
Com o botão habilitado, torna-se possível ativar o número inserido no campo
de entrada e ele passa a ser interpretado como sendo uma informação válida
(Figura 83).
Figura 83 – Botão ativo e informação válida
Agora é apresentada a mensagem de conclusão (Figura 84) e a lição pode
ser concluída de forma correta.
Figura 84 – Lição completa de forma correta
e. XML injection
O objetivo desta lição é adicionar mais prêmios à lista. Para isso, deve-se
ativar a interceptação de respostas via WebScarab (Figura 80) e inserir o id
fornecido ao campo de entrada (Figura 85).
Figura 85 – Inserção do id fornecido ao campo de entrada
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Na resposta interceptada, as informações que originalmente seria enviada
podem ser visualizadas (Figura 86).
Figura 86 – Lista original de prêmios
Para inserir os outros dois prêmios disponíveis, será utilizado o seguinte
código no WebScarab (Figura 87):
<reward>WebGoat Core Duo Laptop 2000 Pts</reward>
<reward>WebGoat Hawaii Cruise 3000 Pts</reward>
Figura 87 – Lista alterada de prêmios
Os prêmios inseridos são exibidos na lista da página e passíveis de serem
selecionados (Figura 88).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 88 – Lista de prêmios alterada exibida na página
Para concluir a lição (Figura 89), basta selecionar os itens e submeter.
Figura 89 – Lição concluída
f. JSON injection
O objetivo desta lição é alterar o valor de passagens aéreas através da
interceptação da resposta.
Iniciando pela inserção das informações nos campos de entrada, no campo
"From" deve ser colocado o código "BOS" e no campo "To", o código SEA
(Figura 90).
Figura 90 – Inserção dos códigos nos campos de entrada
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
É importante lembrar que antes de submeter estas informações, a resposta
deve ser interceptada pelo WebScarab (Figura 80). Posteriormente é possível
verificar os valores das passagens aéreas originais que seriam exibidas
(Figura 91).
Figura 91 – Resposta com o valor original das passagens interceptada
Os valores devem ser alterados (neste caso ambos foram alterados para
$100), como mostra na Figura 92.
Figura 92 – Código com valores alterados
Na interface da lição é exibida a tabela com o valor das passagens aéreas
alteradas nesse processo de interceptação (Figura 93).
Figura 93 – Valor das passagens alteradas
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Para completar a lição, basta selecionar uma opção e submeter a informação
(Figura 94).
Figura 94 – Opção selecionada
E a lição estará concluída (Figura 95).
Figura 95 – Lição concluída
g. Ataques de transações silenciosas
Esta lição (Figura 96) simula a transferência monetária de uma aplicação de
internet banking. O objetivo desta lição é realizar um ataque silencioso na
aplicação bancária. Analisando o código, é possível identificar que o botão
para submeter chama uma função denominada de "processData" que verifica
se o usuário possui saldo suficiente para realizar a transação. Esta função
chama ainda outra função denominada "submitData", que realiza a
transferência de fato e passa os parâmetros de número de conta e a
quantidade monetária respectivamente.
Figura 96 – Lição sobre ataques de transações silenciosas
Sabendo desta informação, é possível realizar a ação através de código em
javascript, diretamente da barra de endereços do browser. Para isso, basta
inserir o seguinte código (Figura 97), por exemplo:
javascript:submitData(1234556,11000);
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 97 – Passagem de código javascript através da URL do browser
Mas antes de realizar a ação, deve-se ativar a intercepção de requisições
através do WebScarab (Figura 98).
Figura 98 – Interceptação de requisições via WebScarab
E observar como que o javascript é processado pela aplicação (Figura 99).
Figura 99 – Requisição com o processamento do javascript interceptada
E assim a lição estará completa (Figura 100).
Figura 100 – Transação realizada e lição completa
Outra forma de realizar a transação de forma silenciosa é através da própria
interceptação da requisição. Digitando um valor qualquer para ambos os
campos (Figura 101).
Figura 101 – Inserção de um valor qualquer para ambos os campos
E através da interceptação da requisição, procurar pela informação inserida
(Figura 102).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 102 – Informação inserida
E substituir pelo número da conta e pelo valor da transferência (Figura 103).
Figura 103 – Substituição pelo número da conta e valor de transferência
Assim a transação também segue como completa (Figura 104).
Figura 104 – Transação e lição completa
h. Perigos na utilização do Eval
O objetivo desta lição (Figura 105) é inserir um comando malicioso no campo
de entrada, que possui uma chamada para uma função javascript eval. Esta
função basicamente avalia o código enviado na função e executa.
Figura 105 – Lição sobre os perigos na utilização da função eval
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Para realizar esta lição, deve ser mostrada uma caixa de diálogo com o
cookie, inserindo o seguinte código (Figura 106):
123');alert(document.cookie);('
Representando (indicado na cor vermelha):
eval('123');
alert(document.cookie);
('');
Figura 106 – Inserção do código de caixa de diálogo com o cookie
E assim a lição estará completa Figura 107.
Figura 107 – Lição completa
i. Armazenamento inseguro
O desafio desta lição é encontrar o código do cupom de desconto (Figura
108).
Figura 108 – Lição sobre armazenamento inseguro das informações
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Primeiramente é necessário descobrir em que parte do código está inserida a
informação sobre o cupom. Com o auxílio do FireBug é possível verificar tal
informação na aba “Script” sobre o arquivo “clientSideValidation.js”, mais
precisamente na linha 12 onde existe uma variável chamada “decrypted”.
Para facilitar o que é mostrado é interessante colocar um ponto de parada,
clicando sobre o número da linha (Figura 109).
Figura 109 – Trecho de código onde é encontrada uma variável denominada “decrypted”
Entrando com uma informação no campo de código de cupom e selecionando
a ação de “play” no Firebug, é possível observar as mudanças que ocorrem
sobre esta variável e observar o que ela armazena (Figura 110), por exemplo,
é “PLATINUM”, porém ao longo do processo pode-se observar ainda que ela
varia com outras informações.
Figura 110 – Análise sobre a variável “decrypted”
Dessa forma pode-se inserir qualquer informação armazenada por esta
variável, no campo de código do cupom (Figura 111).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 111 – Inserção do código do cupom encontrada na variável
E assim este primeiro estágio está completo (Figura 112).
Figura 112 – Estágio um completo
Para o segundo estágio, o desafio é tornar o pedido gratuito (Figura 113).
Figura 113 – Objetivo do estágio 2
Novamente com o auxílio do FireBug, localizar trecho de código referente ao
campo de entrada do total, que possui o nome de “GRANDTOT”. Encontrado
o código, pode-se observar que ele está como somente leitura (Figura 114).
Figura 114 – Código do campo de entrada do total
Como o objetivo é alterar o valor, basta tirar esta propriedade (Figura 115).
Figura 115 – Código alterado do campo de entrada do total
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
E assim ir para a interface e clicar sobre o campo de total (Figura 116).
Figura 116 – Interface com o campo de total editável
E editar o valor para zero, para o pedido se tornar gratuito (Figura 117).
Figura 117 – Edição do valor para o pedido ser gratuito
E assim a lição se torna completa (Figura 118).
Figura 118 – Lição completa
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
3.4. Terceira Lição – Falhas de autenticação:
a. Força da senha
O objetivo desta lição (Figura 119) é apenas verificar a força das senhas
fornecidas, analisando o grau de complexidade e o tempo necessário para
quebra-las. Deve-se lembrar que para esta lição a internet deve estar
habilitada.
Figura 119 – Lição sobre a força da senha
Acessar o site sugerido pela lição (Figura 120), para medir o tempo de quebra
das senhas: https://www.cnlab.ch/codecheck
Figura 120 – Site sugerido para medir o tempo de quebra de senhas
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
No site, deve-se inserir a primeira senha no campo e fazendo a checagem
(Figura 121).
Figura 121 – Checagem da senha
O resultado obtido é que é uma senha obviamente fraca e o tempo
aproximado para descobrir esta senha é de zero segundo (Figura 122).
Figura 122 – Resultado obtido da análise da senha
Realizando o teste para todas as senhas fornecidas, o resultado deverá ser
como o observado na Figura 123.
Figura 123 – Resultado do tempo de quebra das senhas fornecidas
E assim a lição estará completa (Figura 124).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 124 – Lição completa
b. Esquecimento de senha
Ao mesmo tempo em que as perguntas para recuperação de senha auxiliam
no processo para obter a senha esquecida, pode facilitar também a vida para
os oportunistas descobrirem a senha.
Nesta lição o objetivo será descobrir a senha do administrador. Mas
primeiramente será demonstrada a descoberta da senha para o usuário
“webgoat” (Figura 125).
Figura 125 – Recuperação de senha para o usuário “webgoat”
A pergunta para este usuário é sobre a cor favorita dele. Dado o ambiente do
WebGoat, pode-se presumir que a cor favorita é vermelha. Então é inserida a
cor vermelha como resposta (Figura 126).
Figura 126 – Resposta à pergunta secreta do usuário “webgoat”
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
E assim pode-se verificar qual a senha para este usuário (Figura 127).
Figura 127 – Senha do usuário “webgoat” descoberta
Agora realizando o processo para o administrador (Figura 128). O teste será
feito com o nome sugestivo “admin”, pelo motivo de ser um codinome muito
comum nas aplicações.
Figura 128 – Recuperação de senha para o usuário “admin”
A pergunta para este usuário é também a cor favorita dele. Como não existem
indícios de cor, um jeito simples é testar com as cores comuns e partir
posteriormente para as possíveis cores existentes (Figura 129).
Figura 129 – Tentativa para descobrir a cor favorita
Não demora muito, através da cor verde foi possível descobrir a senha para o
usuário “admin” (Figura 130).
Figura 130 – Senha do usuário “admin” descoberta
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
c. Autenticação básica
O objetivo desta lição (Figura 131) é encontrar o nome do cabeçalho de
autenticação e o valor descodificado do cabeçalho de autenticação.
Figura 131 – Lição sobre autenticação básica
Através da interceptação das requisições através do WebScarab (Figura 98),
é possível verificar que o nome do cabeçalho de autenticação é
“Authorization” e o valor dele é “Z3Vlc3Q6Z3Vlc3Q=” (Figura 132).
Figura 132 – Requisição interceptada para análise do cabeçalho de autenticação
Como o valor está criptografado, pode-se utilizar o WebScarab para
decodificar (Tools -> Transcoder), como mostra a Figura 133.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 133 – Decodificação via WebScarab
Inserindo o código na interface, basta clicar na opção denominada “Base 64
decode” para decodificar este código (Figura 134).
Figura 134 – Descodificando o valor
O resultado da descodificação pode ser observado na Figura 135.
Figura 135 – Valor descodificado
Agora basta inserir as informações já coletadas (lembrando-se de abortar a
interceptação da requisição e desabilitando posteriormente o WebScarab), o
nome do cabeçalho de autenticação que é “Authorization” e o valor
descodificado dele que é “guest:guest” (Figura 136).
Figura 136 – Inserção das informações coletadas
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
E assim aparecerá o próximo objetivo (Figura 137).
Figura 137 – Lição completa
Deve-se realizar qualquer ação, clicando em qualquer link e interceptar
novamente a requisição através do WebScarab (Figura 98), deve-se
encontrar a informação do cookie (Figura 138).
Figura 138 – Informação sobre o cookie na interceptação da requisição
Deve-se alterar o valor do id para um valor inválido (Figura 139), para forçar
que a seção do usuário atual seja encerrada.
Figura 139 – Valor inválido para o id
Assim é possível realizar o acesso com o usuário “basic” e senha “basic”,
como sugerido pela lição (Figura 140). Em alguns ambientes, pode ser
necessário fechar o web-browser e abri-lo novamente e em outros casos é
necessário apagar as senhas salvas e limpar o cookie e cache.
Figura 140 – Acesso com usuário “basic”
Feito isso, basta buscar pela lição vigente através do menu para completa-la
(Figura 141). Para dar continuidade nas lições, sair da seção deste usuário
(pode ser que seja necessário fechar e abrir o web-browser) e realizar o
acesso com o usuário “guest” (senha: “guest”).
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 141 – Lição completa
d. Login multi nível dois
O objetivo desta lição é realizar acesso com um usuário e realizar ações com
outro usuário. Conforme sugere a lição, primeiramente deverá ser realizado o
acesso com o usuário de Joe (Figura 142).
Figura 142 – Acesso do usuário Joe
É necessário inserir o valor de “TAN #1”, fornecido na lição (Figura 143).
Figura 143 – Inserção do valor de “TAN #1”
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Através da interceptação das requisições com o WebScarab (Figura 98),
pode-se observar que existe uma variável denominada de “hidden user”
(Figura 144).
Figura 144 – Variável de usuário oculto
Agora se deve alterar o valor desta variável para Jane (Figura 145), como
sugere a lição.
Figura 145 – Alteração do valor do usuário oculto
E assim é realizado o acesso de Jane com o usuário Joe, então esta lição é
marcada como completa (Figura 146).
Figura 146 – Lição completa
e. Login multi nível 1
A ideia desta lição é parecida com a anterior. Primeiramente é realizado o
acesso com o usuário Jane (Figura 147), como sugerida pela lição.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 147 – Login com usuário Jane
Deve-se inserir o valor de “TAN #2” (Figura 148).
Figura 148 – Inserção do valor de “TAN #2”
E assim este estágio se encontra completo (Figura 149).
Figura 149 – Estágio 1 completo
Partindo para o segundo estágio, deve ser realizado o acesso com Jane
também (Figura 150).
Figura 150 – Novo acesso com usuário Jane
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
O único valor fornecido pela lição é o valor de “TAN #1”, porém o valor exigido
é o valor de “TAN #3”. Dessa forma a única opção é inserir o valor fornecido
(Figura 151).
Figura 151 – Inserção do valor de “TAN #1”
Através da interceptação da requisição através do WebScarab (Figura 98),
pode-se observar que o valor da variável denominada “hidden_tan” é 3
(Figura 152).
Figura 152 – Valor da variável “hidden_tan”
Deve-se alterar o valor para 1, devido a número de “TAN” ser #1 (Figura 153).
Figura 153 – Alteração do valor da variável “hidden_tan”
Assim o sistema realiza a operação com sucesso e a lição está completa
(Figura 154).
Figura 154 – Operação realizada com sucesso e lição completa
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
3.5. Lição Desafio:
O objetivo nesta lição (Figura 155) é burlar o método de autenticação, descobrir
todos os cartões de créditos registrados no banco de dados do sistema e
desfigurar a página.
Figura 155 – Lição desafio
É importante observar se existe alguma pista fornecida durante a autenticação,
para isto deve-se digitar qualquer valor nos campos de entrada e submeter,
interceptando a requisição através do auxílio do TamperData (Figura
156).
Figura 156 – Preenchimento dos campos de entrada e ativação do TamperData
Na interface de interceptação do TamperData é possível observar a existência
de uma informação sobre um determinado usuário (Figura 157).
Figura 157 – Interceptação da requisição via TamperData
Acessando o código fonte da ferramenta (Figura 158), através do seguinte link:
http://localhost:8080/WebGoat/source?source=true
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 158 – Acessando o código fonte do WebGoat
Procurando pela informação de usuário obtida na interceptação da autenticação
(youaretheweakestlink), pode-se observar que no código existe a informação a
respeito da senha deste usuário (Figura 159).
Figura 159 – Informação sobre a senha no código fonte do WebGoat
Retornando para a lição, devem-se inserir estas informações de usuário e senha
encontradas para realizar a autenticação (Figura 160).
Figura 160 – Autenticação com as informações de usuário e senha encontradas
Obtendo-se assim sucesso na autenticação com estas informações, como se
pode observar na Figura 161.
Figura 161 – Sucesso na autenticação
Observando os cartões de crédito disponíveis neste momento, é possível
observar que existem apenas dois (Figura 162). A tarefa agora é obter acesso a
todos os cartões de crédito registrados no banco de dados do sistema.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 162 – Cartões de crédito disponíveis
Com o auxílio do TamperData, deve-se clicar no botão disponível na interface
(“Buy Now!”) para interceptar a requisição (Figura 163).
Figura 163 – Interceptando via TamperData
E assim observar a informação a respeito do cookie do usuário (Figura 164).
Figura 164 – Informação sobre o cookie do usuário
Com o auxílio do WebScarab deve-se decodificar (Figura 133) a sequência
deste parâmetro do cookie deste usuário, utilizando a Base64 (Figura 165). E
assim pode-se observar que se refere ao mesmo usuário que foi feito a
autenticação
Figura 165 – Decodificação via WebScarab
Agora para obter acesso aos registros de cartões de créditos do banco de dados
do sistema, deve-se inserir um código para forçar a exibição deles (' or '1'='1),
via SQL Injection e codificar com a Base64 via WebScarab (Figura 166).
Figura 166 – Codificação via WebScarab, com o código malicioso inserido
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Este código gerado deve ser substituído no cookie, com mostra a Figura 167.
Figura 167 – Inserção do código de Base64
E assim torna-se possível o acesso a todos os cartões de crédito registrados no
banco de dados do sistema e mais uma parte deste desafio está completa
(Figura 168).
Figura 168 – Lista de todos os cartões de créditos disponíveis no sistema e completude de mais
uma etapa
Partindo para o próximo estágio, agora o objetivo é desfigurar a página principal
do WebGoat, que segundo informações encontradas nesta lição, o arquivo
responsável é “webgoat_challenge_guest.jsp” (Figura 169).
Figura 169 – Estágio 3
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Para saber a localização deste arquivo, deve-se selecionar algum item e clicar
no botão “View Network” (Figura 170), interceptando a requisição através do
WebScarab (Figura 98).
Figura 170 – Seleção de qualquer item e ação chamada através do botão
Na interceptação da requisição, deve-se inserir o seguinte comando após o texto
que está na variável “File” (Figura 171), com o objetivo de localizar o arquivo
“webgoat_challenge_guest.jsp”:
tcp && find -iname webgoat_challenge_guest.jsp
Figura 171 – Inserção do comando na interceptação da requisição para localizar o arquivo
Ao final da lista é possível verificar o caminho para o arquivo, como mostra na
Figura 172.
Figura 172 – Caminho do arquivo
Realizando uma nova ação (selecionando um item e clicando no botão “View
Network”), será possível interceptar novamente a requisição e inserir o seguinte
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
comando após o texto que está na variável “File” (Figura 173), para realizar a
desfiguração da página:
tcp && echo "<html><body>PÁGINA DESFIGURADA!</body></html>" >
./tomcat/webapps/WebGoat/webgoat_challenge_guest.jsp
Figura 173 – Inserção do comando na interceptação da requisição para desfigurar a página
E assim é mostrada a página desfigurada e este estágio está completo (Figura
174).
Figura 174 – Página desfigurada e estágio completo
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
O próximo estágio apresenta apenas a confirmação de que a lição foi finalizada
com sucesso e uma mensagem aos usuários (Figura 175).
Figura 175 – Lição finalizada com sucesso e uma mensagem aos usuários
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
4. CONCLUSÃO
O WebGoat cumpre sua função de aplicação web de aprendizado, ilustrando as
falhas de segurança de uma forma bem estruturada e dividida em tópicos por tipos
de vulnerabilidades, através das lições. Sendo útil para detectar, conhecer e explorar
as vulnerabilidades existentes e observar no ponto de vista de um atacante, como
ele poderia agir e explorá-las dentro de uma aplicação web.
Apesar de a aplicação apresentar apenas em algumas lições a oportunidade para
corrigir a vulnerabilidade, com o conhecimento adquirido pela observação do método
utilizado por cada lição, torna-se possível buscar e estudar por métodos de proteger
e corrigir a vulnerabilidade.
É uma boa forma para desenvolvedores e estudantes de segurança da informação
para se aprimorarem, verificando a anatomia dos ataques, e assim tentarem colocar
em prática no cotidiano do ciclo de vida de desenvolvimento das aplicações e
serviços web para evitar que falhas comuns estejam presentes.
E sob o ponto de vista de testes de software, a realização das lições pode ser
observada como sendo um teste com a técnica de caixa-preta (analisando o
comportamento externo da aplicação, sem considerar o comportamento interno).
Dessa forma apresenta também uma forma de aprimoramento para os profissionais
em testes de software, principalmente sobre os testes de segurança de aplicações, e
assim também contribuírem no ciclo de vida de desenvolvimento, auxiliando na
diminuição das falhas comuns e nos riscos que estas aplicações poderiam correr
desnecessariamente.
Para finalizar, vale a pena lembrar que o objetivo da aplicação não é sair por ai
procurando por vulnerabilidades nas aplicações de outrem sem a devida permissão.
E assim como a própria aplicação sugere que a pessoa que utilizar estas técnicas
para realizar ataques, esta poderá ser pega e/ou demitida por este ato. Portanto,
deve-se utilizar este aprendizado na melhor forma possível e na legalidade.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
5. REFERENCIAL BIBLIOGRÁFICO
APACHE SOFTWARE FOUNDATION. Apache Tomcat. [S.l.]: Apache Software
Foundation, 2013. Disponível em: <http://tomcat.apache.org/>. Acesso em: 14 de
março de 2013.
HEWITT, J; ODVARKO, J.; CAMPBELL, R. Firebug. [S.l.]: Add-ons for Firefox,
2013. Disponível em: <https://addons.mozilla.org/pt-br/firefox/addon/firebug/>.
Acesso em: 14 de março de 2013.
JUDSON, A. Tamper Data. [S.l.]: Add-ons for Firefox, 2010. Disponível em:
<https://addons.mozilla.org/pt-br/firefox/addon/tamper-data/>. Acesso em: 14 de
março de 2013.
MAYHEW, B.; WILLIAMS, J.. OWASP WebGoat, versão 5.4. [S.l.]: 2012. Aplicação
web.
OWASP. About OWASP. [S.l.]: Open Web Application Security Project Foundation,
2013a. Disponível em: <https://www.owasp.org/index.php/About_OWASP>. Acesso
em: 6 de fevereiro de 2013.
OWASP. WebGoat Project. [S.l.]: Open Web Application Security Project
Foundation, 2013b. Disponível em:
<https://www.owasp.org/index.php/OWASP_WebGoat_Project>. Acesso em: 6 de
fevereiro de 2013.
OWASP. WebScarab Project. [S.l.]: Open Web Application Security Project
Foundation, 2013c. Disponível em:
<https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project>. Acesso
em: 14 de março de 2013.
OXFORD. 2 ed. Pocket Oxford American Dictionary. New York: Oxford University
Press, 2008.
RODRIGUES, M.. OWASP Top 10 + Java EE. [S.l.]: OWASP Paraíba, 2011.
Disponível em:
<https://www.owasp.org/images/7/7a/Magno_Logan_AppSec_Latam_2011_-
_OWASP_Top_10_%2B_JavaEE.pdf>. Acesso em: 17 de fevereiro de 2013.
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
ÍNDICE DE ILUSTRAÇÕES
Figura 1 – SQL Injection no banco de currículos da organização C.E.S.A.R..............4
Figura 2 - SQL Injection no banco de currículos da organização Pitang – Agile IT.....4
Figura 3 - SQL Injection no banco de currículos da organização C.E.S.A.R ..............5
Figura 4 - SQL Injection no banco de currículos da organização Pitang – Agile IT.....5
Figura 5 – Interface da aplicação WebGoat .............................................................11
Figura 6 – Interface da lição geral: HTML Basics .....................................................13
Figura 7 – Confirmação de sucesso na lição geral: HTML Basics............................13
Figura 8 – Inserção de código simples.....................................................................14
Figura 9 – Interpretação de código e detecção de ataque........................................14
Figura 10 – Inserção de código para HTTP Splitting ................................................15
Figura 11 – Interpretação do código e conclusão do primeiro estágio......................15
Figura 12 – Inserção de código para Cache Poisoning ............................................16
Figura 13 – Sucesso na lição geral: HTTP Splitting .................................................16
Figura 14 – Utilizando uma matriz de controle de acesso ........................................17
Figura 15 – Verificação do papel de gerenciador de conta com usuário Moe...........17
Figura 16 – Verificação do papel de gerenciador de conta com usuário Larry .........17
Figura 17 – Contornar um esquema de controle do tipo Path Based Access ...........18
Figura 18 – Arquivo selecionado para visualização..................................................18
Figura 19 – Interceptação via TamperData ..............................................................19
Figura 20 – Comando para acesso ao arquivo via TamperData...............................19
Figura 21 – Visualização do arquivo “tomcat-users.xml” ..........................................20
Figura 22 – Estágio um: Contornar o controle de acesso da camada de negócio ....21
Figura 23 – Lista de perfis disponíveis .....................................................................21
Figura 24 – Login de usuário com privilégios de administrador ................................22
Figura 25 – Opção de apagar perfis selecionada .....................................................22
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 26 – Nome da ação de apagar perfis ............................................................22
Figura 27 – Acesso de usuário com privilégios do tipo empregado..........................23
Figura 28 – Seleção de perfil do usuário..................................................................23
Figura 29 – Alteração do nome da ação chamada ...................................................23
Figura 30 – Conclusão do estágio............................................................................24
Figura 31 – Estágio dois ..........................................................................................24
Figura 32 – Trecho de código com perfis disponíveis, obtidos através do Firebug...25
Figura 33 – Acesso ao usuário Tom Cat ..................................................................25
Figura 34 – Interceptação da ação de visualização de perfis ...................................26
Figura 35 – Alteração do valor do parâmetro “employee_id”....................................26
Figura 36 – Visualização das informações de John Wayne com perfil de Tom Cat..26
Figura 37 – Estágio quatro.......................................................................................27
Figura 38 – Opções administrativas disponíveis com acesso não administrativo.....27
Figura 39 – Obtendo acesso administrativo através da URL....................................27
Figura 40 – Opções administrativas completas com acesso administrativo .............28
Figura 41 – Informação do usuário...........................................................................28
Figura 42 – Informação do produto ..........................................................................28
Figura 43 – Lição de acesso remoto de administrador .............................................28
Figura 44 – Política de proteção de mesma origem .................................................29
Figura 45 – Referência ao arquivo sameOrigin.jsp...................................................29
Figura 46 – Resposta do arquivo "sameOrigin.jsp" ..................................................29
Figura 47 – Referência ao site de buscas Google....................................................30
Figura 48 – Lição completa......................................................................................30
Figura 49 – LAB: DOM-Based cross-site scripting ...................................................30
Figura 50 – Localização da Imagem OWASP ..........................................................31
Figura 51 – Inserção da tag “img” HTML no campo de entrada ...............................31
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 52 – Estágio um completo.............................................................................31
Figura 53 – Exibição de alerta com o erro na fonte da imagem................................31
Figura 54 – Estágio dois completo ...........................................................................32
Figura 55 – Inserção da tag “iframe” ........................................................................32
Figura 56 – Estágio três completo............................................................................32
Figura 57 – Inserção do código fornecido ................................................................33
Figura 58 – Exibição da senha.................................................................................33
Figura 59 – Estágio quatro completo........................................................................33
Figura 60 – Comando para abrir o arquivo no editor de texto...................................33
Figura 61 – Código original ......................................................................................34
Figura 62 – Código alterado.....................................................................................34
Figura 63 – Estágio cinco completo .........................................................................34
Figura 64 – Informações na tabela oculta ................................................................35
Figura 65 – Informação solicitada sobre o salário de um usuário.............................35
Figura 66 – Estágio um completo.............................................................................36
Figura 67 – Comando para abrir o arquivo no editor de texto...................................36
Figura 68 – Informações originais do arquivo...........................................................36
Figura 69 – Informações alteradas no arquivo .........................................................37
Figura 70 – Informações com maior restrição na tabela oculta ................................37
Figura 71 – Botão de conclusão da lição..................................................................37
Figura 72 – Código responsável pela desativação do botão ....................................38
Figura 73 – Código responsável pela desativação do botão apagado......................38
Figura 74 – Botão ativo e informação inválida..........................................................38
Figura 75 – Lição completa de forma incorreta ........................................................39
Figura 76 – Reiniciando a lição ................................................................................39
Figura 77 – Código referente ao campo de entrada .................................................39
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 78 – Parâmetro "Name" selecionado e apagado...........................................39
Figura 79 – Código referente ao campo de entrada corrigido...................................39
Figura 80 – Interceptação de respostas via WebScarab ..........................................40
Figura 81 – Resposta interceptada ..........................................................................40
Figura 82 – Comando para habilitar o botão ............................................................41
Figura 83 – Botão ativo e informação válida ............................................................41
Figura 84 – Lição completa de forma correta ...........................................................41
Figura 85 – Inserção do id fornecido ao campo de entrada......................................41
Figura 86 – Lista original de prêmios .......................................................................42
Figura 87 – Lista alterada de prêmios ......................................................................42
Figura 88 – Lista de prêmios alterada exibida na página .........................................43
Figura 89 – Lição concluída .....................................................................................43
Figura 90 – Inserção dos códigos nos campos de entrada ......................................43
Figura 91 – Resposta com o valor original das passagens interceptada ..................44
Figura 92 – Código com valores alterados ...............................................................44
Figura 93 – Valor das passagens alteradas .............................................................44
Figura 94 – Opção selecionada ...............................................................................45
Figura 95 – Lição concluída .....................................................................................45
Figura 96 – Lição sobre ataques de transações silenciosas.....................................45
Figura 97 – Passagem de código javascript através da URL do browser .................46
Figura 98 – Interceptação de requisições via WebScarab........................................46
Figura 99 – Requisição com o processamento do javascript interceptada ...............46
Figura 100 – Transação realizada e lição completa .................................................46
Figura 101 – Inserção de um valor qualquer para ambos os campos ......................46
Figura 102 – Informação inserida.............................................................................47
Figura 103 – Substituição pelo número da conta e valor de transferência................47
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 104 – Transação e lição completa.................................................................47
Figura 105 – Lição sobre os perigos na utilização da função eval............................47
Figura 106 – Inserção do código de caixa de diálogo com o cookie.........................48
Figura 107 – Lição completa ....................................................................................48
Figura 108 – Lição sobre armazenamento inseguro das informações......................48
Figura 109 – Trecho de código onde é encontrada uma variável denominada
“decrypted”...............................................................................................................49
Figura 110 – Análise sobre a variável “decrypted” ...................................................49
Figura 111 – Inserção do código do cupom encontrada na variável.........................50
Figura 112 – Estágio um completo...........................................................................50
Figura 113 – Objetivo do estágio 2...........................................................................50
Figura 114 – Código do campo de entrada do total..................................................50
Figura 115 – Código alterado do campo de entrada do total....................................50
Figura 116 – Interface com o campo de total editável ..............................................51
Figura 117 – Edição do valor para o pedido ser gratuito ..........................................51
Figura 118 – Lição completa ....................................................................................51
Figura 119 – Lição sobre a força da senha ..............................................................52
Figura 120 – Site sugerido para medir o tempo de quebra de senhas .....................52
Figura 121 – Checagem da senha ...........................................................................53
Figura 122 – Resultado obtido da análise da senha.................................................53
Figura 123 – Resultado do tempo de quebra das senhas fornecidas .......................53
Figura 124 – Lição completa ....................................................................................54
Figura 125 – Recuperação de senha para o usuário “webgoat” ...............................54
Figura 126 – Resposta à pergunta secreta do usuário “webgoat” ............................54
Figura 127 – Senha do usuário “webgoat” descoberta.............................................55
Figura 128 – Recuperação de senha para o usuário “admin”...................................55
Figura 129 – Tentativa para descobrir a cor favorita ................................................55
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 130 – Senha do usuário “admin” descoberta.................................................55
Figura 131 – Lição sobre autenticação básica .........................................................56
Figura 132 – Requisição interceptada para análise do cabeçalho de autenticação..56
Figura 133 – Decodificação via WebScarab.............................................................57
Figura 134 – Descodificando o valor ........................................................................57
Figura 135 – Valor descodificado.............................................................................57
Figura 136 – Inserção das informações coletadas ...................................................57
Figura 137 – Lição completa ....................................................................................58
Figura 138 – Informação sobre o cookie na interceptação da requisição .................58
Figura 139 – Valor inválido para o id........................................................................58
Figura 140 – Acesso com usuário “basic” ................................................................58
Figura 141 – Lição completa ....................................................................................59
Figura 142 – Acesso do usuário Joe ........................................................................59
Figura 143 – Inserção do valor de “TAN #1” ............................................................59
Figura 144 – Variável de usuário oculto ...................................................................60
Figura 145 – Alteração do valor do usuário oculto ...................................................60
Figura 146 – Lição completa ....................................................................................60
Figura 147 – Login com usuário Jane ......................................................................61
Figura 148 – Inserção do valor de “TAN #2” ............................................................61
Figura 149 – Estágio 1 completo..............................................................................61
Figura 150 – Novo acesso com usuário Jane ..........................................................61
Figura 151 – Inserção do valor de “TAN #1” ............................................................62
Figura 152 – Valor da variável “hidden_tan”.............................................................62
Figura 153 – Alteração do valor da variável “hidden_tan” ........................................62
Figura 154 – Operação realizada com sucesso e lição completa.............................62
Figura 155 – Lição desafio.......................................................................................63
Centro de Pós Graduação - FIAP
Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP
CEP: 01538-001
Telefone: 55 11 3385-8000
E-mail: cpg@fiap.com.br
Home Page: www.fiap.com.br
Figura 156 – Preenchimento dos campos de entrada e ativação do TamperData....63
Figura 157 – Interceptação da requisição via TamperData ......................................63
Figura 158 – Acessando o código fonte do WebGoat ..............................................64
Figura 159 – Informação sobre a senha no código fonte do WebGoat.....................64
Figura 160 – Autenticação com as informações de usuário e senha encontradas ...64
Figura 161 – Sucesso na autenticação ....................................................................64
Figura 162 – Cartões de crédito disponíveis ............................................................65
Figura 163 – Interceptando via TamperData ............................................................65
Figura 164 – Informação sobre o cookie do usuário.................................................65
Figura 165 – Decodificação via WebScarab.............................................................65
Figura 166 – Codificação via WebScarab, com o código malicioso inserido ............65
Figura 167 – Inserção do código de Base64 ............................................................66
Figura 168 – Lista de todos os cartões de créditos disponíveis no sistema e
completude de mais uma etapa ...............................................................................66
Figura 169 – Estágio 3 .............................................................................................66
Figura 170 – Seleção de qualquer item e ação chamada através do botão .............67
Figura 171 – Inserção do comando na interceptação da requisição para localizar o
arquivo.....................................................................................................................67
Figura 172 – Caminho do arquivo ............................................................................67
Figura 173 – Inserção do comando na interceptação da requisição para desfigurar a
página......................................................................................................................68
Figura 174 – Página desfigurada e estágio completo...............................................68
Figura 175 – Lição finalizada com sucesso e uma mensagem aos usuários............69

Mais conteúdo relacionado

Semelhante a WebGoat - Lições de Segurança

Pacote WorkShops em Seguranca da Informacao
Pacote WorkShops em  Seguranca da Informacao  Pacote WorkShops em  Seguranca da Informacao
Pacote WorkShops em Seguranca da Informacao Grupo Treinar
 
WorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - HardningWorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - HardningGrupo Treinar
 
WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados   WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados Grupo Treinar
 
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos   WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos Grupo Treinar
 
OAB - SEGURANÇA CORPORATIVA - Guia de Referência
OAB - SEGURANÇA CORPORATIVA - Guia de ReferênciaOAB - SEGURANÇA CORPORATIVA - Guia de Referência
OAB - SEGURANÇA CORPORATIVA - Guia de ReferênciaSymantec Brasil
 

Semelhante a WebGoat - Lições de Segurança (11)

Pacote WorkShops em Seguranca da Informacao
Pacote WorkShops em  Seguranca da Informacao  Pacote WorkShops em  Seguranca da Informacao
Pacote WorkShops em Seguranca da Informacao
 
WorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - HardningWorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - Hardning
 
WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados   WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados
 
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos   WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
 
OAB - SEGURANÇA CORPORATIVA - Guia de Referência
OAB - SEGURANÇA CORPORATIVA - Guia de ReferênciaOAB - SEGURANÇA CORPORATIVA - Guia de Referência
OAB - SEGURANÇA CORPORATIVA - Guia de Referência
 
Tutorialitil2
Tutorialitil2Tutorialitil2
Tutorialitil2
 
Tutorialitil2
Tutorialitil2Tutorialitil2
Tutorialitil2
 
Tutorialitil2
Tutorialitil2Tutorialitil2
Tutorialitil2
 
Webgoat Project - Apresentação
Webgoat Project - ApresentaçãoWebgoat Project - Apresentação
Webgoat Project - Apresentação
 
Rites Edital FIEMG Lab
Rites  Edital FIEMG LabRites  Edital FIEMG Lab
Rites Edital FIEMG Lab
 
Tcc - Work control
Tcc - Work controlTcc - Work control
Tcc - Work control
 

WebGoat - Lições de Segurança

  • 1. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br WEBGOAT TRABALHO FINAL DE TÉCNICAS DE SEGURANÇA DA PROTEÇÃO – GESTÃO DE AMEAÇAS E VULNERABILIDADES Cleyton Tsukuda Kano – RM 43443 Danilo Luiz Favacho Lopes – RM 43050 Décio Vicente Castaldi – RM 43052 Paulo Kuester Neto – RM 42987 MBA em Gestão de Segurança da Informação 19º SEG São Paulo, Março de 2013.
  • 2. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br SUMÁRIO 1. INTRODUÇÃO....................................................................................................3 1.1. Problema ......................................................................................................3 1.2. Objetivo.........................................................................................................6 1.3. Motivação......................................................................................................7 1.4. Metodologia ..................................................................................................7 1.5. Ambiente utilizado.........................................................................................8 1.6. Informações adicionais sobre as ferramentas auxiliares ...............................8 2. PROJETO WEBGOAT......................................................................................10 2.1. Open Web Application Security Project (OWASP) ......................................10 2.2. WebGoat.....................................................................................................10 2.3. Didática.......................................................................................................12 3. COLOCANDO EM PRÁTICA ............................................................................13 3.1. Lição Geral:.................................................................................................13 3.1.1. HTML basics:........................................................................................13 3.1.2. HTML splitting:......................................................................................14 3.2. Primeira Lição – Falhas no controle de acesso: ..........................................17 3.3. Segunda Lição – Segurança no AJAX: .......................................................29 3.4. Terceira Lição – Falhas de autenticação:....................................................52 3.5. Lição Desafio: .............................................................................................63 4. CONCLUSÃO ...................................................................................................70 5. REFERENCIAL BIBLIOGRÁFICO ....................................................................71
  • 3. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 1. INTRODUÇÃO 1.1. Problema É inegável que vivemos hoje em um mundo amplamente dependente de tecnologia, se por um lado essa popularização alavancou a nossa sociedade a uma velocidade evolutiva nunca antes experimentada, isso também elevou os riscos, pois hoje serviços vitais como energia, transportes, alimentos e sistemas financeiros, só para citarmos alguns dos mais críticos, estão em maior ou menor grau conectados através de plataformas e sistemas. Tendo em vista esse cenário, é imperativa que as organizações hoje devam ter uma preocupação e um plano estruturado que leve em conta a segurança da informação, do contrário, correm o risco de ter suas operações comprometidas, sua competitividade diminuída ou em casos mais extremos o fechamento do próprio negócio. O que antes era privilégio ou motivo de preocupação apenas de organizações militares, governos ou mais tarde grandes conglomerados empresariais, hoje é parte do modelo de médias e pequenas empresas que esperam estarem aliadas as melhores práticas para garantir a relação de confiança com seus fornecedores, grandes clientes, abertura de capital entre outros. Pesquisa recente da Ernst & Young mostra que 55% das empresas elevarão seus investimentos com segurança da informação. Embora esse ambiente pareça promissor existe um longo caminho a ser percorrido, pois existe ainda um número grande de empresas onde a segurança da informação ainda não é visualizada como estratégica, nem como um investimento para o negócio e sim como um custo a mais na planilha financeira. A segurança da informação vem ganhando cada dia mais força, mas apesar disso ainda existem diversas aplicações, e podemos destacar negativamente principalmente aquelas expostas a Internet (web pessoais e organizacionais) que apresentam falhas básicas relacionadas à segurança. Em 2011, Magno (Logan) Rodrigues (2011), conduziu um trabalho que apontou algumas destas falhas de segurança nas aplicações web, tais como o banco de currículos das organizações C.E.S.A.R e Pitang - Agile IT (que utiliza o mesmo sistema da C.E.S.A.R) (Figura 1 e Figura 2 respectivamente).
  • 4. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 1 – SQL Injection no banco de currículos da organização C.E.S.A.R Fonte: (RODRIGUES, 2011) Figura 2 - SQL Injection no banco de currículos da organização Pitang – Agile IT Fonte: (RODRIGUES, 2011) Através desta falha na aplicação destas duas organizações, Rodrigues (2011) apresentou a obtenção de acesso a dados sobre o sistema deles (Figura 3 e Figura 4).
  • 5. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 3 - SQL Injection no banco de currículos da organização C.E.S.A.R Fonte: (RODRIGUES, 2011) Figura 4 - SQL Injection no banco de currículos da organização Pitang – Agile IT Fonte: (RODRIGUES, 2011)
  • 6. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Este é um pequeno exemplo ou amostra dos riscos envolvidos ao se delegar a segundo plano a preocupação com segurança da informação. Esforços tem sido empreendidos para elevar a conscientização sobre as falhas e riscos na má implementação de desenvolvimento de aplicações web no que concernem as práticas de segurança de informação. Neste ponto podemos destacar a organização sem fins lucrativos OWASP (open software security community) que conduz através de alguns projetos essa tarefa. Dentre os diversos projetos, podemos sem dúvida apontar o WebGoat framework desenvolvido para incentivar o estudo e testes das principais falhas de segurança em ambientes web de uma maneira prática, como destaque. Pelo contexto dado, é de fundamental importância que os desenvolvedores, designers, arquitetos de soluções organizacionais se eduquem e conscientizem-se a respeito da segurança da informação para aprimorarem e terem o mínimo de segurança nas soluções finais de suas aplicações (RODRIGUES, 2011). E através da aplicação WebGoat torna-se possível verificar as vulnerabilidades na prática e entender como funciona o princípio básico da mente de um atacante, para assim encontrar um meio de evitar que estas falhas básicas estejam presentes nas aplicações web. 1.2. Objetivo Este trabalho de pesquisa tem por objetivo demonstrar de uma maneira geral e tomando como exemplo algumas das lições presentes na ferramenta web denominada de WebGoat (versão padrão, não sendo a versão de desenvolvedor), algumas das teorias discutidas na disciplina - gestão de ameaças e vulnerabilidades , explorando, além dos ensinamentos introdutórios apresentados pelo tópico da lição geral da ferramenta, as primeiras três lições de segurança da informação para aplicações web e a lição desafio. Dessa forma serão trabalhadas no total as seguintes cinco lições: a. Lição Geral (HTML basics e HTML splitting); b. Falhas no controle de acesso; c. Segurança no AJAX; d. Falhas de autenticação; e. Lição Desafio.
  • 7. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 1.3. Motivação A escolha por esta aplicação web se deu pelo interesse do grupo (formado por estudantes do curso de MBA em Gestão de Segurança da Informação) em aprimorar o conhecimento a respeito da segurança da informação, através de exercícios práticos neste ambiente propositalmente inseguro apresentado pelo WebGoat. A possibilidade de demonstrar praticamente conceitos que normalmente só teorizados, o aprendizado da anatomia dos ataques sem dúvida tem impacto direto na melhoria da formação dos integrantes deste trabalho e aos demais alunos que terão a possibilidade de ver com detalhes o uso desta ferramenta e aplica-la no local de trabalho estando melhores preparados para proteger as informações da empresa em que atuam ou irão atuar e foram fatores preponderantes na escolha do tema. A relevância e atualidade das lições aqui aprendidas e demonstradas na ferramenta também podem ser destacadas como sendo de forte influência como decisivos na condução desse processo acadêmico. Por fim, o fato de a ferramenta ser open source e a amplitude e aplicabilidade de tal trabalho levantam maiores possibilidades para que outros profissionais também interessados em aprimorar conhecimentos ou aplicar técnicas de análise de vulnerabilidades possam ser implementados sem a necessidade de um custo muitas vezes impeditivo de aplicações comerciais. 1.4. Metodologia Este tópico visa elencar como foi desenvolvido o percurso metodológico no qual o trabalho se apoia. Além da correta documentação dos recursos e sistemas envolvidos são listados os processos de estudo das diferentes lições ou atividades referenciadas no trabalho. Inicialmente o ambiente de forma básica pode ser definido como uma máquina virtual com o sistema operacional Linux, servidor web apache e servidor de aplicações tomcat onde a ferramenta webgoat será instalada e configurada para posterior teste e realização das tarefas. Os sistemas e versões utilizados neste trabalho de pesquisa são listados no item 1.5 permitindo que posteriores pesquisas, que se valham deste trabalho possam reproduzir se necessário o ambiente inicial objeto de estudo. A organização do trabalho está dividida em tópicos, sendo que no tópico dois será de dada de maneira simplificada como é feito o desenvolvimento da ferramenta WebGoat, a responsável por sua concepção e sua missão. Ainda neste tópico será exposto o objetivo da ferramenta e uma visão histórica de sua origem. Por fim, como está colocada a didática da ferramenta e seu uso.
  • 8. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br No tópico três, serão demonstradas as lições que foram elencadas nos objetivos da pesquisa, seus problemas e como podemos chegar às soluções demonstrando o caminho de resolução. O estudo da ferramenta será feito através da exploração de quatro lições apresentadas. No tópico quatro será dada a conclusão deste trabalho de pesquisa revisitando os objetivos de pesquisa para verificar sua correta aplicação. 1.5. Ambiente utilizado  Sistema operacional Linux Ubuntu 10.10  Java Development Kit (JDK) 1.7.0.11  Tomcat 7.0.35  WebGoat 5.4 Standard  WebScarab Lite v20070504-1631  Web-browser Mozilla Firefox 3.6.10 com Add-ons: o Tamper Data 11.0.1 o Firebug 1.7.3 1.6. Informações adicionais sobre as ferramentas auxiliares  Tomcat: é um software open source que se utiliza das tecnologias Java Servlet e JavaServer Pages (APACHE SOFTWARE FOUNDATION, 2013), por isso a necessidade de se possui o Java instalado no ambiente. Esta ferramenta atua no ambiente montado pelo grupo para atuar como um servidor web para a aplicação WebGoat.  WebScarab: é um framework para análise de aplicações web que se comunica com elas através dos protocolos HTTP e HTTPS (OWASP, 2013c). Em algumas das lições trabalhadas pelo grupo, esta ferramenta é utilizada como um proxy (servidor intermediário) para interceptação das requisições criadas pelo web-browser e das respostas provenientes do servidor (neste caso, o servidor Tomcat). Assim torna-se possível a manipulação dos dados que estão sendo trafegados entre o cliente e o servidor.
  • 9. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br  Tamper Data: é um complemento desenvolvido para o web-browser Firefox da Mozilla, para interceptar a comunicação entre o cliente e servidor (requisição e resposta) e assim visualizar e modificar os cabeçalhos e parâmetros HTTP/HTTPS (JUDSON, 2010). Esta ferramenta foi utilizada em algumas das lições trabalhadas pelo grupo para modificar parâmetros que estavam sendo passados e também para visualizar alguns comportamentos das lições e o que está sendo passado como parâmetro, em busca de pistas para completar a lição. É uma ferramenta menos robusta que o WebScarab, portanto, é utilizada principalmente com o objetivo de auxiliar em tarefas mais simples.  Firebug: é um complemento desenvolvido para o web-browser Firefox da Mozilla, que se permite ter dentro do próprio web-browser uma ferramenta de desenvolvimento (HEWITT; ODVARKO; CAMPBELL, 2013). Com ele é possível editar, depurar e monitorar os comportamentos dos códigos HTML, CSS e JavaScript de qualquer página web e em tempo real (HEWITT; ODVARKO; CAMPBELL, 2013). Esta ferramenta foi utilizada pelo grupo para observar, no código HTML, por alguma pista para concluir a lição. Em alguns casos serviu para editar o código HTML a fim de burlar alguns comportamentos e em uma das lições, para o ajuste de uma tag HTML para que o WebScarab conseguisse atuar. E o recurso de depuração foi também utilizado para observar o comportamento da aplicação em uma das lições.
  • 10. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 2. PROJETO WEBGOAT 2.1. Open Web Application Security Project (OWASP) A Fundação OWASP (Open Web Application Security Project) surgiu em 2001 e em 2004, a OWASP foi estabelecida como organização internacional não lucrativa, por sua natureza não possui associação com empresas ou serviços ditos comerciais. Seus fóruns, aplicativos e documentos são abertos ao público em geral e está é uma das filosofias com que foi concebida. A missão é o de promover o desenvolvimento seguro de aplicações e serviços de internet, seja promovendo conferências, artigos ou através dos projetos que ela mesma desenvolve. Por sua natureza, de código aberto, ela foi imbuída de uma transparência que se reflete inclusive nas finanças. Respeito, organização e inovação também podem ser listados como valores da Fundação OWASP. Conforme citado anteriormente, a OWASP é responsável pelo desenvolvimento de informações em materiais como documentos e aplicações gratuitas e de código aberto (open-source), onde, dentre eles encontra-se o projeto WebGoat (OWASP, 2013a) que será objeto de estudo deste trabalho. Por sua missão a OWASP auxilia e ajuda em muito a dar visibilidade à segurança da informação, informando empresas e pessoas sobre os riscos na segurança de softwares (OWASP, 2013a). 2.2. WebGoat O WebGoat é uma aplicação web desenvolvida pela OWASP, construída sob a linguagem de programação Java na plataforma J2EE (Java Platform, Enterprise Edition) e concebida propositalmente para ser insegura, contendo falhas, com o objetivo de ensinar lições de segurança em aplicações web (OWASP, 2013b). A origem do nome deste projeto, segundo a organização responsável por ele (2013b), é devido ao sentimento desconfortável dos desenvolvedores por não conhecerem muito bem a respeito da segurança de suas aplicações e que eles não deveriam se sentir assim, pois até os melhores programadores cometem erros na segurança. Como um jeito de não se sentirem mal por isso e responsabilizarem a si próprios por tal desconhecimento, eles necessitam de um culpado por isso, algo conhecido em inglês como scape-goat (OXFORD, 2008). Com esta aplicação é possível verificar diversos tipos de vulnerabilidades existentes fornecendo um ambiente de aplicação web de aprendizado, com navegação através de lições em diferentes níveis. Vendo na prática como funciona e onde as vulnerabilidades residem, torna-se possível conhecer a visão do atacante para descobrir as brechas das aplicações. Assim, passa a ser possível aplicar testes na aplicação desenvolvida para evitar que estas mesmas vulnerabilidades estejam
  • 11. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br presentes em ambientes reais. É fundamental que a segurança da informação seja incluída em todo o ciclo de desenvolvimento de aplicações e serviços que são disponibilizados, seja somente para o público interno de uma organização ou exposta na Internet para o público em geral. Essa boa prática minimizará falhas e riscos desnecessários para a empresa podendo inclusive ter impactos financeiros ou exposição de dados sigilosos que muitas vezes levam a perda maciça de receita ou credibilidade. Desenvolvedores atentos e aprendendo anatomia de ataques podem se valer de uma melhor prática de programação e sem dúvida isso não deve ser negligenciado. No entanto a ideia não é sair verificando vulnerabilidades em aplicações de outrem sem a devida permissão (OWASP, 2013b). Segundo o site da organização desenvolvedora (2013b), existe a pretensão de expandir futuramente a aplicação com o objetivo de se tornar uma plataforma de benchmark e um website para servir de Honeypot (um tipo de armadilha para invasores). O WebGoat não se encontra hospedado em um servidor de internet, por isso, antes de iniciar a navegação é necessário instala-lo em uma estação de trabalho, que pode ser no próprio sistema residente em seu computador como uma máquina virtualizada para essa tarefa. Seu pré-requisito é possuir a máquina virtual Java (JVM) e o servidor web Apache Tomcat (OWASP, 2013b). Os sistemas operacionais suportados atualmente são: Linux, OS X Tiger e Windows (OWASP, 2013b). Na Figura, é possível visualizar a tela inicial do WebGoat depois de já instalado, onde do lado esquerdo as lições ou tópicos estão apresentados por temas. Figura 5 – Interface da aplicação WebGoat
  • 12. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 2.3. Didática A didática do WebGoat é baseada em ensinamentos sobre segurança em aplicações web. Através de um web-browser o usuário consegue navegar por entre as lições e ainda acompanhar a evolução através de um scorecard (OWASP, 2013b). Cada uma das lições dá uma visão geral sobre a vulnerabilidade que está sendo trabalhada e contém problemas, tais como (OWASP, 2013b): a. Cross-site Scripting (XSS); b. Falhas no controle de acesso (cross site request forgery (CSRF), acesso remoto de administrador, etc.); c. Falhas de autenticação e gerência de sessões (roubo de seção, spoof em cookie de autenticação, etc.); d. Manipulação de campos ocultos/parâmetros; e. Falhas de injeção (SQL Injection; Log spoofing, XPath injection, etc.); f. Falhas em Web Services (web service SQL/SAX injection, WSDL scanning, etc.); g. Vulnerabilidades no código (pistas e comentários no HTML); h. Buffer overflows; i. Segurança no AJAX (DOM/XML/JSON injection, etc.); j. E contém também uma lição desafio, cujo objetivo é quebrar a autenticação, roubar os dados de cartão de crédito e desfigurar o site, mais conhecido como deface. A análise das lições envolve basicamente a análise do conteúdo no lado cliente (client side) como o código fonte em HTML e os scripts, assim como a comunicação entre o cliente o servidor e também os cookies e dados locais (OWASP, 2013b). No próximo item do trabalho, Colocando em Prática, serão exemplificadas cinco lições tendo como objetivo a explicação do uso da ferramenta WebGoat bem como o aprendizado sobre a anatomia dos ataques. O escopo desse trabalho se limita ao desenvolvimento de alguns desses temas como HTML básico, Falhas no controle de acesso, Segurança do AJAX e Falhas de autenticação, porém a ferramenta WebGoat contém inúmeros outros que podem e devem ser explorados a fim de conhecer melhor um cenário real onde múltiplos ataques podem ser utilizados contra uma aplicação real.
  • 13. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 3. COLOCANDO EM PRÁTICA 3.1. Lição Geral: 3.1.1. HTML basics: O objetivo desta lição é verificar o funcionamento básico da linguagem HTML através da manipulação de caracteres que podem ser inseridos no campo de um formulário web por exemplo. Familiarizar-se com alguns campos de sessão do HTTP, cookies e códigos. No campo disponível, pede-se que seja inserido um nome ou um texto qualquer (Figura 6) Figura 6 – Interface da lição geral: HTML Basics Depois de realizada a ação, o texto é apresentado de forma reversa (Figura 7). Figura 7 – Confirmação de sucesso na lição geral: HTML Basics
  • 14. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 3.1.2. HTML splitting: O objetivo desta lição é explorar a falta de validação para o campo, onde é possível inserir códigos que são validados pela aplicação. Muitas vezes dependendo de como é feita a validação dos dados por parte da aplicação web, inserir determinados caracteres, variáveis ou códigos pode levar a um comportamento não previsto inicialmente pela aplicação, o que sem dúvida leva a um comprometimento dos dados que podem ser impressos ou manipulados. Inicialmente é inserido o seguinte código (Figura 8): en%0d%0aHTTP/1.1+200+OK Que representa: en HTTP/1.1 200 OK Figura 8 – Inserção de código simples Após a inserção do código, é possível verificar a interpretação do código e que foi detectado um ataque (Figura 9). Figura 9 – Interpretação de código e detecção de ataque Posteriormente é inserido o seguinte código (Figura 10), conforme sugere a mensagem apresentada pela anterior:
  • 15. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br en%0d%0aHTTP/1.1+304+Not+Modified Representando: en HTTP/1.1 304 Not Modified Figura 10 – Inserção de código para HTTP Splitting Agora é possível verificar novamente que houve a interpretação do código e houve sucesso no primeiro estágio desta lição (Figura 11). Figura 11 – Interpretação do código e conclusão do primeiro estágio Conforme é apresentado pela mensagem da Figura anterior, o seguinte código (Figura 12) é inserido: foobar%0d%0aContent- Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent- Type:%20text/html%0d%0aLast- Modified:%20Mon,%2027%20Oct%202060%2014:50:18%20GMT%0d%0a Content-Length:%2047 Representando: foobar Content-Length: 0 HTTP/1.1 200 OK Content-Type: text/html Last-Modified: Mon, 27 Oct 2060 14:50:18 GMT Content-Length: 47
  • 16. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 12 – Inserção de código para Cache Poisoning Agora é possível verificar sucesso nesta lição geral de HTTP Splitting e também do “envenenamento” do cache (Figura 13). Figura 13 – Sucesso na lição geral: HTTP Splitting
  • 17. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 3.2. Primeira Lição – Falhas no controle de acesso: a. Utilizando uma matriz de controle de acesso Para esta lição (Figura 14) é necessário apenas encontrar o usuário com papel de gerenciador de conta. Figura 14 – Utilizando uma matriz de controle de acesso Para isso deve-se selecionar como fonte, o papel de Account Manager e verificar o acesso de usuário a usuário até encontrar o perfil que possua este papel (Figura 15 e Figura 16). Figura 15 – Verificação do papel de gerenciador de conta com usuário Moe Figura 16 – Verificação do papel de gerenciador de conta com usuário Larry
  • 18. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Através da Figura 16, é possível verificar que o usuário Larry possui o papel de gerenciador de conta. Encontrado o usuário com este perfil, a lição é marcada como completa. b. Contornar um esquema de controle do tipo Path Based Access O objetivo desta lição (Figura 17) é ter acesso ao arquivo denominado “tomcat-users.xml”. Figura 17 – Contornar um esquema de controle do tipo Path Based Access Para isso, basta selecionar qualquer arquivo na lista e clicar no botão para visualizar o arquivo (Figura 18). Figura 18 – Arquivo selecionado para visualização Com o TamperData ativo, deve-se interceptar a requisição (Figura 19).
  • 19. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 19 – Interceptação via TamperData Através da interceptação, via TamperData, digitar o caminho do arquivo alvo denominado “tomcat-users.xml”. Conforme consta na descrição desta lição, o arquivo se encontra no seguinte diretório: “../tomcat/conf/tomcat-users.xml”. Como o diretório atual é: “/home/webgoat/Desktop/WebGoat- 5.4/tomcat/webapps/WebGoat/lesson_plans/English”, então o objetivo é retornar até o diretório “../tomcat” para assim seguir até o outro diretório onde se encontra o arquivo alvo. Este procedimento deve ser realizado através do seguinte comando: “../../../../conf/tomcat-users.xml” (Figura 20). Figura 20 – Comando para acesso ao arquivo via TamperData Após acesso ao arquivo “tomcat-users.xml” esta lição é marcada como completa e é apresentado o conteúdo do arquivo logo abaixo da lista de arquivos (Figura 21).
  • 20. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 21 – Visualização do arquivo “tomcat-users.xml” c. LAB: Controle de acesso baseado em papel i. Estágio um: Contornar o controle de acesso da camada de negócio O objetivo para este estágio (Figura 22) é utilizar a função de apagar perfis com um usuário que não tenha privilégios necessários para isso, ou seja, realizar uma ação não permitida para o perfil.
  • 21. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 22 – Estágio um: Contornar o controle de acesso da camada de negócio Para realizar este objetivo, deve-se entrar no perfil com privilégios de administração (Figura 23) para verificar como é denominada a ação de apagar perfis. Figura 23 – Lista de perfis disponíveis É selecionado o usuário John Wayne (como sugerido pela lição, a senha é o primeiro nome em letras minúsculas, portanto: john), que possui papel de administrador (Figura 24).
  • 22. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 24 – Login de usuário com privilégios de administrador Uma vez dentro do perfil de John Wayne, é selecionada a ação de apagar perfis (Figura 25). Figura 25 – Opção de apagar perfis selecionada Através da interceptação desta ação, via TamperData, é importante verificar que o nome dela é “DeleteProfile” (Figura 26). Figura 26 – Nome da ação de apagar perfis Agora com um usuário de privilégio do tipo empregado, é realizado o acesso (Figura 27).
  • 23. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 27 – Acesso de usuário com privilégios do tipo empregado Uma vez acessado o perfil do usuário, é possível verificar que não existe a opção de apagar perfis. Mas ainda assim será possível realizar tal operação. Para isso, basta selecionar o perfil e clicar em qualquer botão, neste caso será selecionado o botão de visualizar o perfil (Figura 28). Figura 28 – Seleção de perfil do usuário Após clicar no botão, a ação deve ser interceptada pelo TamperData e o nome da ação deve ser renomeada para a ação de apagar perfis (Figura 29), que neste caso é: DeleteProfile. Figura 29 – Alteração do nome da ação chamada Feito isso, o estágio está completo e se segue para o próximo estágio (Figura 30).
  • 24. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 30 – Conclusão do estágio ii. Estágio dois: Adicionar o controle de acesso da camada de negócio Para a realização deste estágio (Figura 31) é necessário possuir a versão de desenvolvedor do programa WebGoat. Como este trabalho se pauta pela versão padrão do programa, então será seguido para o próximo estágio. Figura 31 – Estágio dois iii. Estágio três: Contornar o controle de acesso da camada de dados
  • 25. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Neste estágio será realizado o acesso indevido das informações de perfil de outro usuário. Antes de iniciar de fato esta lição, é interessante verificar os valores dos perfis disponíveis, para esta tarefa foi utilizado o FireBug para facilitar a busca pelo trecho de código (Figura 32). Figura 32 – Trecho de código com perfis disponíveis, obtidos através do Firebug Feito isso, pode-se fazer o acesso com o perfil de Tom Cat (Figura 33), com a senha tom. Figura 33 – Acesso ao usuário Tom Cat Com o perfil de Tom, agora é possível verificar informações de outros usuários, através da intercepção via TamperData (Figura 34) e alteração do valor do perfil.
  • 26. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 34 – Interceptação da ação de visualização de perfis Para este experimento será visualizada as informações do usuário de valor igual a 111, que de acordo com o código obtido através do FireBug (Figura 32), representa o perfil de John Wayne. Então o valor do parâmetro chamado de “employee_id” será igual a 111 (Figura 35). Figura 35 – Alteração do valor do parâmetro “employee_id” Feito isso, torna-se possível a visualização das informações do usuário John Wayne através do perfil de Tom Cat e assim este estágio encontra-se concluído (Figura 36). Figura 36 – Visualização das informações de John Wayne com perfil de Tom Cat iv. Estágio quatro: Adicionar o controle de acesso da camada de dados Da mesma forma que o estágio dois, para a realização deste estágio (Figura 37) é necessário possuir a versão de desenvolvedor do programa
  • 27. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br WebGoat. Como este trabalho se pauta pela versão padrão do programa, então será seguido para a próxima lição. Figura 37 – Estágio quatro d. Acesso remoto de administrador O objetivo desta lição é realizar acesso à interface administrativa do WebGoat. Acessando o WebGoat normalmente, ele já apresenta a opção com as funções administrativas no menu. Porém ela é restrita, apresentando somente a opção de visualizar o Report Card (Figura 38). Figura 38 – Opções administrativas disponíveis com acesso não administrativo Para ter acesso às outras informações administrativas basta adicionar a informação "&admin=true" à URL, em qualquer interface (Figura 39). Figura 39 – Obtendo acesso administrativo através da URL Com acesso administrativo, as opções das funções administrativas estão completas (Figura 40). Agora se tem acesso às interfaces de informação do usuário e do produto e ainda uma opção chamada Adhoc Query apareceu, porém não será trabalhada para esta lição.
  • 28. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 40 – Opções administrativas completas com acesso administrativo Ao clicar na opção de informação do usuário, a interface pode retornar à interface inicial, então se deve adicionar novamente à informação "&admin=true" à URL (Figura 39) e a interface irá exibir as informações do usuário (Figura 41). Figura 41 – Informação do usuário Ao clicar na opção de informação do produto, a interface pode retornar à interface inicial, então se deve adicionar novamente à informação "&admin=true" à URL (Figura 39) e a interface irá exibir as informações do produto (Figura 42). Figura 42 – Informação do produto Retornando à lição corrente, pode-se observar que agora ela se encontra completa (Figura 43). Figura 43 – Lição de acesso remoto de administrador
  • 29. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 3.3. Segunda Lição – Segurança no AJAX: a. Política de proteção de mesma origem Esta lição (Figura 44) apresenta o elemento chave do AJAX, que é o XMLHttpRequest (XHR), que permite o javascript a fazer chamadas assíncronas do cliente para o servidor. Figura 44 – Política de proteção de mesma origem Para completar esta lição, basta clicar nos dois links e observar o que acontece ao longo do processo. Então primeiramente é clicado o primeiro link, que faz referência ao arquivo “sameOrigin.jsp” (Figura 45). Figura 45 – Referência ao arquivo sameOrigin.jsp Nesse processo é criada uma requisição XHR e o resultado é apresentado na Figura 46. Figura 46 – Resposta do arquivo "sameOrigin.jsp"
  • 30. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Clicando agora no segundo link, ele faz uma referência ao site de buscas, Google, buscando por aspectos de segurança (Figura 47). Figura 47 – Referência ao site de buscas Google Da mesma forma que o primeiro link, é criado uma requisição XHR e a lição se torna completa (Figura 48). Figura 48 – Lição completa b. LAB: DOM-Based cross-site scripting Esta lição apresenta o desafio de desfigurar o site (deface). E o objetivo aqui é inserir uma imagem através do campo de entrada de dados. Figura 49 – LAB: DOM-Based cross-site scripting Para isso, deve-se clicar no link do texto “OWASP IMAGE” (Figura 49) e verificar a sua localização (Figura 50).
  • 31. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 50 – Localização da Imagem OWASP Utilizando a tag “img” HTML, basta inserir a localização da imagem e inserir no campo de entrada desta lição (Figura 51): <img src="images/logos/owasp.jpg" /> Figura 51 – Inserção da tag “img” HTML no campo de entrada Feito isso, o primeiro estágio estará completo e seguirá para o segundo estágio (Figura 52). Figura 52 – Estágio um completo Para o segundo estágio, basta forçar um erro na fonte da imagem e inserir um alerta para exibir uma mensagem (Figura 53): <img src=null onerror="alert('FIAP - 19SEG')" /> Figura 53 – Exibição de alerta com o erro na fonte da imagem
  • 32. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Feito isso, o segundo estágio estará completo e seguirá para o terceiro estágio (Figura 54). Figura 54 – Estágio dois completo Para o terceiro estágio, deve-se adicionar uma tag de “iframe” (Figura 55): <iframe src="javascript:alert('FIAP - 19SEG');"></iframe> Figura 55 – Inserção da tag “iframe” Feito isso, o terceiro estágio estará completo e seguirá para o quarto estágio (Figura 56). Figura 56 – Estágio três completo Para este próximo estágio (Figura 57), basta inserir o código fornecido, demonstrado na Figura 56: Please enter your password:<BR><input type = "password" name="pass"/><button onClick="javascript:alert('I have your password: ' + pass.value);">Submit</button><BR><BR><BR><BR><BR><BR><BR><B R><BR><BR><BR><BR><BR><BR><BR><BR>
  • 33. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 57 – Inserção do código fornecido Se inserir um texto no campo de senha (neste caso foi inserido o seguinte texto: SENHA), ele irá exibir na janela que se abrirá (Figura 58). Figura 58 – Exibição da senha Feito isso, o quarto estágio estará completo e seguirá para o quinto estágio (Figura 59). Figura 59 – Estágio quatro completo Para o quinto estágio, o objetivo é realizar uma correção no arquivo “escape.js” para mitigar a vulnerabilidade do DOM XSS. Para isso, deve-se editar o arquivo utilizando-se o seguinte comando através de um terminal (Figura 60): sudo gedit /home/webgoat/Desktop/WebGoat- 5.4/tomcat/webapps/WebGoat/javascript/DOMXSS.js Figura 60 – Comando para abrir o arquivo no editor de texto
  • 34. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Ao abrir o arquivo no editor de texto, será apresentando a informação apresentada pela Figura 61: Figura 61 – Código original Alterar o código onde se encontra o “name” e inserir o seguinte código (Figura 62): escapeHTML(name); Figura 62 – Código alterado Feito isso, basta retornar à lição e clicar novamente no botão de submeter para concluir este estágio (Figura 63). Figura 63 – Estágio cinco completo c. LAB: Filtro no lado cliente O objetivo dessa lição é demonstrar os perigos em enviar informações desnecessárias e que, supostamente, o usuário não deveria visualizar. Para verificar este problema, deve-se selecionar qualquer usuário da lista, com o objetivo de carregar algumas informações.
  • 35. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Com o auxílio do FireBug, basta procurar no código por uma tabela oculta com id denominado "hiddenEmployeeRecords" (Figura 64). Figura 64 – Informações na tabela oculta Para o preenchimento do campo de entrada desta lição, é necessário encontrar o valor referente ao salário do usuário Neville, que possui o id igual a 112 (Figura 65). Figura 65 – Informação solicitada sobre o salário de um usuário Com este primeiro estágio completo, agora o objetivo é corrigir o problema (Figura 66), para que se retornem somente as informações necessárias para o usuário selecionado.
  • 36. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 66 – Estágio um completo Para isso, deve-se editar o arquivo "clientSideFiltering.jsp" utilizando-se o seguinte comando através de um terminal (Figura 67): sudo gedit /home/webgoat/Desktop/WebGoat- 5.4/tomcat/webapps/WebGoat/lessons/Ajax/clientSideFiltering.jsp Figura 67 – Comando para abrir o arquivo no editor de texto No arquivo, é possível verificar o trecho de código com a função de acrescentar ao objeto "sb" referente ao StringBuffer (Figura 68). Figura 68 – Informações originais do arquivo Para garantir que somente um gerente veja os empregados que trabalham para ele, deve-se alterar o código para (Figura 69): sb.append("/Employees/Employee[Managers/Manager/text() = " + userId + "]/UserID | "); sb.append("/Employees/Employee[Managers/Manager/text() = " + userId + "]/FirstName | "); sb.append("/Employees/Employee[Managers/Manager/text() = " + userId + "]/LastName | ");
  • 37. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br sb.append("/Employees/Employee[Managers/Manager/text() = " + userId + "]/SSN | "); sb.append("/Employees/Employee[Managers/Manager/text() = " + userId + "]/Salary "); Figura 69 – Informações alteradas no arquivo Retornando para a lição e selecionando qualquer usuário novamente, pode-se verificar que a tabela oculta não apresenta mais informações desnecessárias para este usuário que está solicitando as informações (Figura 70). Figura 70 – Informações com maior restrição na tabela oculta Para completar esta lição, basta clicar no botão localizado no final da página (Figura 71). Figura 71 – Botão de conclusão da lição
  • 38. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br d. DOM injection Para esta lição, pode-se trabalhar em duas formas. A primeira delas, porém incorreta, será utilizando o FireBug. Com o auxílio deste plugin, busca-se pelo código do botão desabilitado e procurar pelo código responsável por isto (Figura 72). Figura 72 – Código responsável pela desativação do botão Para habilitar basta apagar este código (Figura 73). Figura 73 – Código responsável pela desativação do botão apagado Dessa forma, torna-se possível inserir a informação no campo de entrada e ativar. Porém é possível verificar que a informação inserida não é válida (Figura 74). Figura 74 – Botão ativo e informação inválida Mas mesmo apesar de ser feito da forma incorreta (o botão se torna ativo, mas aparece o texto indicando que a chave está errada), a lição é marcada como completa (Figura 75).
  • 39. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 75 – Lição completa de forma incorreta Uma vez completa, é importante reiniciar a lição para realizar outras formas de completar novamente (Figura 76). Figura 76 – Reiniciando a lição A segunda forma, a mais correta para esta lição, é utilizando o WebScarab. Mas antes é necessário realizar o ajuste de uma tag HTML. Com o auxílio do FireBug, deve-se localizar o código referente ao campo de entrada (Figura 77). Figura 77 – Código referente ao campo de entrada O parâmetro "Name" deve ser selecionado e apagado (Figura 78). Figura 78 – Parâmetro "Name" selecionado e apagado O código referente a este campo deve ficar na forma como é apresentada na Figura 79. Figura 79 – Código referente ao campo de entrada corrigido Agora, deve-se ativar a interceptação de respostas no WebScarab (Figura 80).
  • 40. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 80 – Interceptação de respostas via WebScarab Com a interceptação ativa, deve ser inserido um número qualquer no campo de entrada (por exemplo: 1) e a resposta será interceptada (Figura 81). Figura 81 – Resposta interceptada Deve-se selecionar todo o corpo do texto, apagar e substituir pelo seguinte comando (Figura 82): document.form.SUBMIT.disabled=false;
  • 41. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 82 – Comando para habilitar o botão Com o botão habilitado, torna-se possível ativar o número inserido no campo de entrada e ele passa a ser interpretado como sendo uma informação válida (Figura 83). Figura 83 – Botão ativo e informação válida Agora é apresentada a mensagem de conclusão (Figura 84) e a lição pode ser concluída de forma correta. Figura 84 – Lição completa de forma correta e. XML injection O objetivo desta lição é adicionar mais prêmios à lista. Para isso, deve-se ativar a interceptação de respostas via WebScarab (Figura 80) e inserir o id fornecido ao campo de entrada (Figura 85). Figura 85 – Inserção do id fornecido ao campo de entrada
  • 42. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Na resposta interceptada, as informações que originalmente seria enviada podem ser visualizadas (Figura 86). Figura 86 – Lista original de prêmios Para inserir os outros dois prêmios disponíveis, será utilizado o seguinte código no WebScarab (Figura 87): <reward>WebGoat Core Duo Laptop 2000 Pts</reward> <reward>WebGoat Hawaii Cruise 3000 Pts</reward> Figura 87 – Lista alterada de prêmios Os prêmios inseridos são exibidos na lista da página e passíveis de serem selecionados (Figura 88).
  • 43. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 88 – Lista de prêmios alterada exibida na página Para concluir a lição (Figura 89), basta selecionar os itens e submeter. Figura 89 – Lição concluída f. JSON injection O objetivo desta lição é alterar o valor de passagens aéreas através da interceptação da resposta. Iniciando pela inserção das informações nos campos de entrada, no campo "From" deve ser colocado o código "BOS" e no campo "To", o código SEA (Figura 90). Figura 90 – Inserção dos códigos nos campos de entrada
  • 44. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br É importante lembrar que antes de submeter estas informações, a resposta deve ser interceptada pelo WebScarab (Figura 80). Posteriormente é possível verificar os valores das passagens aéreas originais que seriam exibidas (Figura 91). Figura 91 – Resposta com o valor original das passagens interceptada Os valores devem ser alterados (neste caso ambos foram alterados para $100), como mostra na Figura 92. Figura 92 – Código com valores alterados Na interface da lição é exibida a tabela com o valor das passagens aéreas alteradas nesse processo de interceptação (Figura 93). Figura 93 – Valor das passagens alteradas
  • 45. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Para completar a lição, basta selecionar uma opção e submeter a informação (Figura 94). Figura 94 – Opção selecionada E a lição estará concluída (Figura 95). Figura 95 – Lição concluída g. Ataques de transações silenciosas Esta lição (Figura 96) simula a transferência monetária de uma aplicação de internet banking. O objetivo desta lição é realizar um ataque silencioso na aplicação bancária. Analisando o código, é possível identificar que o botão para submeter chama uma função denominada de "processData" que verifica se o usuário possui saldo suficiente para realizar a transação. Esta função chama ainda outra função denominada "submitData", que realiza a transferência de fato e passa os parâmetros de número de conta e a quantidade monetária respectivamente. Figura 96 – Lição sobre ataques de transações silenciosas Sabendo desta informação, é possível realizar a ação através de código em javascript, diretamente da barra de endereços do browser. Para isso, basta inserir o seguinte código (Figura 97), por exemplo: javascript:submitData(1234556,11000);
  • 46. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 97 – Passagem de código javascript através da URL do browser Mas antes de realizar a ação, deve-se ativar a intercepção de requisições através do WebScarab (Figura 98). Figura 98 – Interceptação de requisições via WebScarab E observar como que o javascript é processado pela aplicação (Figura 99). Figura 99 – Requisição com o processamento do javascript interceptada E assim a lição estará completa (Figura 100). Figura 100 – Transação realizada e lição completa Outra forma de realizar a transação de forma silenciosa é através da própria interceptação da requisição. Digitando um valor qualquer para ambos os campos (Figura 101). Figura 101 – Inserção de um valor qualquer para ambos os campos E através da interceptação da requisição, procurar pela informação inserida (Figura 102).
  • 47. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 102 – Informação inserida E substituir pelo número da conta e pelo valor da transferência (Figura 103). Figura 103 – Substituição pelo número da conta e valor de transferência Assim a transação também segue como completa (Figura 104). Figura 104 – Transação e lição completa h. Perigos na utilização do Eval O objetivo desta lição (Figura 105) é inserir um comando malicioso no campo de entrada, que possui uma chamada para uma função javascript eval. Esta função basicamente avalia o código enviado na função e executa. Figura 105 – Lição sobre os perigos na utilização da função eval
  • 48. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Para realizar esta lição, deve ser mostrada uma caixa de diálogo com o cookie, inserindo o seguinte código (Figura 106): 123');alert(document.cookie);(' Representando (indicado na cor vermelha): eval('123'); alert(document.cookie); (''); Figura 106 – Inserção do código de caixa de diálogo com o cookie E assim a lição estará completa Figura 107. Figura 107 – Lição completa i. Armazenamento inseguro O desafio desta lição é encontrar o código do cupom de desconto (Figura 108). Figura 108 – Lição sobre armazenamento inseguro das informações
  • 49. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Primeiramente é necessário descobrir em que parte do código está inserida a informação sobre o cupom. Com o auxílio do FireBug é possível verificar tal informação na aba “Script” sobre o arquivo “clientSideValidation.js”, mais precisamente na linha 12 onde existe uma variável chamada “decrypted”. Para facilitar o que é mostrado é interessante colocar um ponto de parada, clicando sobre o número da linha (Figura 109). Figura 109 – Trecho de código onde é encontrada uma variável denominada “decrypted” Entrando com uma informação no campo de código de cupom e selecionando a ação de “play” no Firebug, é possível observar as mudanças que ocorrem sobre esta variável e observar o que ela armazena (Figura 110), por exemplo, é “PLATINUM”, porém ao longo do processo pode-se observar ainda que ela varia com outras informações. Figura 110 – Análise sobre a variável “decrypted” Dessa forma pode-se inserir qualquer informação armazenada por esta variável, no campo de código do cupom (Figura 111).
  • 50. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 111 – Inserção do código do cupom encontrada na variável E assim este primeiro estágio está completo (Figura 112). Figura 112 – Estágio um completo Para o segundo estágio, o desafio é tornar o pedido gratuito (Figura 113). Figura 113 – Objetivo do estágio 2 Novamente com o auxílio do FireBug, localizar trecho de código referente ao campo de entrada do total, que possui o nome de “GRANDTOT”. Encontrado o código, pode-se observar que ele está como somente leitura (Figura 114). Figura 114 – Código do campo de entrada do total Como o objetivo é alterar o valor, basta tirar esta propriedade (Figura 115). Figura 115 – Código alterado do campo de entrada do total
  • 51. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br E assim ir para a interface e clicar sobre o campo de total (Figura 116). Figura 116 – Interface com o campo de total editável E editar o valor para zero, para o pedido se tornar gratuito (Figura 117). Figura 117 – Edição do valor para o pedido ser gratuito E assim a lição se torna completa (Figura 118). Figura 118 – Lição completa
  • 52. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 3.4. Terceira Lição – Falhas de autenticação: a. Força da senha O objetivo desta lição (Figura 119) é apenas verificar a força das senhas fornecidas, analisando o grau de complexidade e o tempo necessário para quebra-las. Deve-se lembrar que para esta lição a internet deve estar habilitada. Figura 119 – Lição sobre a força da senha Acessar o site sugerido pela lição (Figura 120), para medir o tempo de quebra das senhas: https://www.cnlab.ch/codecheck Figura 120 – Site sugerido para medir o tempo de quebra de senhas
  • 53. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br No site, deve-se inserir a primeira senha no campo e fazendo a checagem (Figura 121). Figura 121 – Checagem da senha O resultado obtido é que é uma senha obviamente fraca e o tempo aproximado para descobrir esta senha é de zero segundo (Figura 122). Figura 122 – Resultado obtido da análise da senha Realizando o teste para todas as senhas fornecidas, o resultado deverá ser como o observado na Figura 123. Figura 123 – Resultado do tempo de quebra das senhas fornecidas E assim a lição estará completa (Figura 124).
  • 54. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 124 – Lição completa b. Esquecimento de senha Ao mesmo tempo em que as perguntas para recuperação de senha auxiliam no processo para obter a senha esquecida, pode facilitar também a vida para os oportunistas descobrirem a senha. Nesta lição o objetivo será descobrir a senha do administrador. Mas primeiramente será demonstrada a descoberta da senha para o usuário “webgoat” (Figura 125). Figura 125 – Recuperação de senha para o usuário “webgoat” A pergunta para este usuário é sobre a cor favorita dele. Dado o ambiente do WebGoat, pode-se presumir que a cor favorita é vermelha. Então é inserida a cor vermelha como resposta (Figura 126). Figura 126 – Resposta à pergunta secreta do usuário “webgoat”
  • 55. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br E assim pode-se verificar qual a senha para este usuário (Figura 127). Figura 127 – Senha do usuário “webgoat” descoberta Agora realizando o processo para o administrador (Figura 128). O teste será feito com o nome sugestivo “admin”, pelo motivo de ser um codinome muito comum nas aplicações. Figura 128 – Recuperação de senha para o usuário “admin” A pergunta para este usuário é também a cor favorita dele. Como não existem indícios de cor, um jeito simples é testar com as cores comuns e partir posteriormente para as possíveis cores existentes (Figura 129). Figura 129 – Tentativa para descobrir a cor favorita Não demora muito, através da cor verde foi possível descobrir a senha para o usuário “admin” (Figura 130). Figura 130 – Senha do usuário “admin” descoberta
  • 56. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br c. Autenticação básica O objetivo desta lição (Figura 131) é encontrar o nome do cabeçalho de autenticação e o valor descodificado do cabeçalho de autenticação. Figura 131 – Lição sobre autenticação básica Através da interceptação das requisições através do WebScarab (Figura 98), é possível verificar que o nome do cabeçalho de autenticação é “Authorization” e o valor dele é “Z3Vlc3Q6Z3Vlc3Q=” (Figura 132). Figura 132 – Requisição interceptada para análise do cabeçalho de autenticação Como o valor está criptografado, pode-se utilizar o WebScarab para decodificar (Tools -> Transcoder), como mostra a Figura 133.
  • 57. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 133 – Decodificação via WebScarab Inserindo o código na interface, basta clicar na opção denominada “Base 64 decode” para decodificar este código (Figura 134). Figura 134 – Descodificando o valor O resultado da descodificação pode ser observado na Figura 135. Figura 135 – Valor descodificado Agora basta inserir as informações já coletadas (lembrando-se de abortar a interceptação da requisição e desabilitando posteriormente o WebScarab), o nome do cabeçalho de autenticação que é “Authorization” e o valor descodificado dele que é “guest:guest” (Figura 136). Figura 136 – Inserção das informações coletadas
  • 58. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br E assim aparecerá o próximo objetivo (Figura 137). Figura 137 – Lição completa Deve-se realizar qualquer ação, clicando em qualquer link e interceptar novamente a requisição através do WebScarab (Figura 98), deve-se encontrar a informação do cookie (Figura 138). Figura 138 – Informação sobre o cookie na interceptação da requisição Deve-se alterar o valor do id para um valor inválido (Figura 139), para forçar que a seção do usuário atual seja encerrada. Figura 139 – Valor inválido para o id Assim é possível realizar o acesso com o usuário “basic” e senha “basic”, como sugerido pela lição (Figura 140). Em alguns ambientes, pode ser necessário fechar o web-browser e abri-lo novamente e em outros casos é necessário apagar as senhas salvas e limpar o cookie e cache. Figura 140 – Acesso com usuário “basic” Feito isso, basta buscar pela lição vigente através do menu para completa-la (Figura 141). Para dar continuidade nas lições, sair da seção deste usuário (pode ser que seja necessário fechar e abrir o web-browser) e realizar o acesso com o usuário “guest” (senha: “guest”).
  • 59. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 141 – Lição completa d. Login multi nível dois O objetivo desta lição é realizar acesso com um usuário e realizar ações com outro usuário. Conforme sugere a lição, primeiramente deverá ser realizado o acesso com o usuário de Joe (Figura 142). Figura 142 – Acesso do usuário Joe É necessário inserir o valor de “TAN #1”, fornecido na lição (Figura 143). Figura 143 – Inserção do valor de “TAN #1”
  • 60. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Através da interceptação das requisições com o WebScarab (Figura 98), pode-se observar que existe uma variável denominada de “hidden user” (Figura 144). Figura 144 – Variável de usuário oculto Agora se deve alterar o valor desta variável para Jane (Figura 145), como sugere a lição. Figura 145 – Alteração do valor do usuário oculto E assim é realizado o acesso de Jane com o usuário Joe, então esta lição é marcada como completa (Figura 146). Figura 146 – Lição completa e. Login multi nível 1 A ideia desta lição é parecida com a anterior. Primeiramente é realizado o acesso com o usuário Jane (Figura 147), como sugerida pela lição.
  • 61. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 147 – Login com usuário Jane Deve-se inserir o valor de “TAN #2” (Figura 148). Figura 148 – Inserção do valor de “TAN #2” E assim este estágio se encontra completo (Figura 149). Figura 149 – Estágio 1 completo Partindo para o segundo estágio, deve ser realizado o acesso com Jane também (Figura 150). Figura 150 – Novo acesso com usuário Jane
  • 62. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br O único valor fornecido pela lição é o valor de “TAN #1”, porém o valor exigido é o valor de “TAN #3”. Dessa forma a única opção é inserir o valor fornecido (Figura 151). Figura 151 – Inserção do valor de “TAN #1” Através da interceptação da requisição através do WebScarab (Figura 98), pode-se observar que o valor da variável denominada “hidden_tan” é 3 (Figura 152). Figura 152 – Valor da variável “hidden_tan” Deve-se alterar o valor para 1, devido a número de “TAN” ser #1 (Figura 153). Figura 153 – Alteração do valor da variável “hidden_tan” Assim o sistema realiza a operação com sucesso e a lição está completa (Figura 154). Figura 154 – Operação realizada com sucesso e lição completa
  • 63. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 3.5. Lição Desafio: O objetivo nesta lição (Figura 155) é burlar o método de autenticação, descobrir todos os cartões de créditos registrados no banco de dados do sistema e desfigurar a página. Figura 155 – Lição desafio É importante observar se existe alguma pista fornecida durante a autenticação, para isto deve-se digitar qualquer valor nos campos de entrada e submeter, interceptando a requisição através do auxílio do TamperData (Figura 156). Figura 156 – Preenchimento dos campos de entrada e ativação do TamperData Na interface de interceptação do TamperData é possível observar a existência de uma informação sobre um determinado usuário (Figura 157). Figura 157 – Interceptação da requisição via TamperData Acessando o código fonte da ferramenta (Figura 158), através do seguinte link: http://localhost:8080/WebGoat/source?source=true
  • 64. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 158 – Acessando o código fonte do WebGoat Procurando pela informação de usuário obtida na interceptação da autenticação (youaretheweakestlink), pode-se observar que no código existe a informação a respeito da senha deste usuário (Figura 159). Figura 159 – Informação sobre a senha no código fonte do WebGoat Retornando para a lição, devem-se inserir estas informações de usuário e senha encontradas para realizar a autenticação (Figura 160). Figura 160 – Autenticação com as informações de usuário e senha encontradas Obtendo-se assim sucesso na autenticação com estas informações, como se pode observar na Figura 161. Figura 161 – Sucesso na autenticação Observando os cartões de crédito disponíveis neste momento, é possível observar que existem apenas dois (Figura 162). A tarefa agora é obter acesso a todos os cartões de crédito registrados no banco de dados do sistema.
  • 65. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 162 – Cartões de crédito disponíveis Com o auxílio do TamperData, deve-se clicar no botão disponível na interface (“Buy Now!”) para interceptar a requisição (Figura 163). Figura 163 – Interceptando via TamperData E assim observar a informação a respeito do cookie do usuário (Figura 164). Figura 164 – Informação sobre o cookie do usuário Com o auxílio do WebScarab deve-se decodificar (Figura 133) a sequência deste parâmetro do cookie deste usuário, utilizando a Base64 (Figura 165). E assim pode-se observar que se refere ao mesmo usuário que foi feito a autenticação Figura 165 – Decodificação via WebScarab Agora para obter acesso aos registros de cartões de créditos do banco de dados do sistema, deve-se inserir um código para forçar a exibição deles (' or '1'='1), via SQL Injection e codificar com a Base64 via WebScarab (Figura 166). Figura 166 – Codificação via WebScarab, com o código malicioso inserido
  • 66. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Este código gerado deve ser substituído no cookie, com mostra a Figura 167. Figura 167 – Inserção do código de Base64 E assim torna-se possível o acesso a todos os cartões de crédito registrados no banco de dados do sistema e mais uma parte deste desafio está completa (Figura 168). Figura 168 – Lista de todos os cartões de créditos disponíveis no sistema e completude de mais uma etapa Partindo para o próximo estágio, agora o objetivo é desfigurar a página principal do WebGoat, que segundo informações encontradas nesta lição, o arquivo responsável é “webgoat_challenge_guest.jsp” (Figura 169). Figura 169 – Estágio 3
  • 67. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Para saber a localização deste arquivo, deve-se selecionar algum item e clicar no botão “View Network” (Figura 170), interceptando a requisição através do WebScarab (Figura 98). Figura 170 – Seleção de qualquer item e ação chamada através do botão Na interceptação da requisição, deve-se inserir o seguinte comando após o texto que está na variável “File” (Figura 171), com o objetivo de localizar o arquivo “webgoat_challenge_guest.jsp”: tcp && find -iname webgoat_challenge_guest.jsp Figura 171 – Inserção do comando na interceptação da requisição para localizar o arquivo Ao final da lista é possível verificar o caminho para o arquivo, como mostra na Figura 172. Figura 172 – Caminho do arquivo Realizando uma nova ação (selecionando um item e clicando no botão “View Network”), será possível interceptar novamente a requisição e inserir o seguinte
  • 68. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br comando após o texto que está na variável “File” (Figura 173), para realizar a desfiguração da página: tcp && echo "<html><body>PÁGINA DESFIGURADA!</body></html>" > ./tomcat/webapps/WebGoat/webgoat_challenge_guest.jsp Figura 173 – Inserção do comando na interceptação da requisição para desfigurar a página E assim é mostrada a página desfigurada e este estágio está completo (Figura 174). Figura 174 – Página desfigurada e estágio completo
  • 69. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br O próximo estágio apresenta apenas a confirmação de que a lição foi finalizada com sucesso e uma mensagem aos usuários (Figura 175). Figura 175 – Lição finalizada com sucesso e uma mensagem aos usuários
  • 70. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 4. CONCLUSÃO O WebGoat cumpre sua função de aplicação web de aprendizado, ilustrando as falhas de segurança de uma forma bem estruturada e dividida em tópicos por tipos de vulnerabilidades, através das lições. Sendo útil para detectar, conhecer e explorar as vulnerabilidades existentes e observar no ponto de vista de um atacante, como ele poderia agir e explorá-las dentro de uma aplicação web. Apesar de a aplicação apresentar apenas em algumas lições a oportunidade para corrigir a vulnerabilidade, com o conhecimento adquirido pela observação do método utilizado por cada lição, torna-se possível buscar e estudar por métodos de proteger e corrigir a vulnerabilidade. É uma boa forma para desenvolvedores e estudantes de segurança da informação para se aprimorarem, verificando a anatomia dos ataques, e assim tentarem colocar em prática no cotidiano do ciclo de vida de desenvolvimento das aplicações e serviços web para evitar que falhas comuns estejam presentes. E sob o ponto de vista de testes de software, a realização das lições pode ser observada como sendo um teste com a técnica de caixa-preta (analisando o comportamento externo da aplicação, sem considerar o comportamento interno). Dessa forma apresenta também uma forma de aprimoramento para os profissionais em testes de software, principalmente sobre os testes de segurança de aplicações, e assim também contribuírem no ciclo de vida de desenvolvimento, auxiliando na diminuição das falhas comuns e nos riscos que estas aplicações poderiam correr desnecessariamente. Para finalizar, vale a pena lembrar que o objetivo da aplicação não é sair por ai procurando por vulnerabilidades nas aplicações de outrem sem a devida permissão. E assim como a própria aplicação sugere que a pessoa que utilizar estas técnicas para realizar ataques, esta poderá ser pega e/ou demitida por este ato. Portanto, deve-se utilizar este aprendizado na melhor forma possível e na legalidade.
  • 71. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br 5. REFERENCIAL BIBLIOGRÁFICO APACHE SOFTWARE FOUNDATION. Apache Tomcat. [S.l.]: Apache Software Foundation, 2013. Disponível em: <http://tomcat.apache.org/>. Acesso em: 14 de março de 2013. HEWITT, J; ODVARKO, J.; CAMPBELL, R. Firebug. [S.l.]: Add-ons for Firefox, 2013. Disponível em: <https://addons.mozilla.org/pt-br/firefox/addon/firebug/>. Acesso em: 14 de março de 2013. JUDSON, A. Tamper Data. [S.l.]: Add-ons for Firefox, 2010. Disponível em: <https://addons.mozilla.org/pt-br/firefox/addon/tamper-data/>. Acesso em: 14 de março de 2013. MAYHEW, B.; WILLIAMS, J.. OWASP WebGoat, versão 5.4. [S.l.]: 2012. Aplicação web. OWASP. About OWASP. [S.l.]: Open Web Application Security Project Foundation, 2013a. Disponível em: <https://www.owasp.org/index.php/About_OWASP>. Acesso em: 6 de fevereiro de 2013. OWASP. WebGoat Project. [S.l.]: Open Web Application Security Project Foundation, 2013b. Disponível em: <https://www.owasp.org/index.php/OWASP_WebGoat_Project>. Acesso em: 6 de fevereiro de 2013. OWASP. WebScarab Project. [S.l.]: Open Web Application Security Project Foundation, 2013c. Disponível em: <https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project>. Acesso em: 14 de março de 2013. OXFORD. 2 ed. Pocket Oxford American Dictionary. New York: Oxford University Press, 2008. RODRIGUES, M.. OWASP Top 10 + Java EE. [S.l.]: OWASP Paraíba, 2011. Disponível em: <https://www.owasp.org/images/7/7a/Magno_Logan_AppSec_Latam_2011_- _OWASP_Top_10_%2B_JavaEE.pdf>. Acesso em: 17 de fevereiro de 2013.
  • 72. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br ÍNDICE DE ILUSTRAÇÕES Figura 1 – SQL Injection no banco de currículos da organização C.E.S.A.R..............4 Figura 2 - SQL Injection no banco de currículos da organização Pitang – Agile IT.....4 Figura 3 - SQL Injection no banco de currículos da organização C.E.S.A.R ..............5 Figura 4 - SQL Injection no banco de currículos da organização Pitang – Agile IT.....5 Figura 5 – Interface da aplicação WebGoat .............................................................11 Figura 6 – Interface da lição geral: HTML Basics .....................................................13 Figura 7 – Confirmação de sucesso na lição geral: HTML Basics............................13 Figura 8 – Inserção de código simples.....................................................................14 Figura 9 – Interpretação de código e detecção de ataque........................................14 Figura 10 – Inserção de código para HTTP Splitting ................................................15 Figura 11 – Interpretação do código e conclusão do primeiro estágio......................15 Figura 12 – Inserção de código para Cache Poisoning ............................................16 Figura 13 – Sucesso na lição geral: HTTP Splitting .................................................16 Figura 14 – Utilizando uma matriz de controle de acesso ........................................17 Figura 15 – Verificação do papel de gerenciador de conta com usuário Moe...........17 Figura 16 – Verificação do papel de gerenciador de conta com usuário Larry .........17 Figura 17 – Contornar um esquema de controle do tipo Path Based Access ...........18 Figura 18 – Arquivo selecionado para visualização..................................................18 Figura 19 – Interceptação via TamperData ..............................................................19 Figura 20 – Comando para acesso ao arquivo via TamperData...............................19 Figura 21 – Visualização do arquivo “tomcat-users.xml” ..........................................20 Figura 22 – Estágio um: Contornar o controle de acesso da camada de negócio ....21 Figura 23 – Lista de perfis disponíveis .....................................................................21 Figura 24 – Login de usuário com privilégios de administrador ................................22 Figura 25 – Opção de apagar perfis selecionada .....................................................22
  • 73. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 26 – Nome da ação de apagar perfis ............................................................22 Figura 27 – Acesso de usuário com privilégios do tipo empregado..........................23 Figura 28 – Seleção de perfil do usuário..................................................................23 Figura 29 – Alteração do nome da ação chamada ...................................................23 Figura 30 – Conclusão do estágio............................................................................24 Figura 31 – Estágio dois ..........................................................................................24 Figura 32 – Trecho de código com perfis disponíveis, obtidos através do Firebug...25 Figura 33 – Acesso ao usuário Tom Cat ..................................................................25 Figura 34 – Interceptação da ação de visualização de perfis ...................................26 Figura 35 – Alteração do valor do parâmetro “employee_id”....................................26 Figura 36 – Visualização das informações de John Wayne com perfil de Tom Cat..26 Figura 37 – Estágio quatro.......................................................................................27 Figura 38 – Opções administrativas disponíveis com acesso não administrativo.....27 Figura 39 – Obtendo acesso administrativo através da URL....................................27 Figura 40 – Opções administrativas completas com acesso administrativo .............28 Figura 41 – Informação do usuário...........................................................................28 Figura 42 – Informação do produto ..........................................................................28 Figura 43 – Lição de acesso remoto de administrador .............................................28 Figura 44 – Política de proteção de mesma origem .................................................29 Figura 45 – Referência ao arquivo sameOrigin.jsp...................................................29 Figura 46 – Resposta do arquivo "sameOrigin.jsp" ..................................................29 Figura 47 – Referência ao site de buscas Google....................................................30 Figura 48 – Lição completa......................................................................................30 Figura 49 – LAB: DOM-Based cross-site scripting ...................................................30 Figura 50 – Localização da Imagem OWASP ..........................................................31 Figura 51 – Inserção da tag “img” HTML no campo de entrada ...............................31
  • 74. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 52 – Estágio um completo.............................................................................31 Figura 53 – Exibição de alerta com o erro na fonte da imagem................................31 Figura 54 – Estágio dois completo ...........................................................................32 Figura 55 – Inserção da tag “iframe” ........................................................................32 Figura 56 – Estágio três completo............................................................................32 Figura 57 – Inserção do código fornecido ................................................................33 Figura 58 – Exibição da senha.................................................................................33 Figura 59 – Estágio quatro completo........................................................................33 Figura 60 – Comando para abrir o arquivo no editor de texto...................................33 Figura 61 – Código original ......................................................................................34 Figura 62 – Código alterado.....................................................................................34 Figura 63 – Estágio cinco completo .........................................................................34 Figura 64 – Informações na tabela oculta ................................................................35 Figura 65 – Informação solicitada sobre o salário de um usuário.............................35 Figura 66 – Estágio um completo.............................................................................36 Figura 67 – Comando para abrir o arquivo no editor de texto...................................36 Figura 68 – Informações originais do arquivo...........................................................36 Figura 69 – Informações alteradas no arquivo .........................................................37 Figura 70 – Informações com maior restrição na tabela oculta ................................37 Figura 71 – Botão de conclusão da lição..................................................................37 Figura 72 – Código responsável pela desativação do botão ....................................38 Figura 73 – Código responsável pela desativação do botão apagado......................38 Figura 74 – Botão ativo e informação inválida..........................................................38 Figura 75 – Lição completa de forma incorreta ........................................................39 Figura 76 – Reiniciando a lição ................................................................................39 Figura 77 – Código referente ao campo de entrada .................................................39
  • 75. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 78 – Parâmetro "Name" selecionado e apagado...........................................39 Figura 79 – Código referente ao campo de entrada corrigido...................................39 Figura 80 – Interceptação de respostas via WebScarab ..........................................40 Figura 81 – Resposta interceptada ..........................................................................40 Figura 82 – Comando para habilitar o botão ............................................................41 Figura 83 – Botão ativo e informação válida ............................................................41 Figura 84 – Lição completa de forma correta ...........................................................41 Figura 85 – Inserção do id fornecido ao campo de entrada......................................41 Figura 86 – Lista original de prêmios .......................................................................42 Figura 87 – Lista alterada de prêmios ......................................................................42 Figura 88 – Lista de prêmios alterada exibida na página .........................................43 Figura 89 – Lição concluída .....................................................................................43 Figura 90 – Inserção dos códigos nos campos de entrada ......................................43 Figura 91 – Resposta com o valor original das passagens interceptada ..................44 Figura 92 – Código com valores alterados ...............................................................44 Figura 93 – Valor das passagens alteradas .............................................................44 Figura 94 – Opção selecionada ...............................................................................45 Figura 95 – Lição concluída .....................................................................................45 Figura 96 – Lição sobre ataques de transações silenciosas.....................................45 Figura 97 – Passagem de código javascript através da URL do browser .................46 Figura 98 – Interceptação de requisições via WebScarab........................................46 Figura 99 – Requisição com o processamento do javascript interceptada ...............46 Figura 100 – Transação realizada e lição completa .................................................46 Figura 101 – Inserção de um valor qualquer para ambos os campos ......................46 Figura 102 – Informação inserida.............................................................................47 Figura 103 – Substituição pelo número da conta e valor de transferência................47
  • 76. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 104 – Transação e lição completa.................................................................47 Figura 105 – Lição sobre os perigos na utilização da função eval............................47 Figura 106 – Inserção do código de caixa de diálogo com o cookie.........................48 Figura 107 – Lição completa ....................................................................................48 Figura 108 – Lição sobre armazenamento inseguro das informações......................48 Figura 109 – Trecho de código onde é encontrada uma variável denominada “decrypted”...............................................................................................................49 Figura 110 – Análise sobre a variável “decrypted” ...................................................49 Figura 111 – Inserção do código do cupom encontrada na variável.........................50 Figura 112 – Estágio um completo...........................................................................50 Figura 113 – Objetivo do estágio 2...........................................................................50 Figura 114 – Código do campo de entrada do total..................................................50 Figura 115 – Código alterado do campo de entrada do total....................................50 Figura 116 – Interface com o campo de total editável ..............................................51 Figura 117 – Edição do valor para o pedido ser gratuito ..........................................51 Figura 118 – Lição completa ....................................................................................51 Figura 119 – Lição sobre a força da senha ..............................................................52 Figura 120 – Site sugerido para medir o tempo de quebra de senhas .....................52 Figura 121 – Checagem da senha ...........................................................................53 Figura 122 – Resultado obtido da análise da senha.................................................53 Figura 123 – Resultado do tempo de quebra das senhas fornecidas .......................53 Figura 124 – Lição completa ....................................................................................54 Figura 125 – Recuperação de senha para o usuário “webgoat” ...............................54 Figura 126 – Resposta à pergunta secreta do usuário “webgoat” ............................54 Figura 127 – Senha do usuário “webgoat” descoberta.............................................55 Figura 128 – Recuperação de senha para o usuário “admin”...................................55 Figura 129 – Tentativa para descobrir a cor favorita ................................................55
  • 77. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 130 – Senha do usuário “admin” descoberta.................................................55 Figura 131 – Lição sobre autenticação básica .........................................................56 Figura 132 – Requisição interceptada para análise do cabeçalho de autenticação..56 Figura 133 – Decodificação via WebScarab.............................................................57 Figura 134 – Descodificando o valor ........................................................................57 Figura 135 – Valor descodificado.............................................................................57 Figura 136 – Inserção das informações coletadas ...................................................57 Figura 137 – Lição completa ....................................................................................58 Figura 138 – Informação sobre o cookie na interceptação da requisição .................58 Figura 139 – Valor inválido para o id........................................................................58 Figura 140 – Acesso com usuário “basic” ................................................................58 Figura 141 – Lição completa ....................................................................................59 Figura 142 – Acesso do usuário Joe ........................................................................59 Figura 143 – Inserção do valor de “TAN #1” ............................................................59 Figura 144 – Variável de usuário oculto ...................................................................60 Figura 145 – Alteração do valor do usuário oculto ...................................................60 Figura 146 – Lição completa ....................................................................................60 Figura 147 – Login com usuário Jane ......................................................................61 Figura 148 – Inserção do valor de “TAN #2” ............................................................61 Figura 149 – Estágio 1 completo..............................................................................61 Figura 150 – Novo acesso com usuário Jane ..........................................................61 Figura 151 – Inserção do valor de “TAN #1” ............................................................62 Figura 152 – Valor da variável “hidden_tan”.............................................................62 Figura 153 – Alteração do valor da variável “hidden_tan” ........................................62 Figura 154 – Operação realizada com sucesso e lição completa.............................62 Figura 155 – Lição desafio.......................................................................................63
  • 78. Centro de Pós Graduação - FIAP Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SP CEP: 01538-001 Telefone: 55 11 3385-8000 E-mail: cpg@fiap.com.br Home Page: www.fiap.com.br Figura 156 – Preenchimento dos campos de entrada e ativação do TamperData....63 Figura 157 – Interceptação da requisição via TamperData ......................................63 Figura 158 – Acessando o código fonte do WebGoat ..............................................64 Figura 159 – Informação sobre a senha no código fonte do WebGoat.....................64 Figura 160 – Autenticação com as informações de usuário e senha encontradas ...64 Figura 161 – Sucesso na autenticação ....................................................................64 Figura 162 – Cartões de crédito disponíveis ............................................................65 Figura 163 – Interceptando via TamperData ............................................................65 Figura 164 – Informação sobre o cookie do usuário.................................................65 Figura 165 – Decodificação via WebScarab.............................................................65 Figura 166 – Codificação via WebScarab, com o código malicioso inserido ............65 Figura 167 – Inserção do código de Base64 ............................................................66 Figura 168 – Lista de todos os cartões de créditos disponíveis no sistema e completude de mais uma etapa ...............................................................................66 Figura 169 – Estágio 3 .............................................................................................66 Figura 170 – Seleção de qualquer item e ação chamada através do botão .............67 Figura 171 – Inserção do comando na interceptação da requisição para localizar o arquivo.....................................................................................................................67 Figura 172 – Caminho do arquivo ............................................................................67 Figura 173 – Inserção do comando na interceptação da requisição para desfigurar a página......................................................................................................................68 Figura 174 – Página desfigurada e estágio completo...............................................68 Figura 175 – Lição finalizada com sucesso e uma mensagem aos usuários............69