\documentclass[11pt,a4paper]{article} \usepackage[portuguese]{babel} \usepackage[lining]{ebgaramond} \usepackage{style} \setlength{\parindent}{0em} \setlength{\parskip}{2ex} \title{Practical Assignment \#2} \author{ João Neto -- 2023234004\\[1em] Vasco Alves -- 2022228207 } \begin{document} \maketitle \newpage \tableofcontents \newpage \section{Introduction} Este trabalho tem como objectivo realizar testes de penetração numa aplicação cobaia (o Juicebox) desenhada para aprendizagem. \section{Arquitecture considered for both stages} Utilizamos somente duas máquinas virtuais: um servidor a correr \textit{CentOS 9} e um cliente a correr \textit{Kali Linux.} O servidor contém o serviço \textit{Apache} que age como \textit{firewall} através do plugin \textit{ModSecurity} e um servidor nodejs que contém o Juicebox; a aplicação que vai servir de ``dummy'' (cobaia). Vão ser realizadas duas etapas de testes: primeiro, sem WAF (\textit{Web Application Firewall}) e com foco em explorar vulnerabilidades na aplicação; e depois com uma WAF desenhada para sobreviver as várias vulnerabilidades que foram encontradas na etapa anterior. \subsection{Network structure} % 10.60.0.0 - rede externa % 20.60.0.0 - rede interna \subsection{Servers} % 10.60.0.1 - router % 20.60.0.2 - client O router contém a firewall e o serviço juicebox. \subsection{Services} % juicebox - port 3000 Juicebox no port 3000 \section{Web application security testing} \subsection{Information Gathering} \subsection{Configuration and Deployment Management Testing} \subsection{Identity Management Testing} \subsection{Authentication Testing} \subsection{Authorization Testing} \subsection{Session Management Testing} \subsection{Input Validation Testing} \subsection{Testing for Error Handling} \subsection{Testing for Weak Cryptography} \subsection{Business Logic Testing} \subsection{Client Side Testing} \section{Web application security firewall} \subsection{Information Gathering} \subsection{Configuration and Deployment Management Testing} \subsection{Identity Management Testing} \subsection{Authentication Testing} \subsection{Authorization Testing} \subsection{Session Management Testing} \subsection{Input Validation Testing} \subsection{Testing for Error Handling} \subsection{Testing for Weak Cryptography} \subsection{Business Logic Testing} \subsection{Client Side Testing} \section{Conclusions} \end{document}