Overview

2-Day hands-on AppSec training covering the most common application security vulnerabilities and how to build secure applications that avoid these issues. Finding security vulnerabilities at the end of the SDLC is often too late to influence fundamental changes in the way the code is written, and many security issues could be avoided from the outset.

This class has been written by developers turned pen testers who can help developers to code in a secure manner and introduce security into the development cycle. Throughout this class, developers will be able to get on the same page with security professionals, understand how exploitable vulnerabilities are created in code, learn how to fix or mitigate vulnerabilities and get acquainted with the root causes behind some real-world breaches. Various bug bounty case studies from popular websites like Facebook, Google, Shopify, Paypal, Twitter etc will be discussed explaining the financial repercussions of application security vulnerabilities like SSRF, XXE, SQL Injection, Authentication issues etc.

The techniques discussed in this class are generic and developers from any language background can easily grasp and implement the knowledge learned within their own environments. In the class, .NET, Java and NodeJS are used in the workshop examples as this range provide lessons that can be used in a wide range of applications.

Students will also participate in a ‘capture the flag’ exercise where they’ll be challenged to identify vulnerabilities in code snippets derived from real-world applications.

Target Audience

This class is ideal for front end and back end Web/API developers who work day-in-day out building full-stack web applications or web APIs. This course will however benefit anyone who is looking to develop a skill-set into web application security and identify web application flaws.

Read more

Objectives

  • Offers thorough guidance on best security practices for secure application development (Introduction to various security frameworks and tools and techniques).
  • Covers industry standards such as OWASP top 10 application vulnerabilities with a practical demonstration of vulnerabilities complemented with hands-on lab practice.
  • Provides insights into the latest security vulnerabilities (such as host header injection, XML external entity injection, attacks on JWT tokens, deserialization vulnerabilities).
  • Uses real-world stories for each vulnerability explained (Understand and appreciate why Facebook would pay $33,000 to the person who found a XML Entity Injection vulnerability?).
Read more

Learning Outcomes

  • Learn to code more securely and build more secure applications.
  • Identify and fix security vulnerabilities much earlier in the SDLC process saving time and effort.
  • Understand OWASP Top 10 common application vulnerabilities with practical demonstrations and deeper insight.
  • Understand the financial and wider repercussions of different vulnerabilities.
  • Get on the same page with the security team while discussing vulnerabilities.
Read more

Course Outline

Application Security Basics

  • Why do we need Application Security?
  • Understanding OWASP TOP 10

Understanding the HTTP Protocol

  • Understanding HTTP/HTTPS protocol
    • Lab: Configure Burpsuite to intercept HTTP/HTTPS traffic
  • Understanding Requests and Responses
    • Lab: Manipulating HTTP headers
    • Demo: Host Header Injection
    • Mitigation Techniques
  • Attack Surface detection

Security Misconfigurations

  • Common misconfigurations in Web Applications
  • Sensitive Information exposure and how to avoid it
  • Using Softwares with known vulnerabilities
    • Demo : Struts2 RCE

Insufficient Logging and Monitoring

  • Types of Logging
  • Introduction to F-ELK

Authentication Flaws

  • Password Complexity
    • Lab: Bruteforce using Burpsuite Intruder
  • Anti-Automation Techniques
    • Mitigating brute-force attacks
  • Password Storage
    • Crash Course on Cryptography
    • Introduction to HashiCorp Vault
  • Password Recovery – Best Practices
  • NoSQL Security
    • Lab: Bypass NoSQL Authentication
    • Mitigating NoSQL Injections
  • Understanding WebAuthn – Passwordless Authentication Framework

Authorization Bypass Techniques

  • Parameter Manipulation
    • Common Pitfalls and Mitigations
  • API Authentication – JWT
    • Introduction to JWT
    • Lab : Cracking JWT tokens
    • Common JWT Attacks
    • Mitigating JWT Attacks
  • SSO Authentication – OAuth
    • Introduction to OAuth
    • OAuth Flow
    • Lab: Bypass OAuth
    • Common OAuth Attacks
    • Mitigating OAuth Attacks
  • RBAC Bypasses and mitigations
  • Mass Assignment Vulnerability
    • Understanding Mass Assigning/Auto binding
    • Lab: Exploiting Mass Assignment
    • Mitigating Mass Assignment vulnerability
  • Insecure Direct Object References (IDOR)
    • Mitigating IDORs
  • Local file Inclusion (LFI)
    • Lab: Download internal files
    • Mitigating LFI

Cross-Site Scripting (XSS)

  • Understanding XSS
  • Reflected XSS
    • Lab: Exploiting Reflected XSS
    • Demo: Session Hijacking
  • Stored XSS
    • Lab: Exploiting Stored XSS
  • How not to Mitigate XSS
    • Lab: Pitfalls in XSS Defenses
  • Mitigating XSS

Cross-Site Request Forgery Scripting

  • Understanding CSRF
    • Lab: Exploiting CSRF
  • Mitigating CSRF

