Skip to content

User Workflows

Valentin MAUREL edited this page May 24, 2025 · 1 revision

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]
Loading

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]
Loading

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]
Loading

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]
Loading

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]
Loading

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]
Loading

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]
Loading

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]
Loading

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]
Loading

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
Loading

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
Loading

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
Loading

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
Loading

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
Loading

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]
Loading

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]
Loading

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]
Loading

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]
Loading

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

Clone this wiki locally