gitex2026/aasd/docs/STATE_OF_DEVELOPMENT.md
administrator 4f533c6c8f feat: complete AASD booth application rewrite
- Replace email input with domain input (no data collection)
- Interactive subdomain selection flow with live progress
- IP fast-path (skip discovery for IP addresses)
- HTTPS/TLS-based subdomain probing (5000-name SecLists wordlist)
- Wildcard DNS detection with TLS cert validation filter
- Rename reports: visitor_{token}.html and consultant_{token}.html
- Remove domain-scan dependency (ineffective without API keys)
- Fix race condition in discovery vs scan phase
- Rearrange repo structure: AttackSurface/ -> aasd/src/
- Add live probe progress counter in frontend
- Admin dashboard shows consultant report only when file exists
2026-04-28 12:45:45 +00:00

4.3 KiB

State of Development

Version: 2026-04.1 | Last Updated: 2026-04-28

Booth Flow

Visitor enters: example.com
         ↓
POST /start → ProbeSubdomains() checks 5000 names via HTTPS/TLS
         ↓
Live progress: "Checking 142 / 5000 subdomains…"
         ↓
Discovered subdomains shown — visitor picks one
         ↓
GoTestWAF scans selected subdomain against Wallarm endpoint
         ↓
AI generates resilience narrative (or fallback)
         ↓
Visitor sees report with QR code; consultant accesses full GoTestWAF output

Key Features

Feature Status Details
Domain Input Complete Replaced email — no data-collection appearance
Subdomain Discovery Complete 5000-name SecLists wordlist, HTTPS/TLS probe
Wildcard DNS Detection Complete Filters catch-all via TLS cert validation
Live Probe Progress Complete Frontend shows "checked N / total" with pulse
Interactive Selection Complete User picks which subdomain to scan
IP Fast-Path Complete Skips discovery, scans IP directly
GoTestWAF Integration Complete 120s timeout, consultant_{token}.html output
AI Narrative Complete DeepSeek API (fallback HTML when unavailable)
Admin Dashboard Complete Basic auth, per-scan consultant report links
Report Serving Complete visitor_{token}.html + consultant_{token}.html
QR Code Complete Booth scanning workflow
Graceful Shutdown Complete SIGINT/SIGTERM handling
Booth Network Complete Binds to 0.0.0.0:8080

Technical Specifications

Aspect Value
Language Go 1.25.0
Framework Gin web framework
Subdomain Wordlist 5000 names (SecLists)
Probe Concurrency 10 workers, 3s timeout
Probe Duration ~2 minutes for 5000 names
WAF Scanner GoTestWAF (120s timeout)
AI Provider DeepSeek API (optional, graceful fallback)
Reports Static HTML at /opt/aasd/reports/
Storage Scan metadata: in-memory; Reports: files on disk
Deployment systemd service at /opt/aasd/
Credentials sechpoint / Git3x2o26

Deployment

/opt/aasd/
├── aasd                 31M  — Compiled binary
├── config.yaml               — Server URL, admin creds, AI key
├── prompt.txt                — DeepSeek system prompt
├── subdomains.txt            — 5000-name wordlist
├── gotestwaf            27M  — WAF scanner binary
├── gotestwaf-config.yaml     — HTTP headers for scans
├── testcases/                — GoTestWAF attack payloads
├── static/                   — Frontend HTML/JS
├── templates/                — Admin dashboard template
├── reports/                  — Generated scan reports
└── logs/                     — Server logs

API Endpoints

Endpoint Method Description
/ GET Landing page (domain input)
/start POST Submit domain, start discovery pipeline
/select-subdomain GET Subdomain selection page
/select-subdomain POST Select target, start GoTestWAF scan
/analysing GET Scan progress page
/scan-status/:token GET Poll scan status (JSON)
/admin-dashboard GET Consultant dashboard (basic auth)
/api/scans GET Scan list (JSON)
/report-data/:token GET Raw scan result (JSON)
/reports/* GET Static report files
/qrcode GET QR code generator
/email-report POST Send report via email
/simulation GET Legacy alias for /analysing

Known Limitations

  • Scan results are in-memory — restarting the service clears all scan metadata (reports on disk survive)
  • GoTestWAF requires HTTPS — targets without HTTPS will fail to scan (fallback report generated)
  • Probe takes ~2 minutes for 5000 names at 10 concurrent workers with 3s timeout
  • Wildcard DNS + Zoraxy defaults — subdomains that return the exact same Zoraxy default page may be filtered out even if they exist (rare edge case)

Next Steps

  • Production deployment with proper SSL termination via Zoraxy
  • DeepSeek API key configuration for AI-powered reports
  • Fine-tune wordlist for booth-relevant domains