Server-Side Request Forgery (SSRF)

  • Understanding SSRF
    • Lab: Exploiting SSRF
    • SSRF in Cloud
  • Mitigating SSRF

SQL Injection

  • Understanding SQL Injection
    • Lab: Error-Based SQL Injection
    • Lab: Blind SQL Injection
  • Mitigating SQL Injection
  • ORM Frameworks

XML External Entity (XXE) Attacks

  • Understanding XML Entities
  • Understanding XXE Vulnerability
    • Lab: Exploiting XXE Vulnerability
  • Mitigating XXE

Unrestricted File Uploads

  • File Upload functionality
    • Lab: Uploading webshells
  • Mitigating File upload vulnerability

Deserialization Vulnerabilities

  • What is Serialization?
  • PHP Object Serialization
    • Demo: PHP Object Deserialization
    • Lab: Exploit PHP Deserialization
  • Java Object Serialization
    • Demo: Java Binary Deserialization
    • Other Java Deserialization
  • Detecting deserialization functions
  • Mitigation for deserialization vulnerabilities

Client-Side Security Concerns

  • Understanding Same Origin Policy
  • Understanding CORS (Cross-Origin Resource Sharing)
    • Demo: CORS
    • Excessive CORS
  • Transport Layer Protection: HSTS
  • Securing Cookies
  • Iframe Security
    • Demo: Clickjacking
  • Content-Security Policy
  • Referrer Policy

Source Code Review

  • Manual Code Review
    • SQL Injection
    • Identify vulnerable libraries
    • Identify Authorization Flaws
    • Log Injections
    • File Handling
    • Insecure Cryptography
  • Automated Code Review
    • Demo: FindSecBugs/CAT.NET
  • Secure Code Review CTF

DevSecOps

  • DevSecOps - What Why and How?
  • DevSecOps Sample Implementation
Read more

QA is proud to be an official partner with NotSoSecure.

NotSoSecure

Why choose QA

Dates & Locations

Cyber Security learning paths

Want to boost your career in cyber security? Click on the roles below to see QA's learning pathways, specially designed to give you the skills to succeed.

= Required
= Certification
AppSec
Cloud Security
Cyber Management
Cyber Security Risk
Cyber Tech
DFIR Digital Forensics & Incident Response
Industrial Controls OT
NIST Pathway
Offensive Security
Privacy
Security Auditor
Vulnerability Assessment & Penetration Testing

Software Engineering learning paths

Want to boost your career in software engineering? Click on the roles below to see QA's learning pathways, specially designed to give you the skills to succeed.

= Required
= Certification
Front End Developer
Back End Developer Java
Back End Developer .NET
Cloud Developer AWS
Cloud Developer Azure
AppSec

Frequently asked questions

See all of our FAQs

How can I create an account on myQA.com?

There are a number of ways to create an account. If you are a self-funder, simply select the "Create account" option on the login page.

If you have been booked onto a course by your company, you will receive a confirmation email. From this email, select "Sign into myQA" and you will be taken to the "Create account" page. Complete all of the details and select "Create account".

If you have the booking number you can also go here and select the "I have a booking number" option. Enter the booking reference and your surname. If the details match, you will be taken to the "Create account" page from where you can enter your details and confirm your account.

Find more answers to frequently asked questions in our FAQs: Bookings & Cancellations page.

How do QA’s virtual classroom courses work?

Our virtual classroom courses allow you to access award-winning classroom training, without leaving your home or office. Our learning professionals are specially trained on how to interact with remote attendees and our remote labs ensure all participants can take part in hands-on exercises wherever they are.

We use the WebEx video conferencing platform by Cisco. Before you book, check that you meet the WebEx system requirements and run a test meeting (more details in the link below) to ensure the software is compatible with your firewall settings. If it doesn’t work, try adjusting your settings or contact your IT department about permitting the website.

Learn more about our Virtual Classrooms.

How do QA’s online courses work?

QA online courses, also commonly known as distance learning courses or elearning courses, take the form of interactive software designed for individual learning, but you will also have access to full support from our subject-matter experts for the duration of your course. When you book a QA online learning course you will receive immediate access to it through our e-learning platform and you can start to learn straight away, from any compatible device. Access to the online learning platform is valid for one year from the booking date.

All courses are built around case studies and presented in an engaging format, which includes storytelling elements, video, audio and humour. Every case study is supported by sample documents and a collection of Knowledge Nuggets that provide more in-depth detail on the wider processes.

Learn more about QA’s online courses.

When will I receive my joining instructions?

Joining instructions for QA courses are sent two weeks prior to the course start date, or immediately if the booking is confirmed within this timeframe. For course bookings made via QA but delivered by a third-party supplier, joining instructions are sent to attendees prior to the training course, but timescales vary depending on each supplier’s terms. Read more FAQs.

When will I receive my certificate?

Certificates of Achievement are issued at the end the course, either as a hard copy or via email. Read more here.

Contact Us

Please contact us for more information