• Post category:StudyBullet-3
  • Reading time:14 mins read


Web Application Security and Ethical Hacking – Master Injection attacks with NoSQL, LDAP, LOG, CSV and SQL injection

What you will learn

Ethical hacking with injection attacks

Web security

Secure coding

SQL Injection with PostgreSQL

NoSQL Injection with MongoDB

LDAP Injection with OpenLDAP

LOG Injection

CSV Injection

Spring security Form login authentication

Spring Data JPA

Spring Data MongoDB


Get Instant Notification of New Courses on our Telegram channel.


Spring LDAP

Spring Validation

Description

Are you a Java web developer and want to write secure code? Do you want to learn Ethical hacking and Web application security?  With this hands-on injection attacks course you will start learning web security using one of the top vulnerabilities of OWASP Top 10 list. Injection attack is still listed in top 3 attacks in the OWASP Top 10 and it is important to prevent against injection attacks to develop secure web applications.

As part of the blue and red security teams,I have a practical knowledge and I am here to help you learn the injection vulnerability in detail.

In this course, you will focus on different type of injection attacks;

  • SQL Injection
  • NoSQL injection
  • LDAP injection
  • LOG injection
  • CSV injection

Ethical hacking and Web application security are the two important subjects of Cyber Security field and having practical knowledge about Injections will enable you to better understand the security concepts and make a quick start.

In this course I will follow defense-in-depth principle and apply multiple solutions to each vulnerability to secure the web application in multiple layers.

I will follow a hands-on approach. You will not only learn how to exploit an application using different kind of injection attacks, but also develop the vulnerable applications from scratch in which you will have a common web login module with spring security form login authentication, and separate applications for SQL, NoSQL and LDAP injections.

The applications will be developed using Java and Spring boot along with the most used data sources, such as PostgreSQL for SQL Injection, MongoDB for NoSQL injection and OpenLDAP for LDAP injection.

In each section there will be;

  • Development of the vulnerable web application using Java, Spring boot and Spring security
  • Hacking of the application with various attack payloads and with Ethical hacking examples
  • Protection steps and the implementations to prevent injection attacks

At the end of the course you will understand the different type of injection vulnerabilities, perform injection attacks against the vulnerable web applications you have developed, and learn how to protect your applications against the injection attacks using various techniques such as,

  • Validation and sanitisation using white list approach
  • Parametrised queries with prepared statements
  • Escaping output
  • Using secure trusted libraries
  • Error handling and logging
  • General coding practices

If you want to skip the development and only perform the hacking of applications, you can jump into the injection lectures and download the source code provided in the resources section of that lecture. Be aware that you will still need to install PostgreSQL for SQL Injection, MongoDB for NoSQL injection and OpenLDAP docker container for LDAP injection. You can see how to install and configure these data sources in the beginning lectures of each injection section.

English
language

Content

Introduction
Why to learn secure coding principles?
Developing a secure application
Secure coding principles
Structure of the course
Setting up the environment
Creating the common web login module
Adding the base pom.xml with basic dependencies
Creating the common login module with maven dependencies and thymeleaf templates
Creating the package structure and adding interfaces
Adding authentication provider and user details to customise form authentication
Adding security configuration for form login authentication
Spring security form login authentication
Adding API endpoints
Adding Custom Error Controller
SQL Injection
Introduction to Injections
Explaining SQL injection
Preventing SQL injection attacks
Creating SQL Injection application with dependencies and configuration
Adding SQL init files, packages and validator implementation
Implementing JPA entities
Adding JPA repository interfaces
JPA repository interfaces
Implementing JPA repository
Custom JPA repository implementation
Adding SQL injection user detail service implementation
Spring security
Implementing user service interface
Exploiting SQL Injection application using login form with Http Post – Part 1
Exploiting SQL Injection application using login form with Http Post – Part 2
SQL injection payload example 1
SQL injection payload example 2
Exploiting SQL Injection application using user info with Http Get – Part 1
Exploiting SQL Injection application using user info with Http Get – Part 2
Exploiting SQL Injection application using user info with Http Get – Part 3
Returning PostgreSQL specific information using SQL injection
Extending Http Get vulnerability to read system files – Part 1
Reading file content in PostgreSQL
Extending Http Get vulnerability to read system files – Part 2
Preventing Sql injection: Validation and Sanitisation
Input validation
Preventing Sql injection: Using Prepared statements
Preventing SQL injection
Preventing Sql injection: Summary
A final attack using a vulnerable SQL function
NoSQL Injection
Explaining NoSQL injection
NoSQL Injection
Adding NoSQL injection module with dependencies using MongoDB
Adding configuration and init data file
Adding packages and validator implementation
Implementing mongoDB configuration
Initializing mongoDB documents
Adding repository interfaces
Implementing repository and adding service layer classes
Exploiting NoSQL injection application: Using login form
NoSQL injection using where function in mongoDB with javascript
Exploiting NoSQL injection: Using user info endpoint with Regex
Using MongoDB Regex
Preventing NoSQL injection: Validation and sanitisation
Preventing NoSQL injection: Using criteria Api
Preventing NoSQL injection: Using JPA repository
Spring data Template vs Repository
LDAP Injection
Explaining LDAP injection
Adding LDAP injection module with LDAP schema file
Adding dependencies,configuration and startup file to initialisatize LDAP schema
Creating packages and adding Spring boot starter class to initialise LDAP data
Creating entity and validation implementations, and repository interfaces
Adding LDAP helper class for LDAP operations
Completing the user repository implementation
Completing the user role repository and service implementation
Exploiting LDAP injection – Part 1
LDAP Query
Exploiting LDAP injection – Part 2
Preventing LDAP injection: Validation and sanitisation
Preventing LDAP injection: Using secure libraries
Spring LDAP library
LOG Injection
Explaining LOG injection
Adding a new endpoint to use in LOG injection attacks
Adding log data endpoint and thymeleaf template to view logs by admin user
Adding Logback configuration
Creating the attacker application
Exploiting LOG injection with Line Feed
Exploiting LOG injection with Carriage Return
LOG injection output
Exploiting LOG injection: XSS attack – Part 1
Exploiting LOG injection: XSS attack – Part 2
XSS attack with LOG injection
Preventing LOG injection: Validation and using trusted libraries protections
Preventing LOG injection: XSS attacks
Preventing LOG injection
CSV Injection
Explaining CSV injection
Adding new interfaces
Adding user detail Api methods for CSV injection
Adding export user details Api method for CSV injection
Adding data access implementation classes
Implementing user detail service
Implementing excel generator service
A new endpoint on attacker web site
Exploiting CSV injection using excel formula
CSV/Formula Injection
Preventing CSV injection – Part 1
Spring custom validation using validation annotation
Preventing CSV injection – Part 2
Using Spring validation annotation