Advanced Modular Security Scanner for Discourse Forums
A comprehensive, modular security assessment tool specifically designed for Discourse forum platforms. Built by security professionals, for security professionals.
- 50+ Specialized Modules - Complete modular architecture
- Advanced Rate Limiting Tests - Including bypass techniques
- Comprehensive Security Testing - Injection, file upload, authentication
- Performance Monitoring - Load testing and response analysis
- Health Checking - System health and uptime monitoring
- Multiple Report Formats - JSON, HTML, CSV, XML
- External Integrations - Slack, Webhooks, CI/CD
- Advanced Configuration - YAML/JSON configuration management
- Rate Limiting Analysis - Login, API, bypass techniques
- Session Security - Cookie security, CSRF protection
- Category Security - Permission testing, access controls
- Badge System - Badge enumeration and security
- Trust Levels - Trust level analysis and exploitation
- Admin Panel - Admin interface security testing
- Injection Testing - SQL, XSS, Command injection
- File Upload Security - Upload bypass techniques
- Authentication Testing - Weak credentials, brute force protection
- Session Management - Session fixation, concurrent sessions
- Load Testing - Stress testing with configurable parameters
- Response Analysis - Performance metrics and optimization
- Health Checking - Comprehensive system health assessment
- Uptime Monitoring - Availability tracking over time
- JSON Reports - Machine-readable structured data
- HTML Reports - Professional styled reports with charts
- CSV Export - Spreadsheet-compatible vulnerability data
- XML Format - Structured markup for integrations
- Slack Notifications - Real-time alerts to Slack channels
- Webhook Support - Custom webhook integrations
- CI/CD Pipeline - Automated security testing
- API Endpoints - RESTful API for external tools
git clone https://github.com/ibrahmsql/discoursemap.git
cd discoursemap
pip install -r requirements.txtdocker build -t discoursemap:2.1.0 .
docker run --rm -it discoursemap:2.1.0make install-dev
make testfrom discoursemap.core import DiscourseScanner
# Initialize scanner
scanner = DiscourseScanner('https://forum.example.com')
# Run comprehensive scan
results = scanner.scan()
# Generate reports
from discoursemap.reporting import HTMLReporter
reporter = HTMLReporter()
report = reporter.generate_report(results, 'https://forum.example.com')
reporter.save_report(report, 'security_report.html')from discoursemap.config import ScannerConfig
from discoursemap.core.scanner import BaseScanner
# Load configuration
config = ScannerConfig('config.yaml')
config.enable_module('rate_limiting')
config.set_authentication('username', 'password')
# Run configured scan
scanner = BaseScanner(config)
results = scanner.comprehensive_scan()from discoursemap.discourse_specific.rate_limiting import RateLimitModule
# Test rate limiting
rate_tester = RateLimitModule('https://forum.example.com', verbose=True)
results = rate_tester.scan()
print(f"Rate limiting vulnerabilities: {len(results['vulnerabilities'])}")from discoursemap.performance import LoadTester, ResponseAnalyzer
# Performance analysis
analyzer = ResponseAnalyzer('https://forum.example.com')
perf_results = analyzer.analyze_endpoint_performance()
# Load testing (be careful with real sites)
load_tester = LoadTester('https://forum.example.com')
load_results = load_tester.run_load_test(concurrent_users=5, duration=30)from discoursemap.security.testing import InjectionTester, AuthenticationTester
# Injection testing
injection_tester = InjectionTester('https://forum.example.com')
injection_results = injection_tester.test_all_injections()
# Authentication testing
auth_tester = AuthenticationTester('https://forum.example.com')
auth_results = auth_tester.test_all_auth_vulnerabilities()Run the interactive demo to see all features:
python demo.pyTest against a real Discourse site (ethically):
python real_test.pyDiscourseMap v2.1 features a completely modular architecture:
discoursemap/
βββ core/ # Core scanning engine
βββ discourse_specific/ # Discourse-specific modules
β βββ rate_limiting/ # Rate limiting tests
β βββ session/ # Session security
β βββ categories/ # Category security
β βββ badges/ # Badge system tests
β βββ trust_levels/ # Trust level analysis
βββ security/ # General security testing
β βββ testing/ # Injection, auth, file upload
βββ performance/ # Performance testing
βββ monitoring/ # Health and uptime monitoring
βββ reporting/ # Report generation
βββ integrations/ # External integrations
βββ utilities/ # Utility functions
βββ config/ # Configuration management
See MODULAR_ARCHITECTURE.md for detailed documentation.
Run the test suite:
# Unit tests
python -m pytest tests/ -v
# Import test
python -c "import discoursemap; print('β Import successful')"
# Full test suite
make test# Build image
make docker-build
# Run container
make docker-run
# Docker Compose (with Redis and PostgreSQL)
docker-compose up -ddocker pull ibrahimsql/discoursemap:latest
docker run --rm -it ibrahimsql/discoursemap:latest- Modular Architecture Guide - Detailed architecture documentation
- API Reference - Complete API documentation
- Configuration Guide - Configuration options
- Integration Guide - External integrations
We welcome contributions! Please see our Contributing Guide.
git clone https://github.com/ibrahmsql/discoursemap.git
cd discoursemap
make dev-setupmake lint # Run linting
make format # Format code
make security-check # Security checks
make check-all # All checksThis project is licensed under the MIT License - see the LICENSE file for details.
IMPORTANT: This tool is designed for authorized security testing only. Always ensure you have proper authorization before testing any Discourse forum. Respect rate limits, terms of service, and applicable laws.
If you discover vulnerabilities using DiscourseMap, please follow responsible disclosure practices and report them to the appropriate parties.
- Discourse Team - For creating an amazing forum platform
- Security Community - For continuous feedback and contributions
- Open Source Contributors - For making this project better
- GitHub Issues: Report bugs and request features
- Discussions: Community discussions
- Email: [email protected]
If you find DiscourseMap useful, please consider giving it a star! β
Made with β€οΈ by ibrahimsql
Securing Discourse forums, one scan at a time.