SkillAgentSearch skills...

Vorin

Fast path fuzzing for hidden web directories.

Install / Use

/learn @JuaanReis/Vorin

README

<img src="assets/banner/banner1.png" alt="Banner" style="width: 100%; max-height: 100px; object-fit: cover;">

Vorin - Web Directory & Admin Scanner

A fast and flexible web fuzzing tool written in Go

Vorin is a web directory and admin path scanner tool written in Go. It's built for speed, simplicity, and clean output. Inspired by tools like Gobuster and FFUF, but with its own unique style.

  • Search and find hidden directories.
  • Use stealth mode for silent reconnaissance... but don't do it on your little friend's project.
  • UIless mode for those in a hurry using silence.
  • Live mode to make sure my tool actually works.
  • Use a proxy so your little friend doesn't find out about your tests (do you really need to hide so much from him?)

Table of Contents

The most used link is definitely the one on how to install

Statistics and weird stuff

Stars   PRs Welcome   Last Commit   Go Version License: GPL   Go Report Card Play Random Video   Play Random Video

Features

  • Fast scanning with multithreading
  • Custom wordlist support
  • Detects common directories, admin panels, and sensitive files
  • Clean and colorful terminal output
  • Easy to compile and use on any OS

Installation

To use the latest version of vorin use the command below to copy the repository and compile

git clone https://github.com/JuaanReis/vorin.git
cd vorin
go build -o vorin
./vorin -help

The easiest and most error-free way, I hope

or

go install github.com/JuaanReis/vorin@latest

You just need to have Go installed

or

curl -s https://raw.githubusercontent.com/JuaanReis/vorin/main/cmd/script/install.sh | bash

If you want to download or update vorin

Vorin depends on Go version 1.22.3 or newer<br>

If you don't have go installed, download it here -> Go

⚠️ If you get any permission denied error on Linux, try:

chmod +x vorin

Usage

This is a basic example of a scan

./vorin -u http://example.com/FUZZ -w path/to/wordlist.txt -t 50 -rate 35 -d 0.1-0.1 -H "X-Debug: true" -H "Authorization: Bearer teste123" -shuffle -timeout 5 -sc 200,301,302,403

This is an example of brute force login

./vorin -method post -u "https:/target.com/login" -userlist users.txt -passlist passwords.txt -data "user=USERFUZZ&password=PASSFUZZ" -t 30 -live

How it works

Vorin uses Go's native concurrency to spawn multiple workers that:

  • Replace the FUZZ keyword in the URL
  • Send HTTP GET requests
  • Analyze the response (status, size, title, etc.) and compare it to a random path (it really is random)
  • Display results with clean formatting (with optional silent or active mode) <br>

I really tried to explain

Project Structure

vorin/
├── assets/ # banners, screenshots
├── cmd/ 
|     └── # bash codes (shell for installation) 
├── internal/ # Core scanner logic (requests, handlers)
├── pkg/
|     └── wordlist.go # Load the wordlist
├── CONTRIBUTORS.md # Code Rules or How I Made the Tool
├── LICENSE # License for you not to steal my project
├── main.go # Entry point
├── makefile # Code for ease of use
└── README.md # You're here (I didn't even need to write this)

Making the structure was easier than writing it

Parameters

| Flag | Description | Default | Example | |------------|--------------------------------------------------------------|--------------------------------|----------------------------------------------| | -u/url | Target URL (must contain FUZZ) | None | -u https://site.com/FUZZ | | -method/X | request Method (POST or GET) | GET | -method POST | | -userlist/ul | User wordlist file for POST | top-usernames-shortlist.txt | -users.txt | | -passlist/pl | Password wordlist file for POST | rockyou-20.txt | -passlist password.txt | | -data | POST payload template (USERFUZZ, PASSFUZZ) | None | -data "user=USERFUZZ&password=PASSFUZZ" | | -wordlist/-w | Path to wordlist | common.txt | -w mylist.txt | | -t/thread | Number of concurrent threads | 35 | -t 100 | | -d/delay | Random delay between requests (e.g. 1-5) | 0.1s-0.2s | -d 1-3 | | -timeout/T | Connection timeout | 5s | -timeout 10 | | -retries | Number of attempts for a request | 0 | -retries 2 | | -rate | Maximum number of requests per second (RPS). Set 0 to disable rate limiting | 25r/s | -rate 45 | | -H | Custom headers (repeatable) | None | -H "X-Test: true" | | -random-agent | uses a random user agent per request | false | -random-agent | | -spoof-ip | uses a random IP per request | false | -spoof-ip | | -status-code/sc | Valid status codes (comma-separated) | 200,301,302,401,403 | -sc 200,403 | | -proxy | Proxy URL (supports HTTP/SOCKS5) | None | -proxy socks5://127.0.0.1:9050 | | -redirect | follow 3xx status code redirects | false | -redirect | | -calibrate/C | Calibrates false path responses | false | -C | | -silence | Hide progress/output until finished | false | -silence | | -live | Print results immediately when found | false | -live | | -no-banner | Disable banner | false | -no-banner | | -status-only | The output only returns the status code and the path | false | -status-only | | -stealth | Enables stealth mode (random headers, delay, etc) | false | -stealth | | -save-json/o | Path to save results as JSON | None | -save-json results.json | | -filter-size/fc | Filter pages by size | 0 | -filter-size 2 | | -filter-line/fl | Filters pages by number of lines | 0 | -filter-line 1 | | -filter-title/ft | Filters page by title | None | -filter-title "Error" | | -filter-body/fb | Filter page by words | None | -filter-body "404 Not Found" | | -filter-code/fc | Filter page by status code | None | -filter-code "404, 500, 505" | | -shuffle | Shuffle the wordlist | false | -shuffle | | -regex-body/rb | Apply regex to the body | None | -regex-body "dashboard" | | -regex-title/rt | Apply regex to the title | None | -regex-title "admin" | | -compare/c | Path to be compared to wordlist | Default in the code | -compare "a1b2c3d4" | | -help/-h | shows all flags and examples | false | -help |

Examples

Below is a real example of the tool running in a test environment, showing detection of hidden directories and sensitive files:

Below is a basic test with GET method (as is visible in the image)

Scan Example GET

Below is a basic test with the POST method (as it is also visible in the image)

Scan Example POST

All tests were performed in a safe and controlled environment, without affecting any real systems.<br> Please act responsibly — this tool is not a green light for illegal testing.

Wordlist

You can use any custom wordlist. It's recommended to start with a small list and scale up as needed.

Example wordlist:

admin
admin/login
.git
.htaccess
phpinfo.php
uploads
includes

I think it's better to get something ready-made than to make it. (I'm lazy)

Output

You can save the scan results using the -save-json flag:

./vorin -u http://example.com/FUZZ -save-json results.json

The path must be passed to the flag

`JSON is format

View on GitHub
GitHub Stars18
CategoryDevelopment
Updated17d ago
Forks2

Languages

Go

Security Score

95/100

Audited on Mar 9, 2026

No findings