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.
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.
Principais ficheiros e pastas:
pom.xml
: configuração do projecto (directório raíz)src/main/java
: código Javasrc/main/webapp
: código JSP e configuração da aplicaçãotarget
: directório de ficheiros gerados durante compilação e execução.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.
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
.
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.
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.
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.
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.