web-vuln-scanner

1.0.8 โ€ข Public โ€ข Published

๐Ÿ” Web Vulnerability Scanner CLI

A powerful and pluggable JavaScript CLI tool to scan websites for common security vulnerabilities:

  • โœ… SQL Injection
  • โœ… XSS (Cross-Site Scripting)
  • โœ… CSRF
  • โœ… CSP Misconfigurations
  • โœ… SSL/TLS Issues
  • โœ… Insecure HTTP Headers
  • โœ… Directory Traversal
  • โœ… Open Ports
  • โœ… Outdated JavaScript Libraries
  • โœ… IDOR
  • โœ… RCE Checks

Generate reports in Console, JSON, HTML, or Markdown formats.


๐Ÿš€ Installation

git clone https://github.com/pratikacharya1234/Web-Vulnerability-Scanner.git
cd Web-Vulnerability-Scanner
npm install

๐Ÿ“Œ Requires Node.js v18+


๐Ÿ“ฆ Key Dependencies

Package Role
commander CLI interface
chalk Colored console output
ora CLI loading spinners
node-fetch Makes HTTP requests
jsdom Parses HTML into DOM
cheerio Lightweight HTML traversal
debug Debug logger
p-limit Controls concurrency
open Opens HTML reports in browser

๐Ÿ› ๏ธ How to Use

โ–ถ Basic Usage

node bin/cli.js https://example.com

๐Ÿงช Advanced Scan

node bin/cli.js https://juice-shop.herokuapp.com \
  --only xss,sql,headers \
  --format html \
  --output report.html \
  --open \
  --verbose

๐Ÿ“ฅ Available CLI Options

Option Description
--output Save results to file (.json, .html, .md)
--format Output format: console, html, json, markdown
--only Run only selected modules (e.g., xss,sql)
--headers Custom headers as JSON
--cookies Cookies to attach to request
--depth Max crawl depth (default: 1)
--disable-crawler Scan only the main URL
--verbose Show detailed vulnerability breakdown
--open Automatically open HTML report in browser
--risk-insight Include detailed risk analysis in reports
--show-evidence Display vulnerable code snippets in output

๐Ÿง‘โ€๐Ÿ’ป Programmatic API Usage

Install as a Dependency

npm install web-vuln-scanner

๐Ÿ–ฅ Terminal Scan Example

const scanner = require('web-vuln-scanner');

(async () => {
  const results = await scanner.scan('https://example.com', {
    scanModules: ['xss', 'headers', 'ssl'],
    timeout: 30000,
    verbose: true,
    depth: 1,
    concurrency: 5,
    userAgent: 'MyScanner/1.0'
  });

  console.log(JSON.stringify(results, null, 2));
})();

๐ŸŒ Browser Report Example

const fs = require('fs');
const path = require('path');
const scanner = require('web-vuln-scanner');
const { generateReport } = require('web-vuln-scanner/lib/reporters/html-reporter');
const open = (...args) => import('open').then(m => m.default(...args));

(async () => {
  const url = 'https://example.com';
  const results = await scanner.scan(url, {
    scanModules: ['xss', 'headers', 'ssl'],
    timeout: 30000,
    depth: 1,
    concurrency: 5
  });

  const report = {
    target: url,
    summary: results.summary,
    vulnerabilities: results.vulnerabilities
  };

  const filePath = path.resolve(__dirname, 'scan-report.html');
  fs.writeFileSync(filePath, generateReport(report));
  console.log(`๐Ÿ“„ Report saved at: ${filePath}`);
  await open(filePath);
})();

๐Ÿงพ Sample Output

{
  "summary": {
    "total": 5,
    "high": 1,
    "medium": 2,
    "low": 2,
    "info": 0
  },
  "vulnerabilities": [
    {
      "type": "xss",
      "severity": "high",
      "description": "Potential reflected XSS found",
      "recommendation": "Sanitize user input.",
      "evidence": "<script>alert(1)</script>",
      "url": "https://example.com"
    }
  ]
}

๐Ÿ“ Project Structure

web-vuln-scanner/
โ”œโ”€โ”€ bin/
โ”‚   โ””โ”€โ”€ cli.js                # CLI entrypoint
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ index.js              # Exports scanner
โ”‚   โ”œโ”€โ”€ scanner.js            # Core scanner
โ”‚   โ”œโ”€โ”€ crawler.js            # HTML-based crawler
โ”‚   โ”œโ”€โ”€ crawler-puppeteer.js  # JS-based crawler
โ”‚   โ”œโ”€โ”€ auth.js               # Login scanning
โ”‚   โ”œโ”€โ”€ session-recorder.js   # Session manager
โ”‚   โ”œโ”€โ”€ version-check.js
โ”‚   โ”œโ”€โ”€ scanners/
โ”‚   โ”‚   โ”œโ”€โ”€ xss.js
โ”‚   โ”‚   โ”œโ”€โ”€ sql-injection.js
โ”‚   โ”‚   โ”œโ”€โ”€ ssl-tls.js
โ”‚   โ”‚   โ”œโ”€โ”€ external-scripts.js
โ”‚   โ”‚   โ””โ”€โ”€ dependency.js
โ”‚   โ”œโ”€โ”€ reporters/
โ”‚   โ”‚   โ”œโ”€โ”€ html-reporter.js
โ”‚   โ”‚   โ”œโ”€โ”€ markdown-reporter.js
โ”‚   โ”‚   โ”œโ”€โ”€ json-reporter.js
โ”‚   โ”‚   โ””โ”€โ”€ owasp.js
โ”‚   โ””โ”€โ”€ integrations/
โ”‚       โ”œโ”€โ”€ jira.js
โ”‚       โ””โ”€โ”€ slack.js

๐Ÿš€ 2025 Feature Roadmap

We're building a powerful, enterprise-ready security toolkit. See our roadmap.md for the detailed plan:

Current Progress:

  • โœ… Modular scanners implementation
  • โœ… Report generators (HTML, JSON, Markdown)
  • โœ… Smart CLI flags (risk-insight, show-evidence)
  • โœ… Puppeteer crawler for JS apps
  • โœ… Gemini AI fix recommendations

Coming Soon:

  • ๐Ÿง  LLM vulnerability explainer
  • ๐Ÿ“Š Web-based dashboard UI
  • ๐Ÿ” Authentication scanning
  • ๐Ÿ“„ OWASP & compliance reporting
  • ๐Ÿงฒ Jira & Slack integrations

๐Ÿค Contributing

We welcome your help!
Please check out CONTRIBUTING.md for how to submit a PR and see our roadmap.md for upcoming features.


๐Ÿ“œ License

MIT ยฉ 2025
Made with ๐Ÿ’ป by Pratik Acharya

Package Sidebar

Install

npm i web-vuln-scanner

Weekly Downloads

35

Version

1.0.8

License

MIT

Unpacked Size

87.7 kB

Total Files

26

Last publish

Collaborators

  • pratik242