Training Details

Training Duration: 3 Days

Modern Web and Desktop apps share traditional attack vectors and also introduce new opportunities to threat actors. This course will teach you how to review modern web and desktop apps, showcasing Node.js and Electron but using techniques that will also work against any other web or desktop app platform. Ideal for Penetration Testers, Web and Desktop app Developers as well as everybody interested in JavaScript/Node.js/Electron app security.

This course is the culmination of years of experience gained via practical penetration testing of Modern Web and Desktop applications as well as countless hours spent doing research. We have structured this course around the OWASP Security Testing Guide, it covers the OWASP Top Ten and specific attack vectors against Modern Web and Desktop apps. This course provides participants with actionable skills that can be applied immediately from day 1.

Please note our courses are 100% hands-on, we do not lecture students with boring bullet points and theories, instead we give you practical challenges and help you solve them, teaching you how to troubleshoot common issues and get the most out of this training. Training then continues after the course through our frequently updated training portal, for which you keep lifetime access, as well as unlimited email support.

Each day starts with a brief introduction to the Modern platform (i.e. Node.js, Electron) for that day and then continues with a look at static analysis, moves on to dynamic checks finishing off with a nice CTF session to test the skills gained.

 

Agenda:

Day 1: Hacking Modern Web Apps by Example

  • Part 0 – Modern Web App Security Crash Course
    • The state of Modern Web App Security
    • Modern Web App architecture
    • Introduction to Modern Web App apps
    • Modern Web App apps the filesystem
    • JavaScript prototypes
    • Recommended lab setup tips
  • Part 1 – Static Analysis, Modern Web App frameworks and Tools
    • Modern Web App frameworks and their components
    • Finding vulnerabilities in Modern Web App dependencies
    • Common misconfigurations / flaws in Modern Web App applications and frameworks
    • Tools and techniques to find security flaws in Modern Web App apps
  • Part 2 – Finding and fixing Modern Web App vulnerabilities
    • Identification of the attack surface of Modern Web App apps and general information gathering
    • Identification of common vulnerability patterns in Modern Web App apps:
      • CSRF
      • XSS
      • Access control flaws
      • NOSQL Injection, MongoDB attacks + SQL Injection
      • RCE
      • Crypto
    • Monitoring data: Logs, Insecure file storage, etc.
  • Part 3 – Test Your Skills
    • CTF time

 

Day 2: Advanced Modern Web App Attacks

  • Part 0 – Advanced Attacks on Modern Web Apps
    • Leaking data from memory at runtime
    • Prototype Pollution Attack
    • From deserialization to RCE
    • Server Side Template Injection
    • OAuth attacks
    • JWT attacks
    • Scenarios with CSP
    • Scenarios with Angular.js
    • Race conditions
    • Sandbox related security
    • Real world case studies
  • Part 1 – Advanced Modern Web & Desktop Apps CTF
    • Challenges to practice advanced attacks

Day 3: Hacking JavaScript Desktop Apps by Example

  • Part 0 – JavaScript Desktop App Security Crash Course
    • The state of JavaScript Desktop App Security
    • Modern app security architecture and its components
    • JavaScript Desktop apps and the filesystem
    • Recommended lab setup tips
  • Part 1 – Static Analysis and Tools
    • Tools and techniques to reverse and review Modern apps
    • Finding vulnerabilities in Modern app dependencies
    • Identification of the attack surface of Modern apps & information gathering
    • Static modification of Modern apps for analysis and debugging
    • Identification of common vulnerability patterns in Modern apps:
      • Common misconfigurations + Hardcoded secrets
      • Logic bugs
      • Access control flaws
      • URL handlers
      • XSS, Injection attacks and more
    • Modifying Modern apps to alter behaviour and debug issues
  • Part 2 – Dynamic Analysis
    • Monitoring data: caching, logs, app files, insecure file storage, unsafe storage of app secrets, etc.
    • Crypto flaws
    • The art of MitM: Intercepting Network Communications
    • >Defeating certificate pinning at runtime
    • The art of Instrumentation: Introduction to Frida
    • App behaviour monitoring at runtime
    • Modifying app behaviour at runtime
  • Part 3 – Test your Skills
    • CTF time

 

Training Objectives:

This course will take any student and make sure that:
– The general level of proficiency is much higher than when they came
– The skills acquired can be immediately applied to modern Web and Desktop app security assessments
– Skills can be sharpened via continued education in our training portal for free
– The student is equipped to defeat common Web and Desktop app assessment challenges
– Everybody will learn a lot in this training.
– Advanced students will come out with enhanced skills and more efficient workflows – The skills gained are highly practical and applicable to real-world assessments

 

Who Should Attend:

Any Web or Desktop App developer, penetration tester or person interested in Modern Web and Desktop apps, Node.js, Electron or JavaScript security will benefit from attending this training regardless of the initial skill level:

This course is for beginners, intermediate and advanced level students. While beginners are introduced to the nuances of Modern Web and Desktop App security from scratch, intermediate and advanced level learners get to perfect both their knowledge and skills on the subject. Extra mile challenges are available in every module to help more advanced students polish their skills.

The course is crafted in a way that regardless of your skill level you will significantly improve your Modern App security auditing skills:

If you are new and cannot complete the labs during the class, that is OK, as you keep training portal access, you will learn a lot in the class but can continue from home with the training portal.

If you are more advanced you can try to complete the labs in full and then take the CTF challenges we have for each day, you will likely also attempt to complete some exercises from home later 🙂

 

Training Prerequisites:

This course has no prerequisites as it is designed to accommodate students with different skills:

  1. Advanced students will enjoy comprehensive labs, extra miles and CTF challenges
  2. Less experienced students complete what they can during the class, and can continue at their own pace from home using the training portal.

This said, the more you learn about the following ahead of the course, the more you will get out of the course:

  1. Linux command line basics
  2. Basic knowledge of Node.js, Electron or JavaScript is not required, but would help.