Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Application Security

6/11/2020
02:00 PM
Vanessa Sauter
Vanessa Sauter
Commentary
Connect Directly
Twitter
LinkedIn
RSS
E-Mail vvv
50%
50%

The Hitchhiker's Guide to Web App Pen Testing

Time on your hands and looking to learn about web apps? Here's a list to get you started.

Six months ago, I started my own journey learning web app penetration testing from scratch. Several people have asked me to compile these resources into one compendium aimed at those with little or no experience in information security. This list features free and open source learning materials.

Build a Foundation
For those purely interested in finding vulnerabilities for bug bounty programs, there are open source scripts you can use to quickly scan web apps. Pen testing, however, is a methodical process that requires fundamental knowledge. To find trickier vulnerabilities, like business logic flaws or race conditions, you must have a complete understanding of how the Internet and web applications function. Building a foundation of the fundamentals will facilitate your experience finding all vulnerabilities and provide necessary context to assess risk.

Mozilla provides amazing explainers on web development. I recommend reading all of it. Start with this YouTube series: "What Is the Web?" Then check out its developer guides. Pay close attention to the following:

● Ajax

● Guide to Web APIs

● JavaScript

● Localizations and Character Encodings

● Parsing and Serializing XML

If you take web app pen testing seriously, you'll spend an inordinate amount of time looking at HTTP, which is an application layer protocol to communicate between web browsers and web servers. I recommend reading all of Mozilla's explainers on HTTP. You'll thank me later.

For those interested in more detail — aimed at web app pen testers — you could also read these technically dense articles from PentesterLab: "Web for Pentester" and "Web for Pentester II."

You may ask, "What is the difference between web servers, application servers, and database servers?" Stack Overflow provides a tidy answer. Here's an old-school HTML page that illustrates how web applications work. For a more thorough tutorial, read the O'Reilly textbook chapter on database applications and the Web.

Oh, and you should also read up on networking terminology.

Finally, you should understand role-based access controls. Here's a simple explainer for context. There's also a concise explainer on GitHub. For a more detailed explanation written for engineers, check out this article.

Learn How Certain Programming Languages Are Structured
No, you don't need to be a master in every programming language ever created. You don't need the skills to single-handedly create the next Google. You do not need to be the tech-equivalent of Michelangelo preparing to 3D print David.

You should, however, have a good sense of how certain programming languages are structured. You should also understand command line.

There are many paid subscription programs out there, like Codecademy, that offer a strong, structured way to learn programming languages. But as I promised, this is a compendium of free and open source resources. Here are a few starting points:

● JavaScript

Introduction to JavaScript (free from Codecademy)  

Learn JavaScript

● SQL

SQLZoo

● Python

o Note: Python 2 has been deprecated. I recommend you use resources for Python 3.

Learn Python

Google's Python Class

● Command Line

A Command Line Crash Course

A Command Line Primer for Beginners

Configure a Proxy in a Virtual Lab
You don't need a full virtual lab when you're learning the fundamentals. The best tool to start with is Burp Suite Community Edition. It's a basic proxy that intercepts HTTP traffic so you can manually alter requests. The Professional Edition costs $399 per year and offers solid web app scanning, as well as other useful tools. It's typically used for professional pen testers and bug bounty hunters.

That said, don't use a proxy while conducting daily business on your browser. In other words, don't use Burp to proxy traffic when you're transferring your life savings or inputting your Social Security number into Very Secret Sites.

It's safer to configure a proxy in a virtual lab, so you might as well set up Kali Linux. Kali Linux is a Linux-distribution for pen testing that comes prepackaged with need-to-have tools Here's an excellent explainer on Kali Linux and the Metasploit Framework, which I recommend you read.

Check out this YouTube guide for installing Kali: How to Install Kali Linux in VirtualBox. Then use this guide for configuring your browser to work with Burp Suite. An important note: The 2020.1 Kali Linux distribution is configured as non-root by default, which is different from previous versions. If that makes no sense to you, that's OK. Download an earlier version of Kali Linux unless you're already comfortable with Linux.

Don't get bogged down in the details yet. There is a lot of information about Kali. As a beginner, focus on the fundamentals.

Hunker Down to Dive into the Finer Details
The bible of web app pen testing is the Web Application Hacker's Handbook, second edition. The Internet Archive has digitized it and made it freely available. Read all of it. Curl up in your PJs, pour yourself a drink, and read this whole book, cover to cover.

