Web App Security

How much do you know about web application security?

In the context of web applications…

--- primary_color: "#77b6ea" secondary_color: lightgray text_color: black shuffle_questions: false show_hint: false shuffle_answers: false --- ## Which of the following can be considered a security boundary? Check all that apply. - [ ] Rate limiting - [x] Network-level separation between datastore assets and application runtime assets - [x] Segregation between production and non-production environments - [ ] Two factor authentication ## What feature does the OAuth2 protocol provide? One answer applies. 1. [x] Access delegation through authorisation 1. [ ] Authentication 1. [ ] JWT signatures 1. [ ] Identification ## What's the strongest hashing algorithm for password storage, today? One answer applies. 1. [ ] rc4 1. [ ] bcrypt 1. [x] Argon2 1. [ ] md5 ## What's the advantage of session ID cookies vs. HTTP Basic Authentication? One answer applies. 1. [ ] Browsers' enforcement of TLS encryption for session ID cookies 1. [ ] Session IDs have a cryptographic signatures 1. [ ] There's no security advantage 1. [x] Avoiding constantly transmitting users' passwords over the network ## What's the risk associated with an open redirect vulnerability? One answer applies. 1. [ ] Unauthorized access to server-side code 1. [x] Redirection of users to malicious websites 1. [ ] Theft of users' session IDs 1. [ ] Execution of arbitrary server-side scripts ## Which browser security mechanisms help mitigate XSS vulnerabilities? Check all that apply. - [ ] CORS - [x] CSP - [x] Same-Origin Policy - [x] Cookie flags ## What security properties does TLS provide? One answer applies. 1. [x] Authenticity, Integrity & Confidentiality 1. [ ] Encryption, Privacy & Fault-tolerance 1. [ ] Forward Secrecy, Availability & Tamper-resistance 1. [ ] Authentication, Identification and Trustability ## In the context of a browser, where should JWTs be stored? One answer applies. 1. [ ] JWT are ephemeral and should not be stored 1. [x] `cookie` 1. [ ] `localStorage` 1. [ ] `sessionStorage` ## What type of attacks does browser sandboxing protect against? One answer applies. 1. [ ] Cross-site scripting 1. [ ] Cross-site request forgery 1. [x] Attacks against the browser itself or host machine 1. [ ] NOP-sled attacks ## To detect attacks, web application firewalls look for odd patterns in…? One answer applies. 1. [x] HTTP Requests 1. [ ] JA3 fingerprints 1. [ ] OSPF Routing Tables 1. [ ] Control flow graphs ## What does IDOR stand for? One answer applies. 1. [ ] Inconsistent Direct Origin Routing 1. [x] Insecure Direct Object Reference 1. [ ] Insecure Data Output Retrieval 1. [ ] Interactive Data Object Repository ## What does IDOR allow for? Check all that apply. - [x] Unauthorised modification of user data - [ ] Remote code execution - [x] Data theft - [ ] Man in the middle attack ## Which of the following Cross-Site-Scripting types exist? Check all that apply. - [x] DOM-based XSS - [x] Stored XSS - [x] Reflected XSS - [ ] Shadow Injection XSS ## What does a Cross-Site Request Forgery attack cause? One answer applies. 1. [ ] Unauthorised cookie access 1. [x] Induce user to perform unintended actions 1. [ ] Credential spoofing 1. [ ] Spontaneous Data Duplication ## Why are passwords salted before being hashed? One answer applies. 1. [ ] To enhance their flavor 1. [ ] To make the hash longer and more random 1. [ ] To reduce hash collisions likelihood 1. [x] To mitigate rainbow table attacks ## In the context of password storage, what is the difference between a salt and a pepper? Check all that apply. - [ ] The way they are used to compute the hash (before or after the plaintext) - [x] Salt is not secret and pepper is secret - [x] Salt is stored next to the hashed password and pepper is stored elsewhere - [ ] Salt is specific for every password stored, a pepper is the same for all stored passwords ## DOMPurify is a JS library that protects against… by…? One answer applies. 1. [x] XSS by sanitising HTML 1. [ ] SQL Injections by sanitising user inputs 1. [ ] Command injection by sanitising HTTP requests before they’re sent 1. [ ] Account takeover by enforcing strict security boundaries in the DOM ## How can CDN caching introduce security risks to a web application? One answer applies. 1. [ ] By allowing timing-based side channel attacks 1. [x] By caching sensitive information and serving it to the wrong users, leading to unauthorized data exposure 1. [ ] By hiding users’ IP addresses, making them anonymous 1. [ ] By serving as a bounce-board for amplifying web attacks ## Which of the following best describes a race condition vulnerability? One answer applies. 1. [ ] An attacker intercepts and manipulates data in transit 1. [ ] An attacker succeeds in responding to a user request faster than the legitimate server 1. [x] Two or more processes access shared resources simultaneously, causing unpredictable behavior 1. [ ] Inability to authenticate users properly ## What are the risks associated with a Server-Side Request Forgery vulnerability? Check all that apply. - [x] An attacker can force the server to access internal services or resources, potentially leading to data exposure or unauthorized access - [x] An attacker can use SSRF to conduct port scanning on internal networks, discovering hidden or sensitive services - [ ] An attacker can execute arbitrary code on the server - [ ] An attacker can do lateral privilege escalation and switch identities
 

What’s your score?

  • 2️⃣0️⃣ - 1️⃣6️⃣ → 🎉 Nicely done! We’ve got a solid security engineering candidate here!
  • 1️⃣5️⃣ - 1️⃣1️⃣ → 👌 Your security team can count on you.
  • 1️⃣0️⃣ - 7️⃣ → 👍 Okay, you’ve got a few good ideas.
  • ≤ 6️⃣ → 🚨 Inline with the wider IT engineering population.