User Workflows - capstone-hermes/hermes-fullstack GitHub Wiki

User Workflows

🚨 Educational Purpose Only

This application contains intentional security vulnerabilities for educational purposes. Never deploy in production environments.

Student Learning Workflow

1. Initial Setup and Exploration

graph TD
    A[Access Application] --> B[Register Account]
    B --> C[Login Successfully]
    C --> D[Explore Interface]
    D --> E[Read Security Info]
    E --> F[Identify Vulnerabilities]

Steps:

  1. Navigate to application homepage
  2. Create a test user account
  3. Login with created credentials
  4. Browse available features
  5. Review OWASP ASVS vulnerability mapping
  6. Begin systematic vulnerability assessment

2. Vulnerability Discovery Workflow

graph TD
    A[Choose Vulnerability Category] --> B[Read Exploitation Guide]
    B --> C[Set Up Testing Tools]
    C --> D[Perform Manual Testing]
    D --> E[Automated Scanning]
    E --> F[Document Findings]
    F --> G[Verify Exploitation]

Process:

  1. Select vulnerability type from sidebar
  2. Review relevant exploitation guide
  3. Configure testing tools (Burp Suite, SQLMap, etc.)
  4. Perform manual vulnerability testing
  5. Run automated security scans
  6. Document discovered vulnerabilities
  7. Verify successful exploitation

3. Learning Assessment Workflow

graph TD
    A[Complete Exploitation] --> B[Understand Impact]
    B --> C[Research Remediation]
    C --> D[Practice Secure Coding]
    D --> E[Verify Understanding]

Instructor Teaching Workflow

1. Classroom Demonstration

graph TD
    A[Launch Application] --> B[Demonstrate Vulnerability]
    B --> C[Show Exploitation]
    C --> D[Explain Impact]
    D --> E[Discuss Remediation]
    E --> F[Student Practice]

Teaching Steps:

  1. Deploy application in classroom environment
  2. Demonstrate specific vulnerability live
  3. Show real-time exploitation techniques
  4. Explain business/security impact
  5. Discuss proper remediation methods
  6. Guide student hands-on practice

2. Assignment Creation

graph TD
    A[Select Learning Objectives] --> B[Choose Vulnerabilities]
    B --> C[Create Test Scenarios]
    C --> D[Prepare Assessment Criteria]
    D --> E[Distribute to Students]

Penetration Tester Workflow

1. Systematic Testing Approach

graph TD
    A[Information Gathering] --> B[Vulnerability Scanning]
    B --> C[Manual Testing]
    C --> D[Exploitation]
    D --> E[Post-Exploitation]
    E --> F[Reporting]

Testing Phases:

  1. Reconnaissance: Gather application information
  2. Scanning: Automated vulnerability discovery
  3. Enumeration: Manual feature exploration
  4. Exploitation: Successful vulnerability exploitation
  5. Post-Exploitation: Assess impact and persistence
  6. Documentation: Create comprehensive report

2. Tool Integration Workflow

graph TD
    A[Configure Burp Suite] --> B[Set Up SQLMap]
    B --> C[Prepare XSSHunter]
    C --> D[Configure Nmap]
    D --> E[Set Up Reporting Tools]
    E --> F[Begin Testing]

Developer Security Training Workflow

1. Code Review Process

graph TD
    A[Examine Source Code] --> B[Identify Vulnerabilities]
    B --> C[Understand Root Cause]
    C --> D[Learn Secure Patterns]
    D --> E[Practice Implementation]

Review Steps:

  1. Analyze vulnerable code sections
  2. Identify security weaknesses
  3. Understand why vulnerabilities exist
  4. Learn secure coding alternatives
  5. Practice implementing fixes

2. Secure Development Lifecycle

graph TD
    A[Threat Modeling] --> B[Secure Design]
    B --> C[Secure Implementation]
    C --> D[Security Testing]
    D --> E[Security Review]
    E --> F[Deployment Hardening]

User Authentication Workflow

Normal User Flow

sequenceDiagram
    participant U as User
    participant F as Frontend
    participant B as Backend
    participant D as Database
    
    U->>F: Visit registration page
    F->>U: Display registration form
    U->>F: Submit credentials
    F->>B: POST /auth/register
    B->>D: INSERT user data
    D->>B: Confirm insertion
    B->>F: Return success
    F->>U: Redirect to login

Vulnerable Authentication Flow

