SlideShare ist ein Scribd-Unternehmen logo
1 von 78
Centro de Pós Graduação - FIAP



                                    WEBGOAT
TRABALHO FINAL DE TÉCNICAS DE SEGURANÇA DA PROTEÇÃO –
        GESTÃO DE AMEAÇAS E VULNERABILIDADES
                                 Prof. MSc. Ricardo Giorgi




                                  Cleyton Tsukuda Kano

                                Danilo Luiz Favacho Lopes

                                  Décio Vicente Castaldi

                                    Paulo Kuester Neto




                     MBA em Gestão de Segurança da Informação

                                          19º SEG




                               São Paulo, Março de 2013.




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
Centro de Pós Graduação - FIAP
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




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
Centro de Pós Graduação - FIAP
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).




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
Centro de Pós Graduação - FIAP




            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).

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
Centro de Pós Graduação - FIAP




             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)

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
Centro de Pós Graduação - FIAP
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.




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
Centro de Pós Graduação - FIAP
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.

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
Centro de Pós Graduação - FIAP
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.




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
Centro de Pós Graduação - FIAP
    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.




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
Centro de Pós Graduação - FIAP
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

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
Centro de Pós Graduação - FIAP
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


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
Centro de Pós Graduação - FIAP
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.


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
Centro de Pós Graduação - FIAP
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




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
Centro de Pós Graduação - FIAP
   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:

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
Centro de Pós Graduação - FIAP
        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




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
Centro de Pós Graduação - FIAP



                         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




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
Centro de Pós Graduação - FIAP
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




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
Centro de Pós Graduação - FIAP
       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).




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
Centro de Pós Graduação - FIAP




                               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).




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
Centro de Pós Graduação - FIAP




                         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.




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
Centro de Pós Graduação - FIAP




               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).




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
Centro de Pós Graduação - FIAP




                       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).


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
Centro de Pós Graduação - FIAP




                      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).
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
Centro de Pós Graduação - FIAP




                                    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


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
Centro de Pós Graduação - FIAP
          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.




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
Centro de Pós Graduação - FIAP




                         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

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
Centro de Pós Graduação - FIAP
          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.




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
Centro de Pós Graduação - FIAP




                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



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
Centro de Pós Graduação - FIAP
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"



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
Centro de Pós Graduação - FIAP
       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).




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
Centro de Pós Graduação - FIAP




                              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




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
Centro de Pós Graduação - FIAP
       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>




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
Centro de Pós Graduação - FIAP




                                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

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
Centro de Pós Graduação - FIAP
       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.

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
Centro de Pós Graduação - FIAP
       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.




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
Centro de Pós Graduação - FIAP



                                    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 | ");



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
Centro de Pós Graduação - FIAP
       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



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
Centro de Pós Graduação - FIAP
   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).

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
Centro de Pós Graduação - FIAP


                             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).



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
Centro de Pós Graduação - FIAP




                         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;




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
Centro de Pós Graduação - FIAP




                              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

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
Centro de Pós Graduação - FIAP
       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).




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
Centro de Pós Graduação - FIAP




                         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



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
Centro de Pós Graduação - FIAP
       É 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

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
Centro de Pós Graduação - FIAP
       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);


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
Centro de Pós Graduação - FIAP




                  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).




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
Centro de Pós Graduação - FIAP




                                    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


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
Centro de Pós Graduação - FIAP
        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



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
Centro de Pós Graduação - FIAP
       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).




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
Centro de Pós Graduação - FIAP




                    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

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
Centro de Pós Graduação - FIAP
       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




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
Centro de Pós Graduação - FIAP
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

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
Centro de Pós Graduação - FIAP
       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).




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
Centro de Pós Graduação - FIAP




                                  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”

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
Centro de Pós Graduação - FIAP
       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




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
Centro de Pós Graduação - FIAP
   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.




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
Centro de Pós Graduação - FIAP




                              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

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
Centro de Pós Graduação - FIAP
       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”).




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
Centro de Pós Graduação - FIAP




                                      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”


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
Centro de Pós Graduação - FIAP
       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.




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
Centro de Pós Graduação - FIAP




                                 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

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
Centro de Pós Graduação - FIAP
       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


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
Centro de Pós Graduação - FIAP
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


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
Centro de Pós Graduação - FIAP


                         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.




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
Centro de Pós Graduação - FIAP



                             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


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
Centro de Pós Graduação - FIAP
    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


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
Centro de Pós Graduação - FIAP
    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


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
Centro de Pós Graduação - FIAP
    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



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
Centro de Pós Graduação - FIAP
    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




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
Centro de Pós Graduação - FIAP
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.




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
Centro de Pós Graduação - FIAP
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.

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
Centro de Pós Graduação - FIAP
Í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

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
Centro de Pós Graduação - FIAP
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


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
Centro de Pós Graduação - FIAP
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


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
Centro de Pós Graduação - FIAP
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


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 Project
WebGoat Project
WebGoat Project

