TIWAP

Totally Insecure Web Application Project

Simardeep Singh
4 min readOct 17, 2021
Index Page

Due to vast evolvement of web technologies and design methodologies, the developers thought of creating a web security lab which is highly vulnerable to most of the common attack methods. TIWAP is a web application designed for beginners in web application security who want to learn and explore this field, thus made for educational purposes only. It focuses on 20 vulnerabilities, each having 3 levels of difficulty.

These vulnerabilities are found on most of the modern web applications which arise due to lack of secure coding practices and common methods being ignored by the developers.

The Tech Stack

Most of the web applications these days are using stacks like MERN, MEAN, LAMP, etc. But to stick with the basics the developers aimed to use Flask with HTML/CSS to create this application. Since the application is made for learning purposes, no modern technologies can be seen in the development of this application.

The complete tech stack is:

Front-End: HTML, CSS and JavaScript

Back-End: Flask

Databases: SQLite3 and MongoDB

Deployment: Docker

Though the stack is simple, the users can expect some modernization in the upcoming version which might be focusing on vulnerabilities in various web frameworks/libraries.

Setup and Installation

Most of the labs require a lot of things to be installed and set up as a prerequisite for installing the main lab. To keep things simple, we have used docker and docker-compose so that all you need is run a single command and your lab is up and running.

As for the initial release, the lab works on Linux based Operating Systems only. Support for Windows will be released soon.

To install docker and docker compose refer the links below:

Docker: https://docs.docker.com/engine/install/

Docker-Compose: https://docs.docker.com/compose/install/

Once you have these two installed, all you need is to run the commands below:

git clone https://github.com/tombstoneghost/TIWAP

cd TIWAP

docker-compose up

Output: docker-compose up

Vulnerabilities

Dashboard

So much to exploit in a single application? Yes, indeed. As mentioned before, this application has 20 vulnerabilities and each has 3 levels of difficulty. The developers had an aim for the users to learn as much as they want and therefore they have released the first version with the most common and known vulnerabilities.

The complete list of vulnerabilities is below.

Vulnerabilities

You might have heard or read about these vulnerabilities, but now you have a complete lab to learn how these vulnerabilities are generated and exploited.

Walk Around the Lab

As we are now in the lab, there are a few more things which could be useful while working on the same.

Dashboard

The dashboard is the main page you’ll see once you are logged in. This page contains all the vulnerabilities available. All you need is to just click the tile and you are redirected to the web page.

Dashboard

Settings Page

The settings page is the one which will be used a lot by the users while working as they might need to reset the complete databases or even change the difficulty levels.

Settings

The very first thing you’ll see in the settings page is the description of all difficulty levels. Each level of difficulty is well-defined so that the user can easily understand each level.

As per requirement, the user can change the level from the given drop down menu. There are a few vulnerabilities in which the UI changes when you change the difficulty level, eg. SQL Injection

Moving further, you have the ResetDB button. This feature has been designed to reset the complete database back to its original form as there are vulnerabilities in which you are interacting with the database.

Final Words

As mentioned before, this application was made for beginners to start learning about web application security and with the same aim, the developers have developed it. It provides a very user-friendly environment so that one doesn’t need to hazel around while working on the same.

We hope you love this lab and in case you would like to contribute, this project is open-source and open to contribute. You can check the Read Me file available on the GitHub repository if you want to contribute.

Looking for a Walkthrough?

After working on the application, I started working on it’s walkthrough which took me a lot of time and even many bugs were found while solving the labs. Most of the bugs have been fixed by now and some are still under review.

You can find the solution to all the labs including the fixed ones on my personal portfolio, direct URLs to the walkthroughs are given below.

  • Difficulty Low- Here
  • Difficulty Medium- Here
  • Difficulty Hard- Here

Link to project: GitHub

Happy Hacking :)

Liked this Article?

--

--

Simardeep Singh

Cyber Security Enthusiast | Penetration Tester | Full Stack Web Developer | Techno Geek