Secure Coding Attack Lab
Hands-On Application Security and PCI DSS Workshop - 2 days
Why this course
Modern applications are assembled from APIs, databases, third-party components, browser code, authentication services and cryptographic libraries. A weakness in any one of these layers can expose payment data or provide a path into connected systems. This intensive workshop concentrates on the practical engineering work required to identify, reproduce and correct the application weaknesses covered by PCI DSS Requirement 6, with technical coverage aligned to current OWASP web and API security risks.
Participants work directly with deliberately vulnerable applications, intercepted requests, source code, API endpoints and security-testing tools. The instructor brings over 30 years of industry experience and delivers the course from a working practitioner’s perspective, using realistic development and troubleshooting workflows rather than academic lectures.
Learning outcomes
Participants will be able to:
- Establish a controlled application-security testing environment
- Trace untrusted input through application code and data flows
- Reproduce SQL, LDAP, XPath, command and object-injection weaknesses
- Identify unsafe buffer, pointer, deserialization and shared-data handling
- Detect weak cryptographic implementations and insecure key handling
- Test APIs, communication channels and client-side functionality
- Identify XSS, CSRF and business-logic abuse cases
- Test authentication, authorisation and access-control enforcement
- Apply secure coding corrections to vulnerable components
- Validate fixes through repeatable negative and regression testing
- Perform focused manual secure-code reviews
- Produce actionable vulnerability findings and remediation evidence
- Integrate practical security checks into development and release workflows
Prerequisites
- Basic software-development or application-support experience
- Familiarity with HTTP requests, responses and web applications
- Basic understanding of APIs and database-backed applications
- Ability to read code in at least one common programming language
- Basic command-line skills
- Administrator access to the supplied lab workstation or virtual machine
- A laptop capable of running the designated lab environment
- No previous penetration-testing experience required
12 modules
01Practical Application-Security Lab Environment3 topics
Isolated Testing Architecture
- Deliberately vulnerable application deployment
- Local application and database services
- Test-user and role configuration
- Application reset and recovery procedures
- Safe handling of test data
Security Testing Toolchain
- Browser developer tools
- Intercepting proxy configuration
- HTTP request repeater
- API client configuration
- Command-line request utilities
- Source-code editor integration
- Database inspection tools
- Static analysis utilities
- Dependency and secret scanning tools
Application Attack-Surface Mapping
- Web routes and application functions
- API endpoints and HTTP methods
- Parameters, headers, cookies and request bodies
- File uploads and data-import functions
- Authentication and session boundaries
- Role and permission boundaries
- Database interaction points
- External service integrations
- Client-side trust boundaries
02Practical Secure-Code Review Workflow3 topics
Source-Code Orientation
- Application entry points
- Controllers and route handlers
- Service-layer functions
- Data-access components
- Authentication middleware
- Authorisation checks
- Cryptographic operations
- Error-handling routines
Untrusted Data Tracing
- Input sources
- Data transformations
- Validation boundaries
- Encoding boundaries
- Security-sensitive sinks
- Cross-component data flow
- Client-controlled state
- Server-controlled state
Review Techniques
- Entry-point analysis
- Source-to-sink tracing
- Security-control verification
- Positive and negative path review
- Abuse-case review
- Diff-based security review
- Tool-assisted code review
- Manual validation of automated findings
03Injection Attack Lab6 topics
SQL Injection
- Query parameter manipulation
- Form-input manipulation
- Authentication query weaknesses
- Numeric and string-context injection
- Error-based behaviour
- Blind response behaviour
- Unsafe dynamic queries
- Parameterised query remediation
- Database-permission restrictions
- Remediation verification
Command Injection
- Operating-system command construction
- Shell metacharacter handling
- Argument injection
- Unsafe process execution
- Command allow-listing
- Safe process APIs
- Privilege reduction
- Corrective testing
LDAP Injection
- Directory-search filters
- Authentication filter manipulation
- Distinguished-name handling
- Escaping and validation
- Safe directory-query construction
- Fix validation
XPath and XML Injection
- XPath query construction
- XML input handling
- Query predicate manipulation
- Safe expression handling
- Parser configuration
- Remediation testing
Object and Expression Injection
- Dynamic property access
- Expression-language evaluation
- Template injection concepts
- Reflection and dynamic invocation
- Unsafe object binding
- Restrictive binding models
- Allow-listed property handling
Fault and Error Injection
- Invalid input types
- Boundary-value manipulation
- Missing and malformed parameters
- Exception-path testing
- Fail-open behaviour
- Information leakage through errors
- Secure error-response handling
04Data and Data-Structure Attack Lab6 topics
Buffer and Boundary Weaknesses
- Fixed-size data structures
- Length and bounds validation
- Integer conversion risks
- Integer overflow and underflow
- Truncation and sign errors
- Safe memory-handling functions
- Boundary-focused testing
Pointer and Reference Handling
- Null-reference conditions
- Stale object references
- Shared mutable state
- Unsafe lifecycle assumptions
- Resource ownership
- Defensive reference validation
Unsafe Deserialization
- Untrusted serialized input
- Type reconstruction
- Polymorphic object handling
- Gadget-chain exposure concepts
- Schema-restricted formats
- Trusted-type allow-listing
- Integrity verification
- Secure replacement patterns
Mass Assignment and Object Binding
- Automatic request-to-object mapping
- Hidden and privileged properties
- Over-posting
- Data-transfer objects
- Explicit property mapping
- Property-level authorisation
- Negative test cases
Shared Data and Concurrency
- Race conditions
- Time-of-check to time-of-use weaknesses
- Duplicate transaction processing
- Shared session state
- Locking and atomicity
- Idempotency controls
- Concurrency test design
File and Data Processing
- File-name manipulation
- Path traversal
- Content-type trust
- File-size and structure validation
- Archive extraction risks
- Temporary-file handling
- Secure storage boundaries
- Malicious data-import scenarios
05Cryptography Usage Attack Lab6 topics
Cryptographic Implementation Review
- Approved algorithm selection
- Deprecated algorithm identification
- Cipher mode selection
- Key-length verification
- Random-number generation
- Initialization-vector handling
- Salt and nonce handling
- Library and provider configuration
Password Protection
- Plaintext password discovery
- Reversible password storage
- Fast-hash weaknesses
- Password-hashing functions
- Salt generation
- Work-factor configuration
- Credential migration strategies
- Password-verification testing
Encryption at Rest
- Sensitive-field identification
- Key separation
- Data-encryption boundaries
- Authenticated encryption
- Integrity protection
- Decryption authorisation
- Secure failure handling
Encryption in Transit
- TLS configuration review
- Certificate validation
- Hostname verification
- Trust-store handling
- Insecure protocol fallback
- Internal service communication
- API transport protection
Key and Secret Management
- Hard-coded credentials
- Embedded API keys
- Source-repository exposure
- Configuration-file secrets
- Environment-based secret injection
- Central secret storage
- Key rotation
- Secret revocation
- Log and diagnostic leakage
- Automated secret scanning
Cryptographic Misuse Testing
- Predictable tokens
- Reused nonces
- Static initialization vectors
- Weak signing implementations
- Missing integrity checks
- Improper certificate validation
- Secure remediation verification
06Business-Logic Attack Lab5 topics
Business-Process Mapping
- Intended transaction sequence
- Required approvals
- State transitions
- Trust assumptions
- Monetary and quantity boundaries
- User and administrator functions
- Server-side enforcement points
Workflow Manipulation
- Step skipping
- Request replay
- Out-of-order operations
- Duplicate submissions
- State-parameter tampering
- Transaction rollback abuse
- Partial-completion abuse
- Server-side state validation
Parameter and Value Manipulation
- Price manipulation
- Quantity manipulation
- Discount and promotion abuse
- Currency and decimal handling
- Negative and extreme values
- Hidden-field manipulation
- Server-side value calculation
- Boundary and invariant enforcement
Function and Feature Abuse
- Undocumented functionality
- Administrative function exposure
- Feature-flag manipulation
- Debug-function exposure
- Bulk-operation misuse
- Export-function misuse
- Account-recovery abuse
- Rate and quota bypass
Race and Replay Scenarios
- Concurrent request submission
- Duplicate payment operations
- One-time action reuse
- Token replay
- Idempotency-key handling
- Transaction locking
- Replay-resistant design
07API Security Attack Lab6 topics
API Discovery and Inspection
- API documentation review
- Endpoint enumeration
- HTTP method testing
- Request-body inspection
- Authentication-token handling
- Versioned endpoint discovery
- Hidden and deprecated endpoints
API Object-Level Authorisation
- Object-identifier manipulation
- Horizontal access testing
- Cross-account data access
- Record update and deletion testing
- Server-side ownership validation
- Deny-by-default access
- Negative authorisation tests
API Function-Level Authorisation
- User-to-administrator function access
- HTTP method switching
- Restricted route exposure
- Role-check placement
- Centralised policy enforcement
- Privilege regression testing
API Property-Level Authorisation
- Sensitive property exposure
- Excessive data response
- Privileged property modification
- Request-field allow-listing
- Response-field filtering
- Role-specific data models
API Resource Protection
- Pagination limits
- Request-size limits
- Query-complexity limits
- Rate limiting
- Batch-request controls
- Expensive operation protection
- Timeout and cancellation handling
API Inventory and Lifecycle
- Endpoint ownership
- Version inventory
- Deprecated API handling
- Test and staging endpoint exposure
- Documentation consistency
- Route retirement
- Security regression coverage
08Communication Protocol and Channel Security3 topics
HTTP Security Behaviour
- Method restrictions
- Header trust
- Proxy-header handling
- Host-header manipulation
- Content-type enforcement
- Redirect handling
- Caching controls
Service-to-Service Communication
- Service identity
- Mutual authentication
- Certificate trust
- Token audience and scope
- Message integrity
- Replay protection
- Timeout and retry behaviour
Real-Time and Asynchronous Channels
- WebSocket authentication
- Message authorisation
- Queue and topic permissions
- Event payload validation
- Subscription isolation
- Message replay
- Dead-letter data exposure
09Client-Side Security Attack Lab5 topics
Browser Trust Boundaries
- Client-side validation bypass
- Hidden-field manipulation
- Local storage exposure
- Browser token storage
- JavaScript-accessible secrets
- Server-side validation requirements
Cross-Site Scripting
- Reflected XSS
- Stored XSS
- DOM-based XSS
- HTML-context injection
- Attribute-context injection
- JavaScript-context injection
- Unsafe DOM operations
- Context-aware output encoding
- HTML sanitisation
- Content Security Policy
- Remediation validation
Cross-Site Request Forgery
- State-changing request discovery
- Cookie-based authentication
- Forged form submissions
- API request forgery
- Anti-CSRF tokens
- SameSite cookie controls
- Origin and referer validation
- Re-authentication for sensitive actions
- Fix verification
Client-Side Functional Abuse
- Disabled-control bypass
- Front-end role-check bypass
- JavaScript function invocation
- Client-calculated values
- Exposed configuration
- Source-map exposure
- Server-side control enforcement
Browser Communication Controls
- Cross-origin resource sharing
- Trusted-origin configuration
- Credentialed cross-origin requests
- Frame embedding
- Clickjacking protection
- Security-header validation
10Authentication Attack Lab4 topics
Credential Handling
- Hard-coded credentials
- Default credentials
- Credential disclosure
- Username enumeration
- Password reset weaknesses
- Credential transport
- Secure credential storage
Authentication Workflow Testing
- Login request manipulation
- Multi-factor workflow bypass
- Recovery-flow abuse
- Remember-me functionality
- Account-lockout behaviour
- Rate limiting
- Re-authentication controls
Session Management
- Session-token predictability
- Session fixation
- Token reuse
- Logout invalidation
- Idle and absolute timeout
- Concurrent session handling
- Cookie security attributes
- Session rotation
- Server-side revocation
Token-Based Authentication
- Token structure review
- Signature validation
- Algorithm enforcement
- Issuer and audience validation
- Expiration handling
- Scope enforcement
- Refresh-token protection
- Token revocation
11Access-Control Attack Lab6 topics
Access-Control Model Mapping
- Users, roles and permissions
- Resources and operations
- Ownership boundaries
- Administrative boundaries
- Tenant boundaries
- Policy decision points
- Policy enforcement points
Horizontal Privilege Escalation
- User-to-user data access
- Identifier substitution
- Cross-account actions
- Resource ownership checks
- Tenant-isolation testing
Vertical Privilege Escalation
- User-to-administrator access
- Restricted function invocation
- Role-parameter manipulation
- Privileged route access
- Server-side permission enforcement
Direct Object Reference Testing
- Sequential identifiers
- Predictable identifiers
- Identifier discovery
- Read, update and delete operations
- Indirect reference patterns
- Per-object authorisation
Enforcement Weaknesses
- Missing middleware
- Inconsistent endpoint checks
- Client-side-only restrictions
- Fail-open permission checks
- Cached authorisation decisions
- Default-allow policies
- Deny-by-default remediation
Access-Control Regression Testing
- Role-permission test matrix
- Positive access tests
- Negative access tests
- Cross-role tests
- Cross-tenant tests
- Automated authorisation checks
12Secure Remediation Workshop3 topics
Vulnerability Triage
- Reproduction reliability
- Attack preconditions
- Data and function exposure
- Exploitability
- Business impact
- Root-cause classification
- Remediation priority
Secure Coding Corrections
- Input validation
- Parameterised operations
- Context-aware output encoding
- Explicit object binding
- Centralised authorisation
- Secure cryptographic APIs
- Safe error handling
- Least-privilege execution
- Secure default configuration
Fix Validation
- Original attack replay
- Negative testing
- Boundary testing
- Alternate payload testing
- Role-based regression testing
- API regression testing
- Static analysis reruns
- Dependency scan reruns
- Evidence capture
This training outline is provided as a proposed instructional framework and may be refined, reordered, expanded or otherwise amended by the trainer to accommodate participant experience, technical constraints, organisational priorities, lab progress and emerging industry practices. Such adjustments may be made at the trainer’s professional discretion without prior notice, provided that the overall learning objectives and intended practical character of the programme are preserved.
A programme built around your team.
Share your training goals and requirements.