
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Welcome to the course!
An overview of what we will be covering in this course and how it is structured.
We take a look at a quick example of a log analysis security tool.
This is the kind of tool that you will be able to build using Python once you finish this course.
We will use https://repl.it/ for this example.
The code for the log analyzer tool. Be sure to download the access.log file from the lecture resources to try as your sample input.
We take a look at another security tool, this time it is a password checker.
You will be able to easily build Python tools like these once you finish this course.
We will use the https://haveibeenpwned.com API for this example.
We go over the development environment that we will be using for this course.
repl.it is at https://repl.it/
We will add latest updates relating to the course in this text
An introductory look at what is covered in section 2
We explore what is meant by cyber security in the modern world and what actually comprises the work of a cyber security professional.
We will review the methodology of cyber security professionals.
In this brief text summary we will talk about Python and the crash course that's available as a bonus in section 7
An overview of repl.it and how to use Python with this great, free tool
Penetration Testing is a key practice for cyber security professionals. Here we go over the basics of what it is and the variables involved.
Demonstrate a python-based penetration testing workflow by sending requests, evaluating status codes, and probing for admin panels and potential vulnerabilities on a simple web site.
Explore remediation in penetration testing with honeypots that trap attackers and network delays that slow suspicious activity, plus traffic masking to mislead attackers while preserving legitimate tests.
Build a simple port scanner in Python using the socket library, check ports with zero return codes, and log open or closed results while noting legal cautions.
Configure firewalls to hide open ports and enforce a white list, disable unused services like telnet and mail, and modify banners to mislead port scanners.
As the number of Internet-connected devices continue to grow, botnets are a dominant cause for concern in today's cyber security and information technology landscape. This is an overview of what they are and how they work, including an explanation of DDoS attacks.
Explore a simple Python example that dumps environment variables to a dict, converts to JSON, and posts secrets to a server to simulate botnet data collection and phoning home.
Understand how code exploits enable remote or local unauthorized code execution and data access, and examine zero days, bug bounty programs, and the Madis ploy framework.
Learn how a code exploit can overflow buffers by feeding a binary file of crafted bytes using Python, revealing how garbage data can leak passwords when the file is processed.
Stay informed about vulnerabilities and patches, apply timely updates, test systems after patches, and use authorized sources with multi-factor authentication to prevent exploits.
Explore computer forensics in cybersecurity by recovering data from hardware, memory, and storage, reconstructing event timelines, and analyzing logs and device data as evidence.
Maintain regular backups and tamper-proof audit trails, including access logs, to prevent the need for forensic investigation and to reconstruct past events for compliance.
Explore network traffic analysis with a Python code example using scapy to sniff packets on a specified interface, print packet summaries, and run with administrator privileges.
Explore how wireless connectivity relates to cybersecurity, covering wardriving, rogue access points, and the risks of zero physical access and default credentials.
Address wireless vulnerabilities by hiding SSIDs, separating guest and internal networks, and changing default credentials. Implement WPA and WPA2, and apply MAC address filtering to harden the network.
Demonstrates web reconnaissance with Python by fetching a domain via requests, detecting SSL, stylesheets, and JavaScript, and cataloging results into a JSON profile with a unique digest.
We explore the topic of antivirus evasion and how an application can bypass an antivirus scan.
Examine how a simple Python command can be concealed with base64 encoding and obfuscated code to bypass antivirus checks, including writing and evaluating decoded content.
Explore antivirus evasion remediation by updating virus definitions, applying signatures across devices, and integrating a security tool suite with firewalls, authentication, and monitoring to prevent and detect malicious code.
We take a look at the various non-technical ways in which attackers can get sensitive information and compromise information systems.
An introductory look at the content covered in section 3
Build a Python security tool named Achilles with a command line interface, using argument parsing, input validation, and HMO document parsing to perform vulnerability analysis and output a report.
Learn how to manage Python dependencies with pip, install packages via Python 3, and handle admin permissions while using popular packages like Django, requests, and validators.
Learn to implement argument parsing in Python by creating a parser, adding version and URL arguments, understanding short flags and usage output, and distinguishing required versus optional arguments.
Parse HTML documents served by a local http server using urllib.parse and BeautifulSoup, inspect forms with find_all, and assess elements for vulnerability reporting.
Generate a report from our analysis by flagging non-secure forms in the document. Print the issue report for form vulnerabilities and prepare for the next check.
Add a second check to detect secrets in file comments using BeautifulSoup and a lambda function, reporting hidden keys without printing the comments.
Analyze a demo security page by checking HTML forms for plain text password fields and verify password inputs use the proper password type to prevent exposure.
Improve the report by validating empty reports, printing secure messages when no issues exist, and generating a vulnerability report for found issues, while preparing for configurable output.
Load YAML config files with the yemo library, converting streams or strings into Python objects. Override a default config with file values and merge conflicts to ensure correct settings.
Learn how to add a file output option for reports in a Python command-line tool, including a new flag, file path handling, opening for writing, and constructing the report header.
Understand how to test a Python security tool with integration testing, treating it as a black-box by feeding inputs and validating outputs, including error conditions on the command line.
Create usage documentation for your tool with a markdown readme on GitHub, and generate docs using pydoc, docstrings, Sphinx, and reStructuredText hosted on Read the Docs.
A brief look at the content covered in section 4
Explore why web application security matters in a browser-based, common-technology world. Learn how input creates attack surfaces and how the open web application security project's top 10 risks guide protection.
Explore the OWASP top 10 vulnerabilities, understand why they are dangerous, review Rails examples, and identify injection types and broken authentication subcategories.
Explore the Ruby on Rails framework with its beginner-friendly design and built-in features, and examine top 10 vulnerabilities in a Rails app with security focus and bounty program.
Explore PHP's role in the web, from the lamp stack to WordPress, Drupal, and MediaWiki. Assess its beginner-friendly nature and the security considerations of its many configurable surfaces.
Explain how command injection exploits rely on unsanitized input to execute code on a server, often targeting Linux-based systems with Java, AWS, Red Hat, and other stacks.
Demonstrates command injection in a Rails app by showing unsanitized input triggering os commands, and explains stopping it by sanitizing input and applying a character blacklist.
Explore how command injection arises in a PHP workflow through input-driven exec calls and string concatenation. Learn to remediate with escape shell command techniques to prevent leaking confidential output.
Examine SQL injection as a common vulnerability from unsanitized inputs and poorly structured queries. Learn how proper query discipline and input sanitization protect databases in web apps.
Explain sql injection in rails by showing how unsafely built queries can return all users, and demonstrate fixing it with parameterized queries.
Explore how PHP data objects (PDO) enable prepared queries, bind variables to placeholders, and scrub inputs to prevent SQL injection in PHP applications.
Examine broken authentication and how password complexity shapes security, highlighting risks of weak or reused passwords across systems and legacy eight-character or restricted rules in web applications.
Explore password complexity and how weak passwords create a vulnerability in sign up forms, as the PHP example shows length checks and rules to enforce longer, more complex passwords.
illustrates information leakage in authentication with a Rails login example, showing how specific messages reveal username or password errors and how generic failure messages remediate security risk.
Explain how information leakage arises in a PHP login page on a local server, review conditional responses, and fix with generic errors to avoid revealing which credential failed.
Protect sensitive data by preventing information leakage, enforcing encryption, and restricting data returned to users to avoid exposing passwords, cookies, or personal records.
Identify and fix sensitive data exposure in a Rails app by removing password visibility from index, edit, login, and new user views to prevent information leakage.
Explore the xml external entities (xxe) vulnerability, where external entity references are evaluated during xml processing, risking malicious input and remote code execution in web apps.
Explore how Rails defaults can enable XML external entities (XXE) attacks that expose secrets, and prevent it by turning off parsing by default and validating content with safe libraries.
Examine xml external entities (XXE) vulnerabilities where external entities load local files, exposing sensitive data; learn to defend by disabling external entity loading and scanning inputs for patterns.
Identify and prevent broken access control by enforcing proper authorization rules, guarding against manipulated requests and role-based access, to protect sensitive data and avoid data leaks.
Explore how broken access control exposes admin functionality when authorization isn't done correctly. See why server-side authorization and true user-based checks prevent access, avoiding client-side flags and insecure serializations.
Explore how security misconfiguration affects any web app stack—from data layers to gateways—through insecure defaults, unnecessary features, and outdated software, and how to harden with proper configuration.
Explore cross-site scripting (xss) as a vulnerability where unsanitized user input can execute javascript, reflected or stored, leading to malicious information and clickjacking.
Explore insecure deserialization vulnerabilities in modern web apps, where unsanitized input stored in serialized formats is evaluated as code, risking remote execution.
Demonstrate how insecure deserialization in a PHP example lets an attacker tamper with cookies and gain admin rights by manipulating user data, and suggest encrypting and separating cookies.
Applications that use vulnerable components can often be the target of devastating breaches. It is important to understand the underlying issues with not keeping dependencies up to date.
A look at how using vulnerable components in Rails might happen and how to avoid and/or remediate it.
An example of how this vulnerability can look in a PHP app and how to remediate it.
A vulnerability that is often overlooked but one that can make a huge difference is not having enough logging and monitoring.
This is an explanation of why logging and monitoring are important.
We look at an example of insufficient logging and monitoring and how to remediate this vulnerability in Rails.
What does it look like when the "Insufficient Logging and Monitoring" vulnerability shows up in a PHP application? We take a look at that here.
We take a look at a popular web security analysis tool for Rails - Brakeman Security Scanner.
Explain how multi-factor authentication uses something you know, something you have, or something you are to prevent breaches, using smartphone authenticator apps and one-time passcodes.
Explore ethical hacking as white hat security research, focusing on vulnerability discovery and responsible disclosure. Learn how ethical hackers test systems to prevent breaches and protect user data.
Explore how physical security complements digital safeguards through access controls, surveillance, intrusion detection, and biometrics, with disaster protection and ethical hacking practices.
Understand data breaches, their causes, and downstream effects, and learn practical strategies such as data retention policy, encryption, intrusion detection, and clear communication plans to mitigate exposure.
Explore cloud security as organizations move to public and hybrid cloud models, focusing on identity and access management, role-based policies, logging, monitoring, and automated defense.
Master a command-line password encryption tool in python that hashes a password with salt, generating a random hash for secure storage.
Build a Python password hashing tool for secure storage and authentication. Learn why plain-text passwords are unsafe, and how salted hashing prevents recovery while still allowing login checks.
Check the python version, create a folder called incorruption, write a python file with a shebang, make it executable, and run it from the command line to print hello.
Learn to build a Python command line tool with argparse and pip, define a version, add a required password argument, parse inputs, and test printing before adding encryption logic.
Evaluate a Python password hashing tool by printing the encrypted password and validating it with a check password function to confirm the encrypted and original passwords match, ensuring secure storage.
Tools we will use to learn python
Working with Strings in Python
In this lecture we learn how to work with numbers in Python
Investigate lists and tuples in Python
In this lecture we will explore dictionaries
We will explore adding conditional logic and make python respond to such logic along with writing functions
Explore how to work with imports and introduce the standard library
We explore basics of object oriented programming in this lecture
Thank you for taking the course!
*** Course updated 10/30/2018 (always kept up-to-date) ***
Learn a practical skill-set in detecting and defeating online threats and become a Cyber Security Specialist - not just in theory - but in practice.
Go from a beginner to advanced in this easy to follow expert course by building security analysis tools using the wildly popular Python programming language, along with analyzing web application security vulnerabilities and solutions using frameworks like Ruby on Rails and php.
There is NO platform dependency in this course - You can use any platform you choose - Windows, MacOS and Linux.
No prior experience required with Python or any of the topics covered in this course - There is a Python crash course included!
This course covers the fundamental building blocks of your required skill set - some key items include:
Vulnerability Analysis
Building and Publishing Security Tools - Dynamic web app security scanner, Password hashing and encrypt tool among many others!
Security Scanning
Phishing Protection
Web Application Vulnerability Mitigation
Password Complexity Analysis
Antivirus Evasion Remediation
Multi-Factor Authentication
Network Traffic Analysis
Cloud Security
Ethical Hacking
Web Reconnaissance
Wireless Access Point Protection
Programming with Python
We also cover the biggest threats in the information technology world today, including:
Botnets
Code Exploits
Sensitive Data Exposure
SQL Injection
Social Engineering
Cross-Site Scripting
Port Scanning
and many more!
You will get lifetime access to over 100 lectures and 11 hours of video lectures plus corresponding text guides for the lectures!
This course comes with a 30 day money back guarantee! If you are not satisfied in any way, you'll get your money back, no questions asked!
So what are you waiting for? Learn Cyber Security, Python for Cyber Security and Web Application Security in a way that will advance your career and increase your knowledge, all in a fun and practical way!