Weitere ähnliche Inhalte

Ähnlich wie WebGoat Project

Pacote WorkShops em Seguranca da Informacao
Pacote WorkShops em  Seguranca da Informacao  Pacote WorkShops em  Seguranca da Informacao
Pacote WorkShops em Seguranca da Informacao Grupo Treinar
 
WorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - HardningWorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - HardningGrupo Treinar
 
WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados   WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados Grupo Treinar
 
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos   WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos Grupo Treinar
 
A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...
A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...
A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...Sidney Modenesi, MBCI
 
Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...
Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...
Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...Evilasio Cesar
 
Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02
Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02
Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02Fabio Freire
 
Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...
Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...
Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...Lucas Pereira Dos Santos
 
Ist 2004 francini_politicas
Ist 2004 francini_politicasIst 2004 francini_politicas
Ist 2004 francini_politicasGilbertoNgoca
 
Tecnologia da Informação para Concurso Dataprev
Tecnologia da Informação para Concurso DataprevTecnologia da Informação para Concurso Dataprev
Tecnologia da Informação para Concurso DataprevEstratégia Concursos
 
Usando weka-na-pratica
Usando weka-na-praticaUsando weka-na-pratica
Usando weka-na-praticaawtb1200
 

Ähnlich wie WebGoat Project (20)

Pacote WorkShops em Seguranca da Informacao
Pacote WorkShops em  Seguranca da Informacao  Pacote WorkShops em  Seguranca da Informacao
Pacote WorkShops em Seguranca da Informacao
 
WorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - HardningWorkShop Seguranca da Informacao - Hardning
WorkShop Seguranca da Informacao - Hardning
 
WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados   WorkShop Seguranca da Informacao - Banco de Dados
WorkShop Seguranca da Informacao - Banco de Dados
 
Tutorialitil2
Tutorialitil2Tutorialitil2
Tutorialitil2
 
Tutorialitil2
Tutorialitil2Tutorialitil2
Tutorialitil2
 
Tutorialitil2
Tutorialitil2Tutorialitil2
Tutorialitil2
 
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos   WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
WorkShop Seguranca da Informacao - Desenvolvimento de Aplicativos
 
Webgoat Project - Apresentação
Webgoat Project - ApresentaçãoWebgoat Project - Apresentação
Webgoat Project - Apresentação
 
A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...
A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...
A Continuidade de Negócios - Seu Seguro para Incidentes de Segurança e de Tec...
 
Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...
Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...
Tcc_Implantação de um sistema para o gerenciamento de suporte de TI baseado n...
 
A empresa como sistema aberto
A empresa como sistema abertoA empresa como sistema aberto
A empresa como sistema aberto
 
Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02
Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02
Antebellumsec201 fundamentosdeseguranadainformao-130301170538-phpapp02
 
Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...
Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...
Sistemas para gestão de dispositivos móveis: um estudo sobre a viabilidade e ...
 
Rites Edital FIEMG Lab
Rites  Edital FIEMG LabRites  Edital FIEMG Lab
Rites Edital FIEMG Lab
 
Pim vi
Pim viPim vi
Pim vi
 
Ist 2004 francini_politicas
Ist 2004 francini_politicasIst 2004 francini_politicas
Ist 2004 francini_politicas
 
Tecnologia da Informação para Concurso Dataprev
Tecnologia da Informação para Concurso DataprevTecnologia da Informação para Concurso Dataprev
Tecnologia da Informação para Concurso Dataprev
 
Estudo de Caso: O Hotel do Bosque
Estudo de Caso: O Hotel do BosqueEstudo de Caso: O Hotel do Bosque
Estudo de Caso: O Hotel do Bosque
 
Usando weka-na-pratica
Usando weka-na-praticaUsando weka-na-pratica
Usando weka-na-pratica
 
Tcc - Work control
Tcc - Work controlTcc - Work control
Tcc - Work control
 

Kürzlich hochgeladen

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Kürzlich hochgeladen (8)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