sequenceDiagram
    participant A as Attacker
    participant F as Frontend
    participant B as Backend
    participant D as Database
    
    A->>F: Visit login page
    F->>A: Display login form
    A->>F: Submit SQL injection payload
    F->>B: POST /auth/login
    B->>D: Execute vulnerable query
    D->>B: Return admin user data
    B->>F: Return JWT token
    F->>A: Successful admin login

File Upload Workflow

Normal Upload Flow

sequenceDiagram
    participant U as User
    participant F as Frontend
    participant B as Backend
    participant S as Storage
    
    U->>F: Select file
    F->>U: Show upload form
    U->>F: Submit file
    F->>B: POST /file/upload
    B->>S: Store file
    S->>B: Confirm storage
    B->>F: Return file URL
    F->>U: Display success

Malicious Upload Flow

sequenceDiagram
    participant A as Attacker
    participant F as Frontend
    participant B as Backend
    participant S as Storage
    participant OS as Operating System
    
    A->>F: Select malicious file
    F->>A: Show upload form
    A->>F: Submit PHP shell
    F->>B: POST /file/upload
    B->>S: Store malicious file
    A->>B: GET /file/execute
    B->>OS: Execute uploaded file
    OS->>B: Return command output
    B->>A: System compromise

Cross-Site Scripting Workflow

Stored XSS Attack Flow

sequenceDiagram
    participant A as Attacker
    participant F as Frontend
    participant B as Backend
    participant D as Database
    participant V as Victim
    
    A->>F: Create malicious post
    F->>B: POST /posts
    B->>D: Store XSS payload
    V->>F: View posts page
    F->>B: GET /posts
    B->>D: Retrieve posts
    D->>B: Return XSS payload
    B->>F: Send unescaped content
    F->>V: Execute malicious script

SQL Injection Workflow

Automated SQLi Discovery

graph TD
    A[Identify Input Fields] --> B[Configure SQLMap]
    B --> C[Test Login Endpoint]
    C --> D[Discover Injection Point]
    D --> E[Extract Database Schema]
    E --> F[Dump User Data]
    F --> G[Escalate Privileges]

SQLMap Commands:

# Initial discovery
sqlmap -u "http://localhost:3000/auth/login" --data="email=test&password=test" --batch

# Database enumeration
sqlmap -u "http://localhost:3000/auth/login" --data="email=test&password=test" --dbs

# Table dumping
sqlmap -u "http://localhost:3000/auth/login" --data="email=test&password=test" -D vulnerable_app --tables

# Data extraction
sqlmap -u "http://localhost:3000/auth/login" --data="email=test&password=test" -D vulnerable_app -T user --dump

Post-Exploitation Workflow

Impact Assessment Process

graph TD
    A[Successful Exploitation] --> B[Assess Data Access]
    B --> C[Test Privilege Escalation]
    C --> D[Evaluate System Impact]
    D --> E[Document Business Risk]
    E --> F[Recommend Remediation]

Assessment Areas:

  1. Data Confidentiality: What sensitive data is accessible?
  2. Data Integrity: Can data be modified or deleted?
  3. System Availability: Can services be disrupted?
  4. Privilege Escalation: Can higher privileges be obtained?
  5. Lateral Movement: Can other systems be accessed?

Remediation Learning Workflow

Secure Implementation Practice

graph TD
    A[Identify Vulnerability] --> B[Research Secure Patterns]
    B --> C[Implement Fix]
    C --> D[Test Security Improvement]
    D --> E[Verify Remediation]
    E --> F[Document Best Practices]

Example Fix Implementation:

// Vulnerable code
const user = await this.userRepository.query(
  `SELECT * FROM user WHERE email = '${email}' AND password = '${password}'`
);

// Secure implementation
const user = await this.userRepository.findOne({
  where: { email, password: hashedPassword }
});

Continuous Learning Workflow

Skill Development Path

graph TD
    A[Basic Vulnerability Discovery] --> B[Manual Exploitation]
    B --> C[Tool Automation]
    C --> D[Advanced Techniques]
    D --> E[Remediation Knowledge]
    E --> F[Teaching Others]

Learning Progression:

  1. Beginner: Identify common vulnerabilities
  2. Intermediate: Perform manual exploitation
  3. Advanced: Automate testing with tools
  4. Expert: Develop custom exploits
  5. Master: Understand remediation and teach others

Next Steps