Skip to main content

Enterprise-grade BOLA and API Vulnerability Scanner

Project description

Janus Security Scanner 🛡️

License: MIT Python 3.10+ Code Style: Black Docker Deploy PyPI version

Janus is an enterprise-grade API security scanner designed for Red Teams and advanced security testing. Unlike traditional scanners, Janus uses a distinct approach for detecting BOLA (Broken Object Level Authorization), BFLA, and Race Conditions without relying on external AI APIs.

Janus Dashboard

Features 🚀

  • BOLA/IDOR Detection: Automatic analysis of resource access patterns.
  • Broken Function Level Authorization (BFLA): Vertical privilege escalation testing.
  • PII & Secrets Scanning: Detect sensitive data leaks in API responses.
  • Race Condition Testing: Multi-threaded exploitation of concurrency bugs.
  • SSRF Testing: Server-Side Request Forgery with 25+ payloads (internal networks, cloud metadata, file protocols).
  • Stealth Mode: WAF evasion with header rotation, jitter, and proxies.
  • Proxy Support: HTTP, HTTPS, and SOCKS5 proxies (including Tor).
  • Custom Headers: Add custom headers to all requests.
  • Team Collaboration: Real-time finding synchronization via Redis/Hive-Mind.
  • CI/CD Integration: Export findings to SARIF for GitHub Security tab.
  • Web Dashboard: Modern UI for managing scans and viewing reports.
  • Webhook Notifications: Send alerts to Discord, Slack, or custom endpoints.

Installation 📦

PyPI (Recommended)

pip install janus-security

From Source

git clone https://github.com/ksanjeev284/janus.git
cd janus
pip install .

Quick Start 🏃‍♂️

1. Web Dashboard (Recommended)

Option A: Using Docker (Fastest)

# Pull and run the latest image
docker run -p 8000:8000 ghcr.io/ksanjeev284/janus:latest

Option B: From Source Start the web server and dashboard:

python -m janus.interface.web.server
# Access at http://localhost:8000

2. CLI Usage

Janus provides a powerful CLI for automation testing.

Basic BOLA Scan:

janus scan --victim <token> --attacker <token> --host <url>

SSRF Testing:

janus ssrf --endpoint https://api.example.com/fetch --param url --quick

Stealth Test:

janus stealth-test

Vertical Escalation (BFLA):

janus bfla --host https://api.example.com --low <user_token>

3. Proxy & Custom Headers

Using the HTTP client programmatically:

from janus.core.http_client import JanusHTTPClient

client = JanusHTTPClient()
client.set_proxy("http://proxy.example.com:8080")  # HTTP proxy
client.set_proxy("socks5://127.0.0.1:9050", "socks5")  # Tor
client.add_global_header("X-API-Key", "your-key")
client.set_ssl_verify(False)  # For testing

status, body, raw = client.get("https://api.example.com", token="Bearer xyz")

Architecture 🏗️

Janus operates by "learning" from legitimate traffic (via its proxy or provided tokens) to understand the structure of API resources. It then attempts to access those same resources using a different user's context (the attacker), analyzing the structural similarity of the responses to determine vulnerability.

Contributing 🤝

We welcome contributions! Please see CONTRIBUTING.md for details.

License 📄

MIT License - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

janus_security-0.1.3.tar.gz (186.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

janus_security-0.1.3-py3-none-any.whl (96.8 kB view details)

Uploaded Python 3

File details

Details for the file janus_security-0.1.3.tar.gz.

File metadata

  • Download URL: janus_security-0.1.3.tar.gz
  • Upload date:
  • Size: 186.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for janus_security-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a0c8198cb9ff39ffe582f6ba3c5d6cff0a8ea6fc22f503721ce80e76167657c6
MD5 1f83c0214570c5c6ed8954ed84474bbe
BLAKE2b-256 a1b420cb4a1ee575bc7b6b86255ce7185e9b517a97693c35ea7bd90f994888e5

See more details on using hashes here.

File details

Details for the file janus_security-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: janus_security-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 96.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for janus_security-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f3662e9fbe2d8b1bcefa963f826bda5d41138072425292f11bb1798b26b29f11
MD5 87aceecd7346a2187e7e490e9b89999c
BLAKE2b-256 4fdb96f60c412fda8cd5058ab89f21dcf29591ac82b6618b4049eec50ea8d5ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page