Hybrid SAST + DAST Security Scanner for Modern Web Applications
"If I were an attacker, how would I break this app?"
Turbo Broccoli tells you the answer before you ship.
Turbo Broccoli is a pre-deployment security guardrail designed for developers, students, and early-stage startups who need to catch critical vulnerabilities before they go live. It combines Static Application Security Testing (SAST) with Dynamic Application Security Testing (DAST) to provide comprehensive security coverage.
Teams often ship fast and break rules. Common mistakes include:
- Committing
.envfiles or API keys to version control - Misconfiguring JWTs (using
nonealgorithm or weak secrets) - Leaving CORS wide open (
*) - Exposing admin routes without proper protection
- Missing
.gitignorecoverage for sensitive files
Turbo Broccoli acts as a last-mile security checkpoint that catches these issues, explains how to exploit them, and offers AI-powered fix suggestions.
| Feature | Description |
|---|---|
| Regex-based Rules | Pattern matching for secrets, misconfigurations, and vulnerabilities |
| AST-based Analysis | Deep code understanding using TypeScript-ESTree parser |
| Multi-pattern Detection | AWS keys, JWT tokens, API secrets, hardcoded credentials |
| Feature | Description |
|---|---|
| Live Endpoint Testing | Verifies vulnerabilities against running applications |
| Security Headers Check | Validates presence of critical HTTP security headers |
| Git Exposure Detection | Checks for exposed .git directories |
| Admin Route Verification | Tests for unprotected administrative endpoints |
- AI-Powered Fix Suggestions โ Get intelligent remediation code using Google Gemini
- Security Score Dashboard โ Visual representation of your security posture
- Severity Classification โ Issues ranked as CRITICAL, HIGH, MEDIUM, or LOW
- Cyberpunk UI โ Premium developer-friendly interface with modern aesthetics
turbo-broccoli/
โโโ src/
โ โโโ app/
โ โ โโโ api/
โ โ โ โโโ fix/
โ โ โ โโโ scan-dynamic/
โ โ โโโ components/
โ โ โโโ page.tsx
โ โโโ scanner/
โ โ โโโ Scanner.ts
โ โ โโโ DynamicScanner.ts
โ โโโ rules/
โ โ โโโ ast/
โ โ โ โโโ dangerousEval.ts
โ โ โ โโโ sqlInjection.ts
โ โ โ โโโ unsafeObjectAccess.ts
โ โ โโโ dynamic/
โ โ โ โโโ gitExposure.ts
โ โ โ โโโ securityHeaders.ts
โ โ โ โโโ verifyAdminRoute.ts
โ โ โโโ exposedSecrets.ts
โ โ โโโ jwtMisconfiguration.ts
โ โ โโโ brokenCors.ts
โ โ โโโ adminRoutes.ts
โ โ โโโ gitignoreValidation.ts
โ โโโ ast/
โ โโโ services/
โ โโโ types.ts
โโโ public/
| Category | Technologies |
|---|---|
| Frontend | Next.js 16, React 19, TailwindCSS 4, Lucide Icons |
| Backend | Node.js, Next.js API Routes |
| Analysis | TypeScript-ESTree, Acorn AST Parser, Regex |
| AI Integration | Google Generative AI (Gemini) |
| HTTP Client | Axios |
| Authentication | jsonwebtoken (for JWT analysis) |
- Node.js 18+
- npm or yarn
- Google AI API key for fix suggestions
git clone https://github.com/vedant44-cyber/turbo-broccoli.git
cd turbo-broccoli
npm installCreate a .env file from the example:
cp .env.example .envAdd your Google AI API key
GEMINI_API_KEY=your_api_key_herenpm run devOpen http://localhost:3000 in your browser.
- Open Dashboard โ Navigate to
http://localhost:3000 - Upload Files โ Drag and drop your project folder or select files
- Run Scan โ Click the "INITIATE SCAN" button
- Review Results โ Vulnerabilities are displayed with severity, code snippets, and fix suggestions
- Enter Target URL โ Input your running application's public URL
- For local apps, use ngrok to expose your app
- Run Dynamic Scan โ The scanner will test live endpoints
- Review Findings โ Dynamic vulnerabilities appear alongside static findings
| Rule ID | Name | Severity | Description |
|---|---|---|---|
exposed-secrets |
Exposed Secrets | CRITICAL | Detects AWS keys, API tokens, database URLs |
jwt-misconfiguration |
JWT Misconfiguration | CRITICAL | Finds weak signing, none algorithm usage |
broken-cors |
Broken CORS | HIGH | Identifies overly permissive CORS policies |
admin-routes |
Admin Routes | MEDIUM | Flags unprotected admin endpoints |
gitignore-validation |
Gitignore Validation | HIGH | Checks for missing .gitignore entries |
dangerous-eval |
Dangerous Eval | CRITICAL | AST detection of eval() and Function() |
sql-injection |
SQL Injection | CRITICAL | AST detection of injectable queries |
unsafe-object-access |
Unsafe Object Access | HIGH | AST detection of bracket notation with user input |
| Rule ID | Name | Description |
|---|---|---|
security-headers |
Security Headers | Checks for missing CSP, X-Frame-Options, etc. |
git-exposure |
Git Exposure | Detects exposed .git directories |
verify-admin-route |
Admin Route Verification | Tests if admin endpoints are accessible |
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
This project is open source and available under the MIT License.
Made with ๐ for developers who care about security
