Acerca da Java Vulnerable Lab

A Java Vulnerable Lab é uma aplicação originalmente desenvolvida pela Cyber Security and Privacy Foundation. O código usado neste projecto contém ligeiras adaptações e customizações ao código original.

Software a instalar

Os “plugins” do SpotBugs e FindSecBugs (além de várias bibliotecas Java) serão automaticamente instalados pelo Maven durante a compilação do projecto.

Para funcionar com o projecto poderá fazer uso da linha de comandos
para executar o Maven e um editor de texto à sua escolha para modificar
o código.

Caso prefira um IDE, recomenda-se o uso do Eclipse IDE for Java EE Developers, versão 2018-09. Para importar o projecto Maven aceda a File > Import > Maven > Existing Maven Projects e selecione o directório para onde descomprimiu o projecto Maven.

Estrutura do projecto Maven

Principais ficheiros e pastas:

Em src/main/java/org/apache/jsp irá aparecer código automaticamente gerado a partir dos arquivos JSP em src/main/webapp. Não deverá editar esse código gerado.

Uso do maven (linha de comandos)

Os comandos descritos deverão ser executados a partir do directório raíz JavaVulnerableLab do projecto, aquele que contém o ficheiro pom.xml.

Compilação da JVL

Use

mvn package

para compilar a aplicação. Os ficheiros gerados durante a compilação são depositados no directório de compilação target. O comando mvn clean apaga o directório de compilação. Pode executar mvn clean package para forçar uma recompilação completa.

Execução da JVL

Pode iniciar a aplicação com o comando

mvn package exec:exec

podendo package ser omitido caso não queira recompilar a aplicação.
Aceda seguidamente a https://localhost:9443 no seu browser. Para entrar no sistema na página de “login” poderá por exemplo usar as credenciais admin/admin ou victim/victim entre outras definidas.

No início da execução, uma base de dados H2 será inicializada de fresco de acordo com as configurações expressas na servlet org.cysecurity.cspf.jvl.controller.Install (pasta src/main/java). Esta servlet pode ser invocada directamente https://localhost:9443/Install se quiser repôr o estado inicial da a base de dados.

Análise Spotbugs

Use

mvn package spotbugs:spotbugs spotbugs:gui

para correr o SpotBugs e abrir o SpotBugs GUI. Pode omitir package caso não queira recompilar a aplicação.

No SpotBugs GUI pode usar o campo Class Name Filter para filtar vulnerabilidades
relacionadas com determinada classe.
Para ajudar a compreender em detalhe visualização de resultados no SpotBugs UI,
consulte esta página.

Uso do ZAP

Extráia o arquivo do ZAP (versão “cross-platform” recomendada) para um directório à sua escolha. Na pasta raíz irá encontrar os scripts zap.sh (para Linux/MacOS) ou zap.bat (para Windows) que permitem iniciar o ZAP. Uma vez lançado, o ZAP usa a porta 8080 para servir de HTTP/HTTPS proxy.

A partir do interface do ZAP deverá poder lançar o browser que quiser usar (Chrome, Safari, Firefox, …) por forma a evitar avisos relacionados com o uso de certificados SSL. O browser deverá ficar também automaticamente configurado por forma a usar o ZAP como HTTPS proxy.

Para ajuda pode consultar o OWASP ZAP User Guide.