# Packages
# README
JSDif Watcher šµļøāāļø V.1.0.2
A powerful JavaScript monitoring tool for bug bounty hunters. Track changes in JavaScript files across websites, detect new attack surfaces, and stay ahead of security vulnerabilities.
šÆ Features
- š Monitor JavaScript files from any website
- š Git-based version control of changes
- š Clean web UI for easy configuration
- š Telegram notifications for instant alerts
- ā” Configurable monitoring intervals
- š Automatic retry and timeout mechanisms
- š Efficient diff viewing for quick analysis
- š”ļø Automatic error handling and retry mechanisms
- š® Web interface for easy management of monitored URLs
š Quick Start
Docker Installation (Recommended)
The easiest way to run JSDif is using Docker:
# Clone the repository
git clone https://github.com/mirzaaghazadeh/jsdif.git
cd jsdif
# Start with Docker Compose
docker compose up -d
Access the web interface at http://localhost:9093
For detailed Docker setup instructions including:
- Authentication configuration
- Custom port configuration
- Data persistence management
- Container management
- Troubleshooting guide
š See DOCKER.md
Manual Installation
Requirements
- Go 1.20 or higher
- Git installed and accessible from PATH
- Linux, macOS, or Windows operating system
Installation
go install github.com/mirzaaghazadeh/jsdif@latest
Usage
Basic usage without authentication:
jsdif run -p 9093
Optional basic authentication:
jsdif -u admin --password secret -p 9093 run
Available flags:
-p
: Port number (default: 9093)-u
: (Optional) Username for authentication on web gui--password
: (Optional) Password for authentication on web gui
Access the web interface at http://localhost:9093
to start monitoring your targets.
š» Web Interface Features
- Add/Edit/Remove monitored URLs
- Configure monitoring intervals per URL
- View real-time status of each watcher
- Set custom timeout values
- Browse through historical changes
- View detailed diffs between versions
- Toggle monitoring status (active/disabled)
š Notification Setup
Telegram Notifications
- Create a new bot using @BotFather on Telegram
- Get your bot token
- Get your chat ID (you can use @userinfobot)
- Configure notifications in the web interface:
- Enable notifications
- Select Telegram as the notification type
- Enter your bot token
- Enter your chat ID
š„ Bug Bounty Use Cases
- šÆ Track new JavaScript endpoints and APIs
- š Monitor for leaked sensitive information
- š”ļø Detect changes in security controls
- š Find new features before they're officially released
- ā ļø Identify removed security checks
- š¦ Track third-party script changes
- š Monitor authentication/authorization changes
šØ Building from Source
git clone https://github.com/mirzaaghazadeh/jsdif.git
cd jsdif
go build -o jsdif
āļø Configuration
Command Line Options
- Port:
-p
flag to set the server port (default: 9093) - Authentication: Optional basic auth protection
-u
: Username for web interface access--password
: Password for web interface access
Web Interface Settings
The web interface allows you to configure:
- URL: The target website to monitor
- Interval: How often to check for changes (in minutes)
- Status: Active or Disabled
- Timeout: Maximum number of retry attempts before disabling
- Notifications: Telegram notification settings
- Enable/Disable notifications
- Bot Token
- Chat ID
š Reporting Issues
If you encounter any bugs or have feature requests, please:
- Check the existing issues on GitHub
- Create a new issue with:
- Detailed description of the problem
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, Go version)
š License
This project is open source. Feel free to use and contribute!
ā ļø Note: This tool is intended for bug bounty hunting and security research. Use responsibly and follow program policies.