Instead of releasing a printed third edition, PortSwigger created the Web Security Academy. There are interactive vulnerability labs and video tutorials, all free. It also has this excellent guide to using Burp to Test for the OWASP Top 10

For the brash and unamused, work your way through Hacksplaining's lessons for a general overview of vulnerabilities.

For an exhaustive list of all web security tools and resources, check out this GitHub repository. When you're ready to test your new-found knowledge on sites, check out GitHub's list of labs.

I promised you this list would consist of free and open source material, but I would be amiss not to mention PentesterLab. It is a subscription-based course with useful sandboxes to try web app vulnerabilities. It also offers a free PentesterLab bootcamp without access to sandboxes. 

There are plenty of vulnerable websites you can practice on, including Juice Shop, WebGoat, and bWAPP.

If you're interested in application security, join your local OWASP chapter. OWASP is a nonprofit intended to freely distribute information, resources, tools, and methodologies to enhance application security worldwide.

This list is intended to get your feet wet. Once you start to dig through the material, travel your own path and find the classes of vulnerabilities that most appeal to you. It's OK if you feel overwhelmed. Give yourself time to process the material.

The conscious competence theory states there are four stages of learning: unconscious incompetence, conscious incompetence, conscious competence, and unconscious competence. In the first stage, you don't know what you don't know. My hope is this list helps you identify what you don't know. From there, anything is possible.

Related Content:

 
 
 
 
Learn from industry experts in a setting that is conducive to interaction and conversation about how to prepare for that "really  bad day" in cybersecurity. Click for more information and to register

Vanessa Sauter is a security strategy analyst at Cobalt.io, a Pentest as a Service company, where she focuses on application security and blue teaming. She previously worked at the Brookings Institution and the Aspen Institute in Washington, DC, where she specialized in ... View Full Bio
 

Recommended Reading:

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
Thomas277
50%
50%
Thomas277,
User Rank: Apprentice
9/1/2020 | 11:16:49 PM
Great Article
Let me tell you this article is very helpful for someone who is looking to enter in the world of
<a href="https://valuementor.com/application-security-testing/" target="_blank">web application penetration testing</a>

.Great article.I found this article via google.its hidden gem.But it was worth it.
Commentary
How SolarWinds Busted Up Our Assumptions About Code Signing
Dr. Jethro Beekman, Technical Director,  3/3/2021
News
'ObliqueRAT' Now Hides Behind Images on Compromised Websites
Jai Vijayan, Contributing Writer,  3/2/2021
News
Attackers Turn Struggling Software Projects Into Trojan Horses
Robert Lemos, Contributing Writer,  2/26/2021
Register for Dark Reading Newsletters
White Papers
Video
Cartoon Contest
Current Issue
2021 Top Enterprise IT Trends
We've identified the key trends that are poised to impact the IT landscape in 2021. Find out why they're important and how they will affect you today!
Flash Poll
How Enterprises are Developing Secure Applications
How Enterprises are Developing Secure Applications
Recent breaches of third-party apps are driving many organizations to think harder about the security of their off-the-shelf software as they continue to move left in secure software development practices.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2021-21510
PUBLISHED: 2021-03-08
Dell iDRAC8 versions prior to 2.75.100.75 contain a host header injection vulnerability. A remote unauthenticated attacker may potentially exploit this vulnerability by injecting arbitrary &acirc;&euro;&tilde;Host&acirc;&euro;&trade; header values to poison a web-cache or trigger redirections.
CVE-2020-27575
PUBLISHED: 2021-03-08
Maxum Rumpus 8.2.13 and 8.2.14 is affected by a command injection vulnerability. The web administration contains functionality in which administrators are able to manage users. The edit users form contains a parameter vulnerable to command injection due to insufficient validation.
CVE-2020-27576
PUBLISHED: 2021-03-08
Maxum Rumpus 8.2.13 and 8.2.14 is affected by cross-site scripting (XSS). Users are able to create folders in the web application. The folder name is insufficiently validated resulting in a stored cross-site scripting vulnerability.
CVE-2020-27838
PUBLISHED: 2021-03-08
A flaw was found in keycloak in versions prior to 13.0.0. The client registration endpoint allows fetching information about PUBLIC clients (like client secret) without authentication which could be an issue if the same PUBLIC client changed to CONFIDENTIAL later. The highest threat from this vulner...
CVE-2021-21503
PUBLISHED: 2021-03-08
PowerScale OneFS 8.1.2,8.2.2 and 9.1.0 contains an improper input sanitization issue in a command. The Compadmin user could potentially exploit this vulnerability, leading to potential privileges escalation.