Solving a problem of learning
I’d like to introduce you to a little project that David Hatanian and I have been working on. David is a member of the fantastic team at Codurance, and we first started working together on this project in February 2016.
Following my experiences at European Testing Conference in Bucharest, I realised the time had come for me to create and build my own vulnerable application. This was so that I would be able to run my own workshops on security testing, coach my colleagues and other testers aswell as demonstrating vulnerabilities; such as the OWASP Top 10.
My initial forays into learning security testing relied upon learning from a number of publicly available web applications. These include AltoroMutual, Gruyere from Google, and Supercar Showdown by Troy Hunt.
I also worked closely with Bill Matthews, initially shadowing him, but then helping him to deliver workshops at international conferences. For these workshops, he built his own web application, Ace Encounters, which is a travel and wild adventure website.
Of course, using a real world application to practice these skills is highly illegal. So, students of security testing need a safe place to practice and learn. We aren’t hackers after all, we are testers. We aren’t there to steal, undermine or attack. We are there to explore and learn.
Pairing with David has been incredibly rewarding for us both. I’ve supported him with his understanding of security vulnerabilities, and he has supported me with my learning of object orientated programming (in this case Java).
A couple of months ago I ran a session using Ticket Magpie, for the testers at NewVoiceMedia. The session was well received, and everyone appeared to have fun. The team there are really great at generating interesting test ideas, developing their skills, and following through with practical application of their learning. Taking this out into the wider community of testers was to be the next step, at Test Masters Academy.
Get Ticket Magpie
Ticket Magpie is easy to get, from David’s Github project. Check it out here and follow the instructions on the page. Here is some additional installation guidance.
- Install the components locally on your machine. You’ll need Maven, Java Development Kit and the Ticket Magpie project.
- Configure the JAVA_HOME and PATH environment variables, appropriate to your operating system. (Supports MacOS, Windows and Linux)
- Run the application from the command line.
- You may choose to set up your own database, or run it in memory whilst the application is running.
Virtual Machine Installation
- Install Oracle VirtualBox or your favourite virtualisation tool on your machine
- Create a virtual machine using your OS of choice.
- I like to use Linux Mint for this. It’s lightweight and easy to configure.
- Remember to give your VM enough space, or make it dynamic. 8gb should more than suffice
- Follow the steps above and on the Github page for the project and you can’t go wrong.
Docker (this is by far the quickest and easiest way of getting things running)
- Install Docker on your machine
- Run the application from the Docker Hub image, using the provided command line:
docker run -e "SPRING_PROFILES_ACTIVE=hsqldb" -p8080:8080 "dhatanian/ticketmagpie"
Once TicketMagpie is installed on your chosen environment, run the appropriate command line, then navigate your browser to:
If you are successful, your browser should display the application, and it should look like this:
I invite you to have a go at exploring Ticket Magpie. There are some fun features for you to take a look at. I’m not going to spoil things for you by listing everything here. You might also find some interesting problems.
Because the application runs on your local machine, docker or VM, you can use any technique, tool and gnarly hack you want, without harming anything or anyone else.
Take your time and let me know what you think. If you feel the need, you are welcome to use this form to provide feedback about the application: Ticket Magpie Survey. Alternatively, just message me on Twitter, or comment on this blog.
Good Luck, and Thanks!