Skip to content

fr0gb1t/bbpf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BBPF - Bug Bounty Program Finder

BBPF es una herramienta de consola para buscar programas de bug bounty en múltiples plataformas y extraer automáticamente sus scopes (In Scope / Out of Scope) y tipos de vulnerabilidades (Qualifying / Non-qualifying).

Actualmente soporta:

  • HackerOne ✅
  • YesWeHack ✅
  • (Próximamente) Bugcrowd, Intigriti y programas self-hosted

🧰 Requisitos

  • Python 3.8+
  • Dependencias en requirements.txt

Opcional:

  • Entorno virtual (.vemv-bbpf) recomendado.

📦 Instalación

git clone https://github.com/fr0gb1t/bbpf.git
cd bbpf

python3 -m venv .vemv-bbpf
source .vemv-bbpf/bin/activate   # Linux/macOS
# .vemv-bbpf\Scripts\activate    # Windows

pip install -r requirements.txt

##🚀 Uso

Búsqueda y scrapeo por nombre de programa:

python3 bbpf.py infomaniak

Exportar dominios “In Scope” a TXT:

python3 bbpf.py infomaniak --out scopes.txt

Colores en consola: si tenés colorama instalado, el script imprime secciones con color (verde: In Scope, rojo: Out of Scope, cian/magenta: Qualifying/Non-qualifying).


🗂️ Estructura

bbpf-bug-bounty-program-finder/
│── scrapers/
│   ├── hackerone.py       # HackerOne: detección + CSV oficial de assets
│   ├── yeswehack.py       # YesWeHack: tabla Scope/Type + Vulnerability types
│   ├── bugcrowd.py        # (WIP)
│   ├── intigriti.py       # (WIP)
│   └── __init__.py
│
│── bbpf.py                # CLI principal
│── utils.py               # http_get y utilidades
│── requirements.txt
│── README.md

🔌 Cómo agregar una nueva plataforma (scraper)

  1. Crear scrapers/mi_plataforma.py con una clase que implemente:
  • name = "mi_plataforma"
  • search(program: str) -> tuple[str|None, str|None] Devuelve (handle, program_url) si encuentra el programa, o (None, None) si no.
  • extract_scope(handle: str, program_url: str) -> dict | None Debe retornar un diccionario con esta forma:
{
"platform": "<name>",
"program_url": "<url>",
"in_scope": {"<Tipo>": [items...]},
"out_scope": {"<Tipo>": [items...]},
# opcional:
"qualifying_vulns": {"Vulnerabilities": [items...]},
"non_qualifying_vulns": {"Vulnerabilities": [items...]},
}
  1. Importar y añadir la clase en la lista SCRAPERS dentro de bbpf.py.

Sugerencia: mantener el parseo lo más estable posible usando fuentes “oficiales” (CSV/JSON) cuando existan; si no, parsear HTML (tablas/listas) anclando a contenedores específicos.


🧪 Notas de implementación

  • HackerOne: usa el endpoint CSV público por programa: https://hackerone.com/teams//assets/download_csv.csv
  • YesWeHack: parsea la tabla “Scope/Type” para In Scope y el bloque #program-vulneraibility-types para Qualifying/Non-qualifying; Out of Scope se obtiene de headings y listas específicas.

About

Bug Bounty Program Finder. Search for programs and gets their scope

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages