1. O documento apresenta um trabalho final sobre a ferramenta WebGoat para demonstração de vulnerabilidades em aplicações web.
2. São descritas cinco lições abordadas: falhas no controle de acesso, segurança no AJAX, falhas de autenticação e uma lição desafio.
3. O objetivo é aplicar conceitos de segurança da informação através de exercícios práticos na ferramenta WebGoat e analisar vulnerabilidades.
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