Het eerste doel van de ‘minimum viable’-methode is om in kaart te brengen wat de aanvalsmogelijkheden van de applicatie zijn. Lees daarvoor vooral ook het boek ‘Web Applications Hacker Handbook’ (tweede editie) om te kijken hoe je dat doet.
Een pen-tester moet op zijn minst ervoor zorgen dat de hele applicatie nauwkeurig doorzocht wordt zodat alle gelinkte content ontdekt kan worden. Dat betekent dat je door de hele applicatie heen moet kunnen wandelen, door alle functionaliteiten heen moet kunnen klikken om goed te begrijpen wat er gebeurt voordat er aanvalsverkeer binnenkomt. Als je erop kunt klikken, moet je het in kaart brengen en begrijpen wat de bedoelde functionaliteit is voordat je die gaat hacken.
De applicatie kan nog steeds een aanvalsvlak hebben, ook al zie je dit niet, bijvoorbeeld als de huidige gebruiker geen privileges heeft om het te zien. Het is toch van belang die functionaliteiten te ontdekken, ook al moet je daar naar gissen. In het ideale geval geeft de doelorganisatie je alle transparantie die je nodig hebt om elk onderdeel van het platform aan te vallen, maar dat is niet altijd haalbaar.
Gebruik de sitemap-feature van je tool en weet waar bepaalde functionaliteiten zitten, en waar je mogelijk nog meer functies zou kunnen vinden. In dit geval is dat Burp Intruder. Op sommige plekken is er een script als /viewUser. Door het woord ‘view’ weet je dan dat er waarschijnlijk andere functies zijn zoals /addUser, /removeUser, /updateUser en dergelijke.
De content-discovery-module van Burp Suite is nog niet optimaal, maar dient als een goed startpunt. Sta het algoritme toe om meer content te ontdekken door scripts te raden en woordenlijsten te gebruiken. Met andere tools als DirBuster van OWASP kun je ook ongelinkte content vinden. Alle folders en scripts moeten genummerd worden omdat er ook andere extensies als .bak, .backup, .gzip en meer zouden kunnen zijn.
Dan is het tijd om de applicatie aan te vallen en vulnerability’s in kaart te brengen. Moderne webapplicaties bevatten normaal gesproken meerdere lagen van middleware voordat ze bij de applicatie- of webserver uitkomen waar de functionaliteiten staan. Die moeten allemaal aangevallen worden.