This repository contains two integrated projects:
- Secure Banking API: A RESTful banking API implementation with configurable security controls
- API Security Testing Framework: A companion tool for testing and exploiting API vulnerabilities
A fully-functional banking API that implements industry-standard security controls with the unique ability to selectively enable/disable security vulnerabilities for educational purposes.
-
Complete User Management
- Registration with validation
- Secure login with rate limiting
- Profile management
- Password reset functionality
-
Banking Operations
- Account creation and management
- Balance checking
- Statement generation
- Account linking/delinking
-
Transaction Processing
- Internal transfers
- External transfer simulation
- Transaction history and search
-
Security Controls
- JWT authentication with proper signing
- OAuth2 authorization
- Multi-factor authentication
- Role-based access control
- Input validation
- Rate limiting and request throttling
-
Vulnerability Simulator
- Admin interface for enabling/disabling vulnerabilities
- Configurable SQL injection vulnerabilities
- Authentication bypass options
- Authorization control toggles
- Backend: Node.js/Express or Java Spring Boot
- Database: PostgreSQL/MySQL
- Documentation: OpenAPI/Swagger
- Authentication: JWT, OAuth2
A modular framework for discovering, testing, and exploiting vulnerabilities in web APIs.
-
Discovery & Enumeration
- Passive endpoint collection
- Active endpoint discovery through spidering
- Authentication mechanism detection
- API specification analysis (OpenAPI, GraphQL, WADL)
-
Vulnerability Testing
- OWASP API Top 10 test modules
- Custom payload generation
- Parallel test execution
-
Reporting & Analysis
- Comprehensive vulnerability reports
- Evidence collection
- False positive reduction
- Node.js with modules:
- Axios for HTTP handling
- Commander for CLI interface
- Cheerio and Puppeteer for parsing and crawling
- Node.js (v14+) or Java JDK 11+
- PostgreSQL or MySQL
- npm or Maven
# Clone the repository
git clone https://github.com/yourusername/secure-banking-api
cd secure-banking-api
# Install dependencies
npm install
# OR
mvn install- Create a
.envfile with your database and security settings - Configure your database connection
- Set up JWT keys and other security parameters
npm start
# OR
mvn spring-boot:runcd api-security-framework
npm install
npm start -- --target http://localhost:3000/api- RESTful API Design: "RESTful Web Services" by Leonard Richardson
- Database Security: OWASP Database Security Cheat Sheet
- API Security: "API Security in Action" by Neil Madden
- JWT Security: "JWT Handbook" by Auth0
- Vulnerability Testing: "Web Application Hacker's Handbook"
This project is licensed under the MIT License - see the LICENSE file for details.
- OWASP API Security Project
- Financial API Security best practices