A comprehensive toolkit for discovering, analyzing, and understanding ChatGPT share link patterns. This research revealed that ChatGPT uses UUID v8 format for share links, making them significantly more discoverable than expected.
- Pattern Discovery: ChatGPT share links use UUID v8 format (not random UUID v4)
- Hit Rate: ~0.4% for random patterns, ~6% when targeting UUID v8 (16x improvement)
- Security Impact: 256-fold reduction in effective search space
- Deleted Shares: Remain in namespace with 200 status code, just show "Can't load" message
Read the full research article: ARTICLE.md
# Clone the repository
git clone https://github.com/actyra/chatgpt-share-scanner.git
cd chatgpt-share-scanner
# Install dependencies
pip install -r requirements.txt# Discover shares using CDX API (free, no API keys needed)
python cdx_probe.py discover --providers cdx --limit 5000 --out found.txt
# Brute-force with UUID v8 pattern (most effective)
python cdx_probe.py brute-force --attempts 1000 --pattern uuid8 --resume
# Analyze discovered patterns
python analyze_guid_pattern.py
# View statistics
python cdx_probe.py guid-stats-
cdx_probe.py - Main scanner
- Multiple discovery methods (CDX API, Common Crawl, brute-force)
- Content verification (distinguishes accessible vs deleted shares)
- Full-text search engine with SQLite FTS5
- Pattern-based GUID generation
-
analyze_guid_pattern.py - Pattern analyzer
- Discovers UUID versions and variants
- Analyzes timestamp encoding
- Generates pattern-based GUIDs
- Statistical analysis
-
guid_utils.py - Reusable library
- UUID v4, v8, and random GUID generation
- Database operations
- GUID validation and statistics
-
guid_generator.py - Standalone generator
- Batch GUID generation
- Multiple pattern support
- Database tracking
Located in tools/ directory:
- guid_finder - Web occurrence scanner (requires API keys)
- partial_guid_search - Fragment-based search (requires API keys)
- advanced_guid_search - Advanced search operators (requires API keys)
- merge_guid_dbs - Database merger
See tools/README.md for detailed documentation.
- β Content Verification: Distinguishes accessible shares from deleted ones
- β Pattern-Based Generation: Targets UUID v8 for maximum efficiency
- β Database Tracking: SQLite databases prevent duplicate testing
- β Full-Text Search: FTS5-powered search engine for discovered content
- β Multiple Discovery Methods: CDX archives, web crawl, search engines, brute-force
- β Standalone Tools: Each tool works independently
From our testing of 13,000+ attempts:
| Pattern | Hit Rate | Accessible Shares | Notes |
|---|---|---|---|
| Random | 0.4% | Low | Occasionally matches v8 by chance |
| UUID v4 | ~0.3% | Low | Wrong pattern for ChatGPT |
| UUID v8 | ~6% | Moderate | Matches ChatGPT's actual format |
Pattern Breakdown:
- All discovered shares use UUID v8 (section 3 starts with '8')
- RFC 4122 compliant variant bits (section 4: 8/9/a/b)
- No timestamp encoding detected
# UUID v8 pattern with content check
python cdx_probe.py brute-force \
--attempts 10000 \
--pattern uuid8 \
--delay 0.3 \
--resume
# View accessible vs deleted breakdown
python cdx_probe.py guid-stats# Discover shares
python cdx_probe.py discover --providers cdx --limit 5000 --out shares.txt
# Index for full-text search
python cdx_probe.py index --urls shares.txt --db shares.db
# Search the database
python cdx_probe.py search --query "python programming" --db shares.db# Analyze discovered GUIDs
python analyze_guid_pattern.py
# View detailed JSON output
cat guid_pattern_analysis.json# Merge multiple databases
cd tools/merge_guid_dbs
python merge_guid_dbs.py merge \
--tested-db ../../tested_guids.db \
--generated-db ../../guid_generator/generated_guids.db \
--output all_guids.db
# View statistics
python merge_guid_dbs.py stats --db all_guids.dbchatgpt-share-scanner/
βββ README.md # This file
βββ ARTICLE.md # Research article
βββ LICENSE # MIT License
βββ requirements.txt # Python dependencies
βββ .gitignore # Git ignore rules
β
βββ cdx_probe.py # Main scanner
βββ analyze_guid_pattern.py # Pattern analyzer
βββ guid_utils.py # Reusable library
βββ guid_generator.py # GUID generator
β
βββ tools/ # Advanced tools
β βββ README.md # Tools documentation
β βββ cdx_probe/ # Main scanner (release)
β βββ guid_finder/ # Web occurrence scanner
β βββ partial_guid_search/ # Fragment search
β βββ advanced_guid_search/ # Advanced operators
β βββ merge_guid_dbs/ # Database merger
β βββ guid_utils/ # Python library
β βββ examples/ # Usage examples
β
βββ docs/ # Additional documentation
βββ API_KEYS.md # API key setup guide
Some tools require API keys for web search functionality:
- Google Custom Search API (for guid_finder, advanced_guid_search)
- Bing Search API (for guid_finder)
- GitHub Token (for guid_finder)
See docs/API_KEYS.md for setup instructions.
Note: Core functionality (CDX discovery, brute-force, pattern analysis) works without API keys.
This research was conducted responsibly for educational purposes:
- β All code is for defensive security research
- β Tools help understand privacy implications
- β No credentials harvesting or malicious use
- β Respects rate limits and ToS
- β Do not use for unauthorized access
- β Do not share sensitive discovered content
Recommendations:
- Don't share sensitive information via ChatGPT links
- Assume share links are discoverable
- "Deleted" shares remain in ChatGPT's namespace
- CDX Discovery: ~5000 shares in 30 seconds (free API)
- Brute-Force: ~200 attempts/minute with content verification
- Database: Handles millions of GUIDs efficiently
- Search: Sub-second full-text search with FTS5
Contributions welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI - For creating ChatGPT and the share feature
- Internet Archive - For the CDX API
- Common Crawl - For web archive data
- GitHub: @actyra
This tool is for educational and security research purposes only. Users are responsible for complying with applicable laws and OpenAI's Terms of Service. The authors assume no liability for misuse.
Star β this repository if you found it interesting!