Introduction to WEB200
Module 1 Secrets of Success with WEB200
-
Understand some of the general concepts surrounding application security
-
Recognize the unique mindset of a successful application security professional
-
Understand the pillars of prerequisite knowledge for application security
Introduction to Security Concepts
-
Understand the CIA triad and what it means
-
Understand other key terms and unique traits of this field
-
Understand the basic tools available to students
Getting Started WithWEB200
-
Understand the basic tools available tostudents
-
Understand how to be ‘hands-on’ with the material
-
Understand how to connect to the VPN
Module 2 Tools
Getting Started
-
Learn how to edit the /etc/hosts file
-
Understand how to test and confirm that our host file changes are working
-
Develop a basic understanding of proxies
Burpsuite
-
Learn how to leverage Burp Suite's built-in browser
-
Understand how to work fluently with the Proxy tab and Intercept functionality
-
Understand how to use both Repeater and Intruder
Nmap
-
Understand how to execute an Nmap NSE Script
-
Learn how to scan a specific port
Wordlists
-
Develop an understanding of the wordlistconcept
-
Understand how we attempt to select the best wordlist for our scenario
-
Learn the basics needed to construct our own wordlist
Gobuster
-
Learn about Retrieval Practice
-
Understand Spaced Practice
Wfuzz
-
Learn how to discover files using Wfuzz
-
Discover how to find directories with Wfuzz
-
Understand how to discover parameters with Wfuzz
-
Learn how to leverage Wfuzz to fuzz parameters
-
Develop the skills to fuzz POST data using Wfuzz
Hakrawler
-
Learn what a crawling or spidering tool is
-
Understand how hakrawler works with https://archive.org The Wayback Machine) to gather its results
Shells
-
Learn how to determine specific the web technology of a web application
-
Understand how to choose the correct shell (matching the web technology)
Module 3 Cross-Site Scripting Introduction and Discovery
Introduction to the Sandbox
-
Understand how to use the custom sandbox
JavaScript Basics for Offensive Uses
-
Understand fundamentals of JavaScript
-
Read and understand basic JavaScript code
-
Use JavaScript APIs to exfiltrate data
Cross-Site Scripting – Discovery
-
Understand the different types of XSS
-
Exploit reflected server XSS
-
Exploit stored server XSS
-
Exploit reflected client XSS
-
Exploit stored client XSS
Module 4 Cross-Site Scripting Exploitation and Case Study
Cross-Site Scripting – Exploitation
-
Cross-Site Scripting – Exploitation
-
Case Study: Shopizer Reflected XSS
Case Study: Shopizer Reflected XSS
-
Discover an XSS vulnerability in Shopizer
-
Create advanced payloads to load external JavaScript resources
-
Discover application-specific attack vectors
-
Exploit a Shopizer user using application-specific attacks
Module 5 Cross-Origin Attacks Same-Origin Policy
Penetration Testing Reports
-
Understand what an origin is
-
Understand the Same-Origin Policy and how it interacts with cross-origin requests
SameSite Cookies
-
Understand the concept of cross-origin requests
-
Understand the SameSite attribute and its three possible settings
Cross-Site Request Forgery CSRF
-
Construct an Executive Summary
-
Understand how to identify cross-site request forgery vulnerabilities
-
Understand how to exploit cross-site request forgery vulnerabilities
Case Study: Apache OFBiz
-
Discover a CSRF vulnerability in a real-world web application
-
Exploit a CSRF vulnerability to create a new user
-
Use JavaScript to chain multiple CSRF requests
-
Understand how the SameSite attribute influences different versions of CSRF attacks
Cross-Origin Resource Sharing CORS
-
Understand the concept of CORS
-
Understand the common headers found on CORS requests
-
Understand the common headers found on
CORS responses Exploiting Weak CORS Policies
-
Understand how to identify CORS response headers
-
Understand how CORS policies that trust arbitrary origins can be exploited
-
Understand how CORS policies that implement incomplete allowlists can be exploited
Module 5 Introduction to SQL
SQL Overview
-
Understand the basic syntax of SQL
-
Understand how to retrieve data from a table
Enumerating MySQL Databases
-
Understand how to identify the version of a MySQL database
-
Understand how to identify the schemas within a MySQL database
-
Understand how to identify the tables within a schema in a MySQL database
-
Understand how to identify the column names and data types in a table in a
MySQL database Enumerating Microsoft SQL Server Databases
-
Understand how to identify the version of a SQL Server database
-
Understand how to identify the current user of a SQL Server database
-
Understand how to identify the databases within a SQL Server instance
-
Understand how to identify the tables within a database in a SQL Server instance
-
Understand how to identify the column names and data types in a table in a SQL Server database
Enumerating PostgreSQL Databases
-
Understand how to identify the version of a PostgreSQL database
-
Understand how to identify the current user of a PostgreSQL database
-
Understand how to identify the schemas within a PostgreSQL database
-
Understand how to identify the tables within a schema in a PostgreSQL database
-
Understand how to identify the column names and data types in a table in a PostgreSQL database
Enumerating Oracle Databases
-
Understand how to identify the version of an Oracle database
-
Understand how to identify the current user of an Oracle database
-
Understand how to identify other users or schemas in an Oracle database
-
Understand how to identify the tables within a schema in an Oracle database
-
Understand how to identify the column names and data types in a table in an Oracle database
Module 6 SQL Injection
Introduction to SQL Injection
-
Understand the concept of SQL injection
-
Understand how the OR operator can modify the results of a SQL query
Testing for SQL Injection
-
Understand how to test web applications to identify SQL injection vulnerabilities
-
Understand the basics of where injections points may occur in SQL queries
-
How to use fuzzing tools to identify SQL injection vulnerabilities
Exploiting SQL Injection
-
Understand how to build and use Error-based payloads
-
Understand how to build and use Union-based payloads
-
Understand how to use Stacked Queries
-
Understand how to use SQL injection to read and write filesinjection vulnerabilities
-
Understand the basics of remote code execution in Microsoft SQL Server
Database dumping with Automated Tools
-
Understand how to use sqlmap to identify SQL injection vulnerabilities
-
Understand how to use sqlmap to obtain a basic OS shell
-
Understand how to use sqlmap to create a web shell
Case Study: Error-based SQLi in Piwig
-
Discover the parameter vulnerable to SQL injection
-
Craft an error-based payload to extract information from the database
Module 7 Directory Traversal Attacks
Directory Traversal Overview
-
Understand and work with the results of a vulnerability scan with Nessus
-
Provide credentials to perform an authenticated vulnerability scan
-
Gain a basic understanding of Nessus Plugins
Understanding Suggestive Parameters
-
Understand the basics of the Nmap Scripting Engine NSE
-
Perform a lightweight Vulnerability Scan with Nmap
-
Work with custom NSE scripts
Relative vs. Absolute Pathing
-
Understand what a Traversal String is
-
Understand basics of Relative Pathing
-
Understand basics of Absolute Pathing
Directory Listing
-
Understand what a Directory Listing is
-
Understand how to analyze a web application's parameter for directory listing
-
Understand what successful exploitation of directory listings looks like
Directory Traversal Sandbox
-
Understand how to successfully exploit Directory Traversal
-
Understand how to implement Wordlists/Payload Lists
-
Understand how to fuzz a potentially vulnerable parameter with Wfuzz
Case Study: Home Assistant
-
Understand how our case study of Home Assistant would initially be assessed
-
Understand how to exploit this real-world case study
-
Understand how to find and discover the documentation for a web application
Module 8 XML External Entities
Introduction to XML
-
Understand the basic syntax of XML
-
Understand the basic concepts of XML Entities
Understanding XML External Entity Processing Vulnerabilities
-
Understand the basic concepts of XML External Entity injection
Testing for XXE
-
Understand how to test for XXE injection vulnerabilities
-
Learn several techniques for exfiltrating data using XXE vulnerabilities
Case Study: Apache OFBiz XXE Vulnerability
-
Identify an XXE vulnerability
-
Exploit an XXE vulnerability to exfiltrate data
-
Use an error-based XXE payload to exfiltrate data
-
Use an out-of-band XXE payload to exfiltrate data
Module 9 Server-side Template Injection – Discovery and Exploitation
Templating Engines
-
Understand the purpose of templating engines
-
Understand the difference between statements and expressions
-
Understand the level of logic a templating engine can have and how it impacts security
Twig – Discovery and Exploitation
-
Understand the basic syntax of Twig
-
Understand how to discover a Twig template in a black box scenario
-
Understand how to reach RCE with a Twig Template
Apache Freemarker – Discovery and Exploitation
-
Understand the basic syntax of Freemarker
-
Understand how to discover a Freemarker template in a black box scenario
-
Understand how to reach RCE with a Freemarker Template
Pug – Discovery and Exploitation
-
Understand the basic syntax of Pug
-
Understand how to discover a Pug template in a black box scenario
-
Understand how to reach RCE with a Pug Template
Jinja – Discovery and Exploitation
-
Understand the basic syntax of Jinja
-
Understand how to discover a Jinja template in a black-box scenario
Mustache and Handlebars – Discovery and Exploitation
-
Understand the basic syntax of Mustache and Handlebars
-
Understand how to discover a Handlebars template in a black box scenario
-
Understand how to read files on remote servers using a Handlebars Template
Halo – Case Study
-
Understand the Halo application
-
Discover the template injection and the templating engine used on Halo
-
Exploit the template injection in the Halo application
Craft CMS with Sprout Forms – Case Study
-
Enumerating the target application
-
Discovering the template injection and the templating engine used in Craft CMS and the Sprout Form plugin
-
Exploiting the template injection in the application
Module 10 Command Injection
Discovery of Command Injection
-
Understand common command injection scenarios
-
Understand how to discover command injection
-
Understand why we execute the id or whoami commands first
-
Understand how we chain commands together and why
Dealing with Common Protections
-
Understand what we mean by Input
Normalization
-
Understand typical means of Input Sanitization and how we can bypass them
-
Understand what Blind OS Command Injection is and how we can work with it
Enumeration & Exploitation
-
Understand common enumeration techniques for various capabilities
-
Understand how to retrieve a shell with Netcat
-
Understand how to retrieve a shell with Python
-
Understand how to retrieve a shell with PHP
-
Understand how to retrieve a shell with Perl
-
Understand how to retrieve a shell with NodejS
-
Understand how a couple of reverse shell one-liners accomplish what they do in various languages
-
Understand how to transfer files using command injection
Case Study – OpenNetAdmin ONA
-
Understand how we discover the command injection in Open Net Admin
-
Understand how we exploit the command injection in Open Net Admin
Module 11 Server-side Request Forgery
Introduction to SSRF
-
Understand the concept of Server-Side Request Forgery
-
Understand how SSRF can interact with the loopback interface
-
Understand how SSRF can interact with back-end systems
-
Understand how SSRF can interact with private IP ranges
Testing for SSRF
-
Understand where SSRF vulnerabilities are likely to occur
-
Understand how to test for SSRF
-
Understand how to verify SSRF vulnerabilities
Exploiting SSRF
-
Understand how to exploit SSRF to retrieve data
-
Understand limitations of SSRF
-
Understand how SSRF can be exploited in cloud environments
-
Become familiar with alternative URI schemes and how they can be used with SSRF
Case Study: Group Office
-
Discover the SSRF vulnerabilities
-
Exploit the SSRF vulnerabilities
Module 12 Insecure Direct Object Referencing
Introduction to IDOR
-
Develop an understanding of Static File IDOR findings
-
Learn about Database Object Referencing IDBased) IDOR
Exploiting IDOR in the Sandbox
-
Understand how to exploit Static File IDOR
-
Learn more about exploiting IDBased IDOR
-
Discover how to exploit More Complex IDOR
Case Study: OpenEMR
-
Learn how to approach IDOR from a Black Box perspective
-
Understand how to discover the vulnerability
-
Develop our knowledge of OpenEMR IDOR exploitation
Module 13 Assembling the Pieces: Web Application Assessment Breakdown
Web Application Enumeration
-
Understand how to perform basic host enumeration
-
Learn how to conduct OS detection
-
Develop a working knowledge of content discovery
Authentication Bypass
-
Discover a directory traversal vulnerability
-
Exploit the directory traversal and obtain the application config file
-
Access the admin portion of the web application
Remote Code Execution
-
Discover a SQL injection vulnerability
-
Exploit the SQL injection vulnerability to obtain remote code execution
-
Gain shell access to the server