Skip to main contentSkip to main content
Room Banner
Back to all walkthroughs
Room Icon

Web Server Attacks - I

Premium room

Enumerate and identify misconfigurations across Apache, Nginx, Node.js, and Python HTTP Server.

medium

60 min

44

User profile photo.
User profile photo.

To access material, start machines and answer questions login.

During a penetration test, you will almost always run into at least one web server. Sometimes it is a production site with careful configuration. Sometimes it is a forgotten Python server that a developer spun up two years ago and never shut down. Both of them are in scope. Both of them can lead somewhere interesting.

This room focuses on the reconnaissance and misconfiguration-identification phase of web application testing. We have four different web servers running: Apache2, Python's built-in server, a Node.js Express application, and Nginx. These four were chosen because they represent the dominant server types you will encounter on -based infrastructure: and Nginx cover the traditional web server space, Node.js represents the modern application server pattern, and Python's server covers the accidental or improvisational server that appears more often than expected. Each one has distinct behaviours, default configurations, and common mistakes that testers encounter regularly.

The room stops at misconfiguration identification. We will not exploit vulnerabilities in the traditional sense, no shells, no , no privilege escalation. The goal is to build reconnaissance skills that tell you what is exposed and why it matters, a prerequisite for every technique that follows.

Info: In a real engagement, these services would typically run on separate hosts. This lab consolidates them onto one machine to keep things manageable. The behaviour, response headers, and misconfigurations you will see are identical to what you would find in a distributed environment.

Learning Objectives

  • Identify web server software and versions using response headers and default error pages
  • Recognise the risks of Python's built-in server when accidentally exposed
  • Enumerate directory listings, exposed status pages, and unlinked backup files
  • Identify debug endpoints, verbose error messages, and environment variable exposure in Node.js Express applications
  • Detect Nginx autoindex directory listings and exposed nginx_status metrics
  • Perform a security header audit across multiple servers using curl and nikto

Prerequisites

Machine Access

Start the machine by clicking the Start Machine button below. Allow around two minutes for the services to initialise, then access them using the AttackBox or your connection.

Set up your virtual environment

To successfully complete this room, you'll need to set up your virtual environment. This involves starting both your AttackBox (if you're not using your VPN) and Target Machines, ensuring you're equipped with the necessary tools and access to tackle the challenges ahead.
Attacker machine
Status:Off
Target machine
Status:Off
Answer the questions below

I have deployed the virtual machines!

Ready to learn Cyber Security?

The Web Server Attacks - I room is only available for premium users. Signup now to access more than 500 free rooms and learn cyber security through a fun, interactive learning environment.

Already have an account? Log in

We use cookies to ensure you get the best user experience. For more information see our cookie policy.