A self-hosted Dynamic Application Security Testing (DAST) platform with AI-assisted scanning, real-time streaming, automated scheduling, and multi-tool orchestration β all through a single dark-themed UI.
| Dashboard | Scan Launch |
|---|---|
![]() |
![]() |
| Findings | Burp Suite Pro Scan |
|---|---|
![]() |
![]() |
- π€ AI-Assisted Scanning β LLM-powered payload generation, finding triage, attack chain detection (OpenAI / AWS Bedrock / Ollama)
- π‘ Live Scan Streaming β real-time progress and logs via Server-Sent Events (SSE)
- π 8 Integrated Security Tools β Nuclei, FFUF, Katana, GAU, Kiterunner, SQLMap, XSStrike, Burp Suite Pro
- π― 4 Scan Types β Recon, API Scan, Vulnerability Scan, Burp Suite Pro (via REST API)
- π·οΈ Burp Suite Pro Integration β trigger and retrieve full DAST scans via Burp's REST API
- β‘ 3 Intensity Levels β Quick, Balanced, Deep
- π 6 Auth Types β Form, JWT, Basic, Bearer, Cookie, OAuth2
- β° Scan Scheduling β cron-based recurring scans with Celery Beat
- π Webhook Notifications β Slack, Teams, Discord, generic HTTP
- π Report Export β JSON, HTML, PDF
- π Scan Comparison β track new vs fixed findings between scans
- π― Scope Enforcement β whitelist/blacklist paths and domains
- π API Key Auth β CI/CD pipeline integration
- πΎ Incremental Saves β no data loss on worker crash
| Layer | Technology |
|---|---|
| Backend | Python 3.11, FastAPI |
| Task Queue | Celery 5 + Redis |
| Scheduler | Celery Beat |
| Database | PostgreSQL 16 |
| Frontend | React 19, Vite |
| Real-time | Server-Sent Events (SSE) |
| AI Engine | OpenAI / AWS Bedrock / Ollama |
| Containers | Docker Compose |
| Tool | Purpose |
|---|---|
| Nuclei | CVE scanning, misconfigurations, exposures |
| FFUF | Directory/path fuzzing |
| Katana | JS-aware deep crawling |
| GAU | Historical URL discovery |
| Kiterunner | 1.45M real API route brute-force |
| SQLMap | SQL injection confirmation |
| XSStrike | XSS confirmation |
| Burp Suite Pro | Full DAST scan triggered & retrieved via Burp REST API |
| Capability | Description |
|---|---|
| Smart Payloads | Technology-aware payload generation with WAF bypass |
| Finding Triage | Confidence scoring + false positive detection |
| Attack Chains | Combine low-severity findings into high-impact exploits |
| Response Analysis | Detect subtle vulnerability indicators |
| Remediation | Context-specific fix guidance with code examples |
| Strategy | Optimal scan configuration recommendations |
- Docker & Docker Compose
- Node.js 18+ (for frontend)
- (Optional) Burp Suite Pro with REST API enabled (for Burp scan type)
- (Optional) OpenAI API key or Ollama for AI features
git clone https://github.com/Mr-root-2/DAST-Platform.git
cd DAST-Platform
cp .env.example .env
# Edit .env β set SECRET_KEY, POSTGRES_PASSWORD, ADMIN_DEFAULT_PASSWORDdocker compose up -d --build| Service | URL |
|---|---|
| Frontend UI | http://localhost:3000 |
| Backend API | http://localhost:8000 |
| API Docs (Swagger) | http://localhost:8000/docs |
| Celery Monitor | http://localhost:5555 |
cd frontend
npm install
npm run devFrontend runs on http://localhost:3000
Default credentials (set via ADMIN_DEFAULT_PASSWORD in .env):
- Username:
admin - Password: (value you set in
.env)
Enable the REST API in Burp Suite Pro under User options β REST API, then set in .env:
BURP_API_URL=http://localhost:1337
BURP_API_KEY=your-burp-api-key-hereOnce configured, select Burp Suite Pro as the scan type when launching a scan.
# OpenAI
AI_PROVIDER=openai
AI_MODEL=gpt-4o-mini
AI_API_KEY=sk-your-key-here
# AWS Bedrock
AI_PROVIDER=bedrock
BEDROCK_MODEL_ID=anthropic.claude-3-5-sonnet-20241022-v2:0
# Local (free, no API key)
AI_PROVIDER=ollama
AI_MODEL=llama3
AI_OLLAMA_URL=http://localhost:11434dast-platform/
βββ backend/
β βββ ai/ # AI engine (OpenAI / Bedrock / Ollama)
β βββ api/ # FastAPI routers
β βββ core/ # Config, database, seeding
β βββ models/ # SQLAlchemy models
β βββ scanner/
β β βββ checks/ # Active checks (CORS, headers, IDOR, SQLi, XSS...)
β β βββ integrations/ # Tool wrappers (Nuclei, FFUF, SQLMap...)
β β βββ scan_types/ # Scan orchestration (recon, api, vuln)
β β βββ severity.py # Evidence-based severity calculator
β βββ reporter/ # JSON / HTML / PDF report generation
β βββ services/ # Scheduler, webhooks, compliance
β βββ worker/ # Celery app + tasks + beat schedule
βββ frontend/ # React 19 + Vite SPA
β βββ src/
β βββ pages/ # Dashboard, Scans, Findings, Reports...
β βββ components/ # Reusable UI components
βββ deploy/
β βββ helm/ # Kubernetes Helm chart
βββ docker-compose.yml
βββ docker-compose.prod.yml
βββ Dockerfile
βββ requirements.txt
| Method | Path | Description |
|---|---|---|
| POST | /api/auth/register |
Register new user |
| POST | /api/auth/login |
Login, get JWT |
| Method | Path | Description |
|---|---|---|
| GET/POST | /api/targets/ |
Manage targets |
| POST | /api/scans/ |
Launch scan |
| GET | /api/scans/{id}/stream |
SSE real-time progress |
| GET | /api/scans/{id}/findings |
Get findings |
| POST | /api/reports/generate |
Generate report |
| Method | Path | Description |
|---|---|---|
| GET/POST | /api/schedules |
Scan scheduling |
| GET/POST | /api/webhooks |
Webhook notifications |
| GET/POST | /api/api-keys |
API key management |
| GET/POST | /api/templates |
Scan templates |
| GET | /api/scans/{id}/compare/{other_id} |
Diff two scans |
| POST | /api/ai/analyze |
AI analysis on findings |
| GET | /health/detailed |
Full health check |
Full interactive docs at http://localhost:8000/docs
SECRET_KEY= # JWT signing key (required)
ADMIN_DEFAULT_PASSWORD= # Initial admin password (required)
POSTGRES_PASSWORD= # Database password (required)
DATABASE_URL= # PostgreSQL connection string
REDIS_URL= # Redis connection string
AI_PROVIDER= # none | openai | bedrock | ollama
BURP_API_URL= # Burp Suite Pro REST API (optional)
SCHEDULER_ENABLED= # Enable cron-based scan scheduling
CORS_ORIGINS= # Allowed frontend originsSee .env.example for the full list.
This tool is intended for authorized security testing only. Only run scans against targets you own or have explicit written permission to test. Unauthorized scanning is illegal.
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.
Built with β€οΈ for the security community



