Your SlideShare is downloading. ×
WebGoat Project
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

WebGoat Project

1,035
views

Published on

Estudo realizado por um grupo de alunos, estudantes do curso de MBA em Gestão de Segurança da Informação, sobre o WebGoat Project para a disciplina de Gestão de Ameaças e Vulnerabilidades do Prof. …

Estudo realizado por um grupo de alunos, estudantes do curso de MBA em Gestão de Segurança da Informação, sobre o WebGoat Project para a disciplina de Gestão de Ameaças e Vulnerabilidades do Prof. MSc. Ricardo Giorgi

Autores:
Cleyton Tsukuda Kano
Danilo Luiz Favacho Lopes
Décio Vicente Castaldi
Paulo Kuester Neto

Confira a apresentação deste estudo em:
http://www.slideshare.net/CleytonKano/webgoat-project-apresentao

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,035
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Centro de Pós Graduação - FIAP WEBGOATTRABALHO 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 2. Centro de Pós Graduação - FIAPSUMÁRIO1. 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 ............................... 82. PROJETO WEBGOAT ...................................................................................... 10 2.1. Open Web Application Security Project (OWASP) ...................................... 10 2.2. WebGoat ..................................................................................................... 10 2.3. Didática ....................................................................................................... 123. 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: ............................................................................................. 634. CONCLUSÃO ................................................................................................... 705. REFERENCIAL BIBLIOGRÁFICO .................................................................... 71Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 3. Centro de Pós Graduação - FIAP1. INTRODUÇÃO1.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 velocidadeevolutiva nunca antes experimentada, isso também elevou os riscos, pois hojeserviços vitais como energia, transportes, alimentos e sistemas financeiros, só paracitarmos alguns dos mais críticos, estão em maior ou menor grau conectadosatravés de plataformas e sistemas.Tendo em vista esse cenário, é imperativa que as organizações hoje devam ter umapreocupaçã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, suacompetitividade diminuída ou em casos mais extremos o fechamento do próprionegócio.O que antes era privilégio ou motivo de preocupação apenas de organizaçõesmilitares, governos ou mais tarde grandes conglomerados empresariais, hoje é partedo modelo de médias e pequenas empresas que esperam estarem aliadas asmelhores 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 seusinvestimentos com segurança da informação. Embora esse ambiente pareçapromissor existe um longo caminho a ser percorrido, pois existe ainda um númerogrande de empresas onde a segurança da informação ainda não é visualizada comoestratégica, nem como um investimento para o negócio e sim como um custo a maisna planilha financeira.A segurança da informação vem ganhando cada dia mais força, mas apesar dissoainda existem diversas aplicações, e podemos destacar negativamenteprincipalmente aquelas expostas a Internet (web pessoais e organizacionais) queapresentam falhas básicas relacionadas à segurança.Em 2011, Magno (Logan) Rodrigues (2011), conduziu um trabalho que apontoualgumas destas falhas de segurança nas aplicações web, tais como o banco decurrículos das organizações C.E.S.A.R e Pitang - Agile IT (que utiliza o mesmosistema da C.E.S.A.R) (Figura 1 e Figura 2 respectivamente).Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 Figura4).Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 6. Centro de Pós Graduação - FIAPEste é um pequeno exemplo ou amostra dos riscos envolvidos ao se delegar asegundo plano a preocupação com segurança da informação.Esforços tem sido empreendidos para elevar a conscientização sobre as falhas eriscos na má implementação de desenvolvimento de aplicações web no queconcernem as práticas de segurança de informação. Neste ponto podemos destacara organização sem fins lucrativos OWASP (open software security community) queconduz através de alguns projetos essa tarefa.Dentre os diversos projetos, podemos sem dúvida apontar o WebGoat frameworkdesenvolvido para incentivar o estudo e testes das principais falhas de segurançaem 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 arespeito da segurança da informação para aprimorarem e terem o mínimo desegurança nas soluções finais de suas aplicações (RODRIGUES, 2011). E atravésda aplicação WebGoat torna-se possível verificar as vulnerabilidades na prática eentender como funciona o princípio básico da mente de um atacante, para assimencontrar um meio de evitar que estas falhas básicas estejam presentes nasaplicações web.1.2. ObjetivoEste trabalho de pesquisa tem por objetivo demonstrar de uma maneira geral etomando como exemplo algumas das lições presentes na ferramenta webdenominada 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çãogeral da ferramenta, as primeiras três lições de segurança da informação paraaplicaçõ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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 7. Centro de Pós Graduação - FIAP1.3. MotivaçãoA escolha por esta aplicação web se deu pelo interesse do grupo (formado porestudantes do curso de MBA em Gestão de Segurança da Informação) em aprimoraro conhecimento a respeito da segurança da informação, através de exercíciosprá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 diretona melhoria da formação dos integrantes deste trabalho e aos demais alunos queterão a possibilidade de ver com detalhes o uso desta ferramenta e aplica-la no localde trabalho estando melhores preparados para proteger as informações da empresaem 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 ferramentatambém podem ser destacadas como sendo de forte influência como decisivos nacondução desse processo acadêmico.Por fim, o fato de a ferramenta ser open source e a amplitude e aplicabilidade de taltrabalho levantam maiores possibilidades para que outros profissionais tambéminteressados em aprimorar conhecimentos ou aplicar técnicas de análise devulnerabilidades possam ser implementados sem a necessidade de um custo muitasvezes impeditivo de aplicações comerciais.1.4. MetodologiaEste tópico visa elencar como foi desenvolvido o percurso metodológico no qual otrabalho se apoia. Além da correta documentação dos recursos e sistemasenvolvidos são listados os processos de estudo das diferentes lições ou atividadesreferenciadas no trabalho.Inicialmente o ambiente de forma básica pode ser definido como uma máquinavirtual com o sistema operacional Linux, servidor web apache e servidor deaplicações tomcat onde a ferramenta webgoat será instalada e configurada paraposterior teste e realização das tarefas.Os sistemas e versões utilizados neste trabalho de pesquisa são listados no item 1.5permitindo que posteriores pesquisas, que se valham deste trabalho possamreproduzir 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 ferramentaWebGoat, 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, comoestá colocada a didática da ferramenta e seu uso.Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 8. Centro de Pós Graduação - FIAPNo tópico três, serão demonstradas as lições que foram elencadas nos objetivos dapesquisa, seus problemas e como podemos chegar às soluções demonstrando ocaminho de resolução. O estudo da ferramenta será feito através da exploração dequatro lições apresentadas.No tópico quatro será dada a conclusão deste trabalho de pesquisa revisitando osobjetivos 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.31.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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 10. Centro de Pós Graduação - FIAP2. PROJETO WEBGOAT2.1. Open Web Application Security Project (OWASP)A Fundação OWASP (Open Web Application Security Project) surgiu em 2001 e em2004, a OWASP foi estabelecida como organização internacional não lucrativa, porsua 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á é umadas filosofias com que foi concebida.A missão é o de promover o desenvolvimento seguro de aplicações e serviços deinternet, seja promovendo conferências, artigos ou através dos projetos que elamesma desenvolve. Por sua natureza, de código aberto, ela foi imbuída de umatransparência que se reflete inclusive nas finanças. Respeito, organização einovação também podem ser listados como valores da Fundação OWASP.Conforme citado anteriormente, a OWASP é responsável pelo desenvolvimento deinformações em materiais como documentos e aplicações gratuitas e de códigoaberto (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 dainformação, informando empresas e pessoas sobre os riscos na segurança desoftwares (OWASP, 2013a).2.2. WebGoatO WebGoat é uma aplicação web desenvolvida pela OWASP, construída sob alinguagem de programação Java na plataforma J2EE (Java Platform, EnterpriseEdition) e concebida propositalmente para ser insegura, contendo falhas, com oobjetivo 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ãoconhecerem muito bem a respeito da segurança de suas aplicações e que eles nãodeveriam se sentir assim, pois até os melhores programadores cometem erros nasegurança. Como um jeito de não se sentirem mal por isso e responsabilizarem a sipróprios por tal desconhecimento, eles necessitam de um culpado por isso, algoconhecido em inglês como scape-goat (OXFORD, 2008).Com esta aplicação é possível verificar diversos tipos de vulnerabilidades existentesfornecendo um ambiente de aplicação web de aprendizado, com navegação atravésde lições em diferentes níveis. Vendo na prática como funciona e onde asvulnerabilidades residem, torna-se possível conhecer a visão do atacante paradescobrir as brechas das aplicações. Assim, passa a ser possível aplicar testes naaplicação desenvolvida para evitar que estas mesmas vulnerabilidades estejamAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 11. Centro de Pós Graduação - FIAPpresentes em ambientes reais. É fundamental que a segurança da informação sejaincluída em todo o ciclo de desenvolvimento de aplicações e serviços que sãodisponibilizados, seja somente para o público interno de uma organização ouexposta na Internet para o público em geral. Essa boa prática minimizará falhas eriscos desnecessários para a empresa podendo inclusive ter impactos financeiros ouexposição de dados sigilosos que muitas vezes levam a perda maciça de receita oucredibilidade.Desenvolvedores atentos e aprendendo anatomia de ataques podem se valer deuma 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 outremsem a devida permissão (OWASP, 2013b).Segundo o site da organização desenvolvedora (2013b), existe a pretensão deexpandir futuramente a aplicação com o objetivo de se tornar uma plataforma debenchmark e um website para servir de Honeypot (um tipo de armadilha parainvasores).O WebGoat não se encontra hospedado em um servidor de internet, por isso, antesde iniciar a navegação é necessário instala-lo em uma estação de trabalho, quepode ser no próprio sistema residente em seu computador como uma máquinavirtualizada para essa tarefa. Seu pré-requisito é possuir a máquina virtual Java(JVM) e o servidor web Apache Tomcat (OWASP, 2013b). Os sistemas operacionaissuportados 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 WebGoatAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 12. Centro de Pós Graduação - FIAP2.3. DidáticaA didática do WebGoat é baseada em ensinamentos sobre segurança emaplicações web. Através de um web-browser o usuário consegue navegar por entreas 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á sendotrabalhada 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çãoentre 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 cincolições tendo como objetivo a explicação do uso da ferramenta WebGoat bem como oaprendizado sobre a anatomia dos ataques.O escopo desse trabalho se limita ao desenvolvimento de alguns desses temascomo HTML básico, Falhas no controle de acesso, Segurança do AJAX e Falhas deautenticação, porém a ferramenta WebGoat contém inúmeros outros que podem edevem ser explorados a fim de conhecer melhor um cenário real onde múltiplosataques podem ser utilizados contra uma aplicação real.Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 13. Centro de Pós Graduação - FIAP3. COLOCANDO EM PRÁTICA3.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 BasicsAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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: 47Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 SplittingAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 17. Centro de Pós Graduação - FIAP3.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 LarryAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 dadosAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 programaAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 administradorAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 29. Centro de Pós Graduação - FIAP3.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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 imagemAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 textoAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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çãoAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 entradaAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 entradaAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 alteradasAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 evalAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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çõesAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 totalAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 completaAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 52. Centro de Pós Graduação - FIAP3.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 senhasAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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” descobertaAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 coletadasAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 JaneAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 completaAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 63. Centro de Pós Graduação - FIAP3.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=trueAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 inseridoAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 3Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 seguinteAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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 completoAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome 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áriosAv Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 70. Centro de Pós Graduação - FIAP4. CONCLUSÃOO WebGoat cumpre sua função de aplicação web de aprendizado, ilustrando asfalhas de segurança de uma forma bem estruturada e dividida em tópicos por tiposde vulnerabilidades, através das lições. Sendo útil para detectar, conhecer e exploraras vulnerabilidades existentes e observar no ponto de vista de um atacante, comoele poderia agir e explorá-las dentro de uma aplicação web.Apesar de a aplicação apresentar apenas em algumas lições a oportunidade paracorrigir a vulnerabilidade, com o conhecimento adquirido pela observação do métodoutilizado por cada lição, torna-se possível buscar e estudar por métodos de protegere corrigir a vulnerabilidade.É uma boa forma para desenvolvedores e estudantes de segurança da informaçãopara se aprimorarem, verificando a anatomia dos ataques, e assim tentarem colocarem prática no cotidiano do ciclo de vida de desenvolvimento das aplicações eserviç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 serobservada como sendo um teste com a técnica de caixa-preta (analisando ocomportamento externo da aplicação, sem considerar o comportamento interno).Dessa forma apresenta também uma forma de aprimoramento para os profissionaisem testes de software, principalmente sobre os testes de segurança de aplicações, eassim também contribuírem no ciclo de vida de desenvolvimento, auxiliando nadiminuição das falhas comuns e nos riscos que estas aplicações poderiam correrdesnecessariamente.Para finalizar, vale a pena lembrar que o objetivo da aplicação não é sair por aiprocurando 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écnicaspara 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 71. Centro de Pós Graduação - FIAP5. REFERENCIAL BIBLIOGRÁFICOAPACHE SOFTWARE FOUNDATION. Apache Tomcat. [S.l.]: Apache SoftwareFoundation, 2013. Disponível em: <http://tomcat.apache.org/>. Acesso em: 14 demarç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 demarço de 2013.MAYHEW, B.; WILLIAMS, J.. OWASP WebGoat, versão 5.4. [S.l.]: 2012. Aplicaçãoweb.OWASP. About OWASP. [S.l.]: Open Web Application Security Project Foundation,2013a. Disponível em: <https://www.owasp.org/index.php/About_OWASP>. Acessoem: 6 de fevereiro de 2013.OWASP. WebGoat Project. [S.l.]: Open Web Application Security ProjectFoundation, 2013b. Disponível em:<https://www.owasp.org/index.php/OWASP_WebGoat_Project>. Acesso em: 6 defevereiro de 2013.OWASP. WebScarab Project. [S.l.]: Open Web Application Security ProjectFoundation, 2013c. Disponível em:<https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project>. Acessoem: 14 de março de 2013.OXFORD. 2 ed. Pocket Oxford American Dictionary. New York: Oxford UniversityPress, 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 – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 72. Centro de Pós Graduação - FIAPÍNDICE DE ILUSTRAÇÕESFigura 1 – SQL Injection no banco de currículos da organização C.E.S.A.R .............. 4Figura 2 - SQL Injection no banco de currículos da organização Pitang – Agile IT ..... 4Figura 3 - SQL Injection no banco de currículos da organização C.E.S.A.R .............. 5Figura 4 - SQL Injection no banco de currículos da organização Pitang – Agile IT ..... 5Figura 5 – Interface da aplicação WebGoat ............................................................. 11Figura 6 – Interface da lição geral: HTML Basics ..................................................... 13Figura 7 – Confirmação de sucesso na lição geral: HTML Basics ............................ 13Figura 8 – Inserção de código simples ..................................................................... 14Figura 9 – Interpretação de código e detecção de ataque ........................................ 14Figura 10 – Inserção de código para HTTP Splitting ................................................ 15Figura 11 – Interpretação do código e conclusão do primeiro estágio ...................... 15Figura 12 – Inserção de código para Cache Poisoning ............................................ 16Figura 13 – Sucesso na lição geral: HTTP Splitting ................................................. 16Figura 14 – Utilizando uma matriz de controle de acesso ........................................ 17Figura 15 – Verificação do papel de gerenciador de conta com usuário Moe ........... 17Figura 16 – Verificação do papel de gerenciador de conta com usuário Larry ......... 17Figura 17 – Contornar um esquema de controle do tipo Path Based Access ........... 18Figura 18 – Arquivo selecionado para visualização .................................................. 18Figura 19 – Interceptação via TamperData .............................................................. 19Figura 20 – Comando para acesso ao arquivo via TamperData ............................... 19Figura 21 – Visualização do arquivo “tomcat-users.xml” .......................................... 20Figura 22 – Estágio um: Contornar o controle de acesso da camada de negócio .... 21Figura 23 – Lista de perfis disponíveis ..................................................................... 21Figura 24 – Login de usuário com privilégios de administrador ................................ 22Figura 25 – Opção de apagar perfis selecionada ..................................................... 22Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 73. Centro de Pós Graduação - FIAPFigura 26 – Nome da ação de apagar perfis ............................................................ 22Figura 27 – Acesso de usuário com privilégios do tipo empregado .......................... 23Figura 28 – Seleção de perfil do usuário .................................................................. 23Figura 29 – Alteração do nome da ação chamada ................................................... 23Figura 30 – Conclusão do estágio ............................................................................ 24Figura 31 – Estágio dois .......................................................................................... 24Figura 32 – Trecho de código com perfis disponíveis, obtidos através do Firebug ... 25Figura 33 – Acesso ao usuário Tom Cat .................................................................. 25Figura 34 – Interceptação da ação de visualização de perfis ................................... 26Figura 35 – Alteração do valor do parâmetro “employee_id” .................................... 26Figura 36 – Visualização das informações de John Wayne com perfil de Tom Cat .. 26Figura 37 – Estágio quatro ....................................................................................... 27Figura 38 – Opções administrativas disponíveis com acesso não administrativo ..... 27Figura 39 – Obtendo acesso administrativo através da URL .................................... 27Figura 40 – Opções administrativas completas com acesso administrativo ............. 28Figura 41 – Informação do usuário ........................................................................... 28Figura 42 – Informação do produto .......................................................................... 28Figura 43 – Lição de acesso remoto de administrador ............................................. 28Figura 44 – Política de proteção de mesma origem ................................................. 29Figura 45 – Referência ao arquivo sameOrigin.jsp ................................................... 29Figura 46 – Resposta do arquivo "sameOrigin.jsp" .................................................. 29Figura 47 – Referência ao site de buscas Google .................................................... 30Figura 48 – Lição completa ...................................................................................... 30Figura 49 – LAB: DOM-Based cross-site scripting ................................................... 30Figura 50 – Localização da Imagem OWASP .......................................................... 31Figura 51 – Inserção da tag “img” HTML no campo de entrada ............................... 31Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 74. Centro de Pós Graduação - FIAPFigura 52 – Estágio um completo ............................................................................. 31Figura 53 – Exibição de alerta com o erro na fonte da imagem ................................ 31Figura 54 – Estágio dois completo ........................................................................... 32Figura 55 – Inserção da tag “iframe” ........................................................................ 32Figura 56 – Estágio três completo ............................................................................ 32Figura 57 – Inserção do código fornecido ................................................................ 33Figura 58 – Exibição da senha ................................................................................. 33Figura 59 – Estágio quatro completo ........................................................................ 33Figura 60 – Comando para abrir o arquivo no editor de texto ................................... 33Figura 61 – Código original ...................................................................................... 34Figura 62 – Código alterado ..................................................................................... 34Figura 63 – Estágio cinco completo ......................................................................... 34Figura 64 – Informações na tabela oculta ................................................................ 35Figura 65 – Informação solicitada sobre o salário de um usuário ............................. 35Figura 66 – Estágio um completo ............................................................................. 36Figura 67 – Comando para abrir o arquivo no editor de texto ................................... 36Figura 68 – Informações originais do arquivo ........................................................... 36Figura 69 – Informações alteradas no arquivo ......................................................... 37Figura 70 – Informações com maior restrição na tabela oculta ................................ 37Figura 71 – Botão de conclusão da lição.................................................................. 37Figura 72 – Código responsável pela desativação do botão .................................... 38Figura 73 – Código responsável pela desativação do botão apagado ...................... 38Figura 74 – Botão ativo e informação inválida .......................................................... 38Figura 75 – Lição completa de forma incorreta ........................................................ 39Figura 76 – Reiniciando a lição ................................................................................ 39Figura 77 – Código referente ao campo de entrada ................................................. 39Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 75. Centro de Pós Graduação - FIAPFigura 78 – Parâmetro "Name" selecionado e apagado ........................................... 39Figura 79 – Código referente ao campo de entrada corrigido................................... 39Figura 80 – Interceptação de respostas via WebScarab .......................................... 40Figura 81 – Resposta interceptada .......................................................................... 40Figura 82 – Comando para habilitar o botão ............................................................ 41Figura 83 – Botão ativo e informação válida ............................................................ 41Figura 84 – Lição completa de forma correta ........................................................... 41Figura 85 – Inserção do id fornecido ao campo de entrada ...................................... 41Figura 86 – Lista original de prêmios ....................................................................... 42Figura 87 – Lista alterada de prêmios ...................................................................... 42Figura 88 – Lista de prêmios alterada exibida na página ......................................... 43Figura 89 – Lição concluída ..................................................................................... 43Figura 90 – Inserção dos códigos nos campos de entrada ...................................... 43Figura 91 – Resposta com o valor original das passagens interceptada .................. 44Figura 92 – Código com valores alterados ............................................................... 44Figura 93 – Valor das passagens alteradas ............................................................. 44Figura 94 – Opção selecionada ............................................................................... 45Figura 95 – Lição concluída ..................................................................................... 45Figura 96 – Lição sobre ataques de transações silenciosas..................................... 45Figura 97 – Passagem de código javascript através da URL do browser ................. 46Figura 98 – Interceptação de requisições via WebScarab ........................................ 46Figura 99 – Requisição com o processamento do javascript interceptada ............... 46Figura 100 – Transação realizada e lição completa ................................................. 46Figura 101 – Inserção de um valor qualquer para ambos os campos ...................... 46Figura 102 – Informação inserida ............................................................................. 47Figura 103 – Substituição pelo número da conta e valor de transferência................ 47Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 76. Centro de Pós Graduação - FIAPFigura 104 – Transação e lição completa................................................................. 47Figura 105 – Lição sobre os perigos na utilização da função eval ............................ 47Figura 106 – Inserção do código de caixa de diálogo com o cookie ......................... 48Figura 107 – Lição completa .................................................................................... 48Figura 108 – Lição sobre armazenamento inseguro das informações ...................... 48Figura 109 – Trecho de código onde é encontrada uma variável denominada“decrypted” ............................................................................................................... 49Figura 110 – Análise sobre a variável “decrypted” ................................................... 49Figura 111 – Inserção do código do cupom encontrada na variável ......................... 50Figura 112 – Estágio um completo ........................................................................... 50Figura 113 – Objetivo do estágio 2 ........................................................................... 50Figura 114 – Código do campo de entrada do total .................................................. 50Figura 115 – Código alterado do campo de entrada do total .................................... 50Figura 116 – Interface com o campo de total editável .............................................. 51Figura 117 – Edição do valor para o pedido ser gratuito .......................................... 51Figura 118 – Lição completa .................................................................................... 51Figura 119 – Lição sobre a força da senha .............................................................. 52Figura 120 – Site sugerido para medir o tempo de quebra de senhas ..................... 52Figura 121 – Checagem da senha ........................................................................... 53Figura 122 – Resultado obtido da análise da senha ................................................. 53Figura 123 – Resultado do tempo de quebra das senhas fornecidas ....................... 53Figura 124 – Lição completa .................................................................................... 54Figura 125 – Recuperação de senha para o usuário “webgoat” ............................... 54Figura 126 – Resposta à pergunta secreta do usuário “webgoat” ............................ 54Figura 127 – Senha do usuário “webgoat” descoberta ............................................. 55Figura 128 – Recuperação de senha para o usuário “admin” ................................... 55Figura 129 – Tentativa para descobrir a cor favorita ................................................ 55Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 77. Centro de Pós Graduação - FIAPFigura 130 – Senha do usuário “admin” descoberta ................................................. 55Figura 131 – Lição sobre autenticação básica ......................................................... 56Figura 132 – Requisição interceptada para análise do cabeçalho de autenticação .. 56Figura 133 – Decodificação via WebScarab ............................................................. 57Figura 134 – Descodificando o valor ........................................................................ 57Figura 135 – Valor descodificado ............................................................................. 57Figura 136 – Inserção das informações coletadas ................................................... 57Figura 137 – Lição completa .................................................................................... 58Figura 138 – Informação sobre o cookie na interceptação da requisição ................. 58Figura 139 – Valor inválido para o id ........................................................................ 58Figura 140 – Acesso com usuário “basic” ................................................................ 58Figura 141 – Lição completa .................................................................................... 59Figura 142 – Acesso do usuário Joe ........................................................................ 59Figura 143 – Inserção do valor de “TAN #1” ............................................................ 59Figura 144 – Variável de usuário oculto ................................................................... 60Figura 145 – Alteração do valor do usuário oculto ................................................... 60Figura 146 – Lição completa .................................................................................... 60Figura 147 – Login com usuário Jane ...................................................................... 61Figura 148 – Inserção do valor de “TAN #2” ............................................................ 61Figura 149 – Estágio 1 completo .............................................................................. 61Figura 150 – Novo acesso com usuário Jane .......................................................... 61Figura 151 – Inserção do valor de “TAN #1” ............................................................ 62Figura 152 – Valor da variável “hidden_tan” ............................................................. 62Figura 153 – Alteração do valor da variável “hidden_tan” ........................................ 62Figura 154 – Operação realizada com sucesso e lição completa ............................. 62Figura 155 – Lição desafio ....................................................................................... 63Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br
  • 78. Centro de Pós Graduação - FIAPFigura 156 – Preenchimento dos campos de entrada e ativação do TamperData.... 63Figura 157 – Interceptação da requisição via TamperData ...................................... 63Figura 158 – Acessando o código fonte do WebGoat .............................................. 64Figura 159 – Informação sobre a senha no código fonte do WebGoat ..................... 64Figura 160 – Autenticação com as informações de usuário e senha encontradas ... 64Figura 161 – Sucesso na autenticação .................................................................... 64Figura 162 – Cartões de crédito disponíveis ............................................................ 65Figura 163 – Interceptando via TamperData ............................................................ 65Figura 164 – Informação sobre o cookie do usuário ................................................. 65Figura 165 – Decodificação via WebScarab ............................................................. 65Figura 166 – Codificação via WebScarab, com o código malicioso inserido ............ 65Figura 167 – Inserção do código de Base64 ............................................................ 66Figura 168 – Lista de todos os cartões de créditos disponíveis no sistema ecompletude de mais uma etapa ............................................................................... 66Figura 169 – Estágio 3 ............................................................................................. 66Figura 170 – Seleção de qualquer item e ação chamada através do botão ............. 67Figura 171 – Inserção do comando na interceptação da requisição para localizar oarquivo ..................................................................................................................... 67Figura 172 – Caminho do arquivo ............................................................................ 67Figura 173 – Inserção do comando na interceptação da requisição para desfigurar apágina ...................................................................................................................... 68Figura 174 – Página desfigurada e estágio completo ............................................... 68Figura 175 – Lição finalizada com sucesso e uma mensagem aos usuários ............ 69Av Lins de Vasconcelos, 1264 – Aclimação – São Paulo – SPCEP: 01538-001Telefone: 55 11 3385-8000E-mail: cpg@fiap.com.brHome Page: www.fiap.com.br