This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit

OWASP NZ Day 2020-Training-Advanced Pwning Fixing of Node js Apps

Revision as of 21:16, 14 December 2019 by John dileo (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Advanced Pwning and Fixing of Node.js Apps: Shells, Injections, and Fun!

One-Day Interactive Training -- OWASP New Zealand Day 2020


This course is the culmination of years of experience gained via practical penetration testing of JavaScript 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 Node.js apps. This course provides participants with actionable skills that can be applied immediately.

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.

The day starts with a brief introduction to Node.js, then continues with a look at static analysis, moves on to dynamic checks, and finishes off with a nice CTF session to test the skills gained.

Course 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 Node.js app security assessments
  • Skills can be sharpened via continued education in our training portal for free
  • The student is equipped to defeat common Node.js app assessment challenges
  • People who are new to JavaScript security 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

Course Details

Dates: Wednesday, 19 February 2020

Time: 8:45 a.m. to 5:30 pm.

Course Fee: NZ $625.00 (plus EventBrite fees)

Minimum Enrollment: Ten (10) participants - If the class has not reached 10 participants by 20 January (four weeks before the instructors would have to depart for Auckland), the class will be cancelled. Those enrolled will be offered the opportunity to enroll in a different class, or receive a refund.

Registration Site:

Target Audience:

Any Node.js/JavaScript developer, penetration tester, or person interested in Node.js and 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 Node.js 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 JavaScript security 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 in JavaScript security you can try to complete the labs in full and then take the CTF challenges, you will likely also attempt to complete some exercises from home later

Prerequisite Skills:

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

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

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

  • Linux command line basics
  • Node.js basics

Attendees Should Bring:

A laptop with the following specifications:

  • Ability to connect to wireless and wired networks
  • Ability to read PDF files
  • Administrative rights: USB allowed, the ability to deactivate AV, firewall, install tools, etc.
  • Knowledge of the BIOS password, in case VT is disabled
  • Minimum 8GB of RAM (recommended: 16GB+)
  • 60GB+ of free disk space (to copy a lab VM and other goodies)
  • VirtualBox 6.0 or greater, including the “VirtualBox Extension Pack”

Instructors: Abraham Aranguren and Anirudh Anand

Instructors' Organisation: 7A Security

Course Outline

Part 0 - Node.js Security Crash Course

  • The state of Node.js Security
  • Node.js architecture
  • Introduction to Node.js apps
  • Node.js apps the filesystem
  • JavaScript prototypes
  • Recommended lab setup tips

Part 1 - Static Analysis, Node.js frameworks and Tools

  • Node.js frameworks and their components
  • Finding vulnerabilities in Node.js dependencies
  • Common misconfigurations / flaws in Node.js applications and frameworks
  • Tools and techniques to find security flaws in Node.js apps

Part 2 - Finding and fixing Node.js vulnerabilities

  • Identification of the attack surface of Node.js apps and general information gathering
  • Identification of common vulnerability patterns in Node.js 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!

Your Instructors

Abraham Aranguren - After 13 years in ITSec, and 20 in IT, Abraham is now the CEO of 7ASecurity, a company specializing in penetration testing of web/mobile apps, infrastructure, code reviews and training. Former senior penetration tester / team lead at Cure53 and Version 1. Creator of Practical Web Defense - a hands-on eLearnSecurity attack / defense course, OWASP OWTF project leader, an OWASP flagship project, Major degree and Diploma in Computer Science, some certs: CISSP, OSCP, GWEB, OSWP, CPTS, CEH, MCSE:Security, MCSA:Security, Security+. As a shell scripting fan trained by unix dinosaurs, Abraham wears a proud manly beard. He writes on Twitter as @7asecurity. Many of his presentations, pentest reports and recordings can be found on Publications.

Anirudh Anand - Anirudh Anand is a security researcher with a primary focus on Web and Mobile Application Security. He has been submitting bugs and contributing to security tools for over 7 years. In his free time, he participates in CTF competitions along with Team bi0s (#1 security team in India according to CTFtime). His bounties involve vulnerabilities in Google, Microsoft, LinkedIn, Zendesk, Sendgrid, Gitlab, Gratipay and Flipboard.

Anirudh also has contributed to several OWASP projects with notable contributions being in OWTF and Hackademic Challenges Project. He has presented/trained in a multitude of conferences including c0c0n 2019, BlackHat Arsenal 2019, BlackHat Europe Arsenal 2018, HITB Dubai 2018, Offzone Moscow 2018, Ground Zero Summit Delhi 2015 and Xorconf 2015.