Hack Yourself First: How to go on the Cyber-Offense
"Hack Yourself First" is all about developers building up cyber-offense skills and proactively seeking out security vulnerabilities in their own websites before an attacker does.
What you'll learn
The prevalence of online attacks against websites has accelerated quickly in recent years and the same risks continue to be readily exploited. However, these are very often easily identified directly within the browser; it's just a matter of understanding the vulnerable patterns to look for.
This course, Hack Yourself First: How to go on the Cyber-Offense, comes at security from the view of the attacker in that their entry point is typically the browser. They have a website they want to probe for security risks and this is how they go about it.
This approach is more reflective of the real online threat than reviewing source code is and it empowers developers to begin immediately assessing their applications even when they're running in a live environment without access to the source. After all, that's what online attackers are doing.
Table of contents
- Introduction 2m
- The three objectives of transport layer protection 3m
- Understanding a man in the middle attack 4m
- Protecting sensitive data in transit 6m
- The risk of sending cookies over insecure connections 13m
- How loading login forms over HTTP is risky 19m
- Exploiting mixed-mode content 11m
- The HSTS header 7m
- Summary 3m
- Introduction 2m
- Understanding untrusted data and sanitisation 7m
- Establishing input sanitisation practices 5m
- Understanding XSS and output encoding 11m
- Identifying the use of output encoding 5m
- Delivering a payload via reflected XSS 10m
- Testing for the risk of persistent XSS 8m
- The X-XSS-Protection header 7m
- Summary 3m
- Introduction 2m
- How an attacker builds a website risk profile 7m
- Server response header disclosure 7m
- Locating at-risk websites 7m
- HTTP fingerprinting of servers 9m
- Disclosure via robots.txt 6m
- The risks in HTML source 5m
- Internal error message leakage 11m
- Lack of access controls on diagnostic data 11m
- Summary 4m
- Introduction 2m
- Identifying untrusted data in HTTP request parameters 11m
- Capturing requests and manipulating parameters 10m
- Manipulating application logic via parameters 8m
- Testing for missing server side validation 16m
- Understanding model binding 4m
- Executing a mass assignment attack 9m
- HTTP verb tampering 11m
- Fuzz testing 15m
- Summary 6m
- Introduction 2m
- Understanding password strength and attack vectors 12m
- Limiting characters in passwords 6m
- Emailing credentials on account creation 2m
- Account enumeration 8m
- Denial of service via password reset 3m
- Correctly securing the reset processes 4m
- Establishing insecure password storage 9m
- Testing for risks in the 'remember me' feature 6m
- Re-authenticating before key actions 4m
- Testing for authentication brute force 8m
- Summary 5m
Course FAQ
In this course we will identify cyber security risks and vulnerabilities by attacking and hacking into your own website. You will learn about:
- Transport Layer Protection
- Cross Site Scripting (XSS)
- Secure cookies
- Internal Implementation Disclosure
- Parameter tampering
- SQL Injection & testing for injection risks
- Cross Site Attacks & anti-forgery tokens
- Much more
This course is for anyone who wants to learn how to hack and improve the security of their code. However, the course is mostly geared towards web developers, not security pros or penetration testers.
We will be heavily using Chrome's developer tools. We will also use Fiddler and some SQL.
Because this course is geared mostly towards web developers, you should be familiar with web development practices and the tools and environments commonly used in web development.