Updated Jul 15, 2026

Discovery

Confirm backup and DVCS leaks on live application URLs

Checks live URLs for backup files and exposed version-control paths.

Agent

overview

What bfac does

bfac hunts deploy leftovers: editor backups, archives, and exposed DVCS directories such as .git. An open index.php.bak or .git/HEAD can leak source, secrets, and directory layout.

Point it at -u or --list. It generates candidate paths and verifies with --technique (status_code, content_length, or all) so soft-404s stay out. Raise -level for more permutations; --dvcs-test narrows to VCS; --request-rate-throttling caps pace.

Feed live endpoints from a crawler or prober, then route confirmed artifacts into the same triage path as other findings. The managed discovery node writes a file and a folder of hits from -u or --list input.

source github.com/mazen160/bfac

use cases

Where bfac fits

Find exposed backup copies of source

Check a host for editor and archive backups of live files so you catch a leaked index.php.bak before someone reads application source from it.

Hunt exposed version-control directories

Run --dvcs-test to focus on exposed .git and similar folders, the artifacts that most often leak an entire codebase and its history.

Sweep a list of discovered URLs

Pass a crawler's endpoint list via --list and check every path for backup artifacts in one pass instead of probing each by hand.

Verify hits without false positives

Use --technique status_code, content_length, or all so soft-404 pages are not reported as real backups.

reference

bfac inputs and flags

18 inputs
NameTypeFlagDescription
single-urlSTRING-uCheck a single URL for backup artifacts.
url-listFILE--listCheck a list of URLs, the usual pipeline input.
levelSTRING-levelChoose how aggressively bfac generates candidate paths.
verification-techniqueSTRING--techniqueConfirm hits by status_code, content_length, or all (default all).
dvcs-tests-onlyBOOLEAN--dvcs-testLimit the run to exposed DVCS artifacts such as .git.
request-rateSTRING--request-rate-throttlingRequests per second to throttle a run (default 30).
exclude-status-codeSTRING-xscStatus codes to exclude, comma-separated.
cookieSTRING--cookieHTTP cookie header value, for authenticated checks.

Showing key inputs. bfac exposes 18 inputs in total.

Full flag reference (18 inputs)
NameTypeFlagDescription
hostSTRING--hostHTTP host header value
levelSTRING-levelChoose level
proxySTRING--proxyProxy authentication credentials (name:password).
cookieSTRING--cookieHTTP cookie header value
timeoutSTRING--timeoutHTTP request timeout in seconds (default:5)
url-listFILE--listCheck a list of URLs
proxy-fileFILE--proxy-fileUse a proxy list file
single-urlSTRING-uCheck a single URL
user-agentSTRING-uaHTTP User-Agent header value
request-rateSTRING--request-rate-throttlingRequest rate throttling per second (default: 30)
results-onlyBOOLEAN--no-textShow the results only
extra-headersSTRING--headersExtra headers (e.g. "Accept-Language: fr\nETag: 123")
dvcs-tests-onlyBOOLEAN--dvcs-testLimit the test to exposed DVCS tests
user-agent-fileFILE--user-agents-fileUse a User-Agents file
exclude-status-codeSTRING-xscSpecify status codes to exclude, separated by commas
invalid-content-lengthSTRING--invalid-content-lengthManually specify the invalid Content-Length, instead of performing this check automatically.
verification-techniqueSTRING--techniqueTechnique to verify the availability of the file. (options: status_code, content_length, all) (default: all)
invalid-content-length-offsetSTRING--invalid-content-length-offsetManually specify the Content-Length offset for invalid pages (default: 50).

example

Run bfac

bfac · command
# check live URLs for backup and DVCS artifactsbfac --list urls.txt -level 4 --technique all --request-rate-throttling 20 --no-text
sample output
[+] https://www.example.com/index.php.bak (200, content-length verified)[+] https://www.example.com/.git/HEAD (200)[+] https://api.example.com/app.tar.gz (200)[+] https://app.example.com/config.php~ (200)[+] https://staging.example.com/.svn/entries (200)[-] soft-404 candidates excluded via content_length[*] 5 artifacts confirmed across 40 URLs

guidance

Choosing bfac

Reach for bfac when you have live URLs and want to know whether a deploy left backup or version-control files exposed. It checks known paths; it does not crawl. Feed endpoints from a crawler or prober. For broader secret hunting inside pages, pair it with a secret scanner.

gittools-finder

Focuses on exposed .git repositories. bfac covers DVCS plus editor and archive backups.

snallygaster

Scans for a wider set of secret files on web servers. bfac is tighter on backup artifacts.

ffuf

General content brute forcer. bfac ships backup-specific paths and verification logic.

faq

bfac questions

Editor and archive backups of live files, plus exposed version-control directories such as .git. Those are the files most likely to disclose source, passwords, and directory structure.

Run bfac yourself

A URL list is probed by httpx, then bfac checks each live path for backup and version-control artifacts and writes the confirmed hits as a queryable output.

Facts on this page come from the live Trickest tool library.