WebGoat Project

  • 1. Centro de Pós Graduação - FIAP WEBGOAT TRABALHO FINAL DE TÉCNICAS DE SEGURANÇA DA PROTEÇÃO – GESTÃO DE AMEAÇAS E VULNERABILIDADES Prof. MSc. Ricardo Giorgi Cleyton Tsukuda Kano Danilo Luiz Favacho Lopes Décio Vicente Castaldi Paulo Kuester Neto MBA em Gestão de Segurança da Informação 19º SEG São Paulo, Março de 2013. 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. Centro de Pós Graduação - FIAP 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 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. Centro de Pós Graduação - FIAP 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). 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. Centro de Pós Graduação - FIAP 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). 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. Centro de Pós Graduação - FIAP 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) 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
  • 6. Centro de Pós Graduação - FIAP 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. 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
  • 7. Centro de Pós Graduação - FIAP 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. 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
  • 8. Centro de Pós Graduação - FIAP 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. 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
  • 9. Centro de Pós Graduação - FIAP  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. 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
  • 10. Centro de Pós Graduação - FIAP 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 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
  • 11. Centro de Pós Graduação - FIAP 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 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
  • 12. Centro de Pós Graduação - FIAP 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. 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
  • 13. Centro de Pós Graduação - FIAP 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 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
  • 14. Centro de Pós Graduação - FIAP 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: 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
  • 15. Centro de Pós Graduação - FIAP 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 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
  • 16. Centro de Pós Graduação - FIAP 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 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
  • 17. Centro de Pós Graduação - FIAP 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 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
  • 18. Centro de Pós Graduação - FIAP 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). 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
  • 19. Centro de Pós Graduação - FIAP 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). 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
  • 20. Centro de Pós Graduação - FIAP 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. 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
  • 21. Centro de Pós Graduação - FIAP 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). 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
  • 22. Centro de Pós Graduação - FIAP 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). 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
  • 23. Centro de Pós Graduação - FIAP 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). 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
  • 24. Centro de Pós Graduação - FIAP 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 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
  • 25. Centro de Pós Graduação - FIAP 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. 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
  • 26. Centro de Pós Graduação - FIAP 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 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
  • 27. Centro de Pós Graduação - FIAP 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. 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
  • 28. Centro de Pós Graduação - FIAP 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 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
  • 29. Centro de Pós Graduação - FIAP 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" 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
  • 30. Centro de Pós Graduação - FIAP 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). 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
  • 31. Centro de Pós Graduação - FIAP 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 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
  • 32. Centro de Pós Graduação - FIAP 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> 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
  • 33. Centro de Pós Graduação - FIAP 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 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
  • 34. Centro de Pós Graduação - FIAP 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. 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
  • 35. Centro de Pós Graduação - FIAP 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. 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
  • 36. Centro de Pós Graduação - FIAP 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 | "); 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
  • 37. Centro de Pós Graduação - FIAP 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 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
  • 38. Centro de Pós Graduação - FIAP 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). 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
  • 39. Centro de Pós Graduação - FIAP 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). 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
  • 40. Centro de Pós Graduação - FIAP 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; 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
  • 41. Centro de Pós Graduação - FIAP 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 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
  • 42. Centro de Pós Graduação - FIAP 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). 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
  • 43. Centro de Pós Graduação - FIAP 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 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
  • 44. Centro de Pós Graduação - FIAP É 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 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
  • 45. Centro de Pós Graduação - FIAP 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); 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
  • 46. Centro de Pós Graduação - FIAP 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). 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
  • 47. Centro de Pós Graduação - FIAP 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 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
  • 48. Centro de Pós Graduação - FIAP 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 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
  • 49. Centro de Pós Graduação - FIAP 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). 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
  • 50. Centro de Pós Graduação - FIAP 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 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
  • 51. Centro de Pós Graduação - FIAP 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 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
  • 52. Centro de Pós Graduação - FIAP 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 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
  • 53. Centro de Pós Graduação - FIAP 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). 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
  • 54. Centro de Pós Graduação - FIAP 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” 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
  • 55. Centro de Pós Graduação - FIAP 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 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
  • 56. Centro de Pós Graduação - FIAP 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. 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
  • 57. Centro de Pós Graduação - FIAP 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 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
  • 58. Centro de Pós Graduação - FIAP 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”). 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
  • 59. Centro de Pós Graduação - FIAP 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” 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
  • 60. Centro de Pós Graduação - FIAP 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. 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
  • 61. Centro de Pós Graduação - FIAP 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 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
  • 62. Centro de Pós Graduação - FIAP 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 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
  • 63. Centro de Pós Graduação - FIAP 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 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
  • 64. Centro de Pós Graduação - FIAP 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. 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
  • 65. Centro de Pós Graduação - FIAP 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 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
  • 66. Centro de Pós Graduação - FIAP 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 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
  • 67. Centro de Pós Graduação - FIAP 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 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
  • 68. Centro de Pós Graduação - FIAP 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 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
  • 69. Centro de Pós Graduação - FIAP 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 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
  • 70. Centro de Pós Graduação - FIAP 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. 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
  • 71. Centro de Pós Graduação - FIAP 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. 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
  • 72. Centro de Pós Graduação - FIAP Í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 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
  • 73. Centro de Pós Graduação - FIAP 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 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
  • 74. Centro de Pós Graduação - FIAP 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 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
  • 75. Centro de Pós Graduação - FIAP 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 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