fuzzdb
Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.
Top Related Projects
SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.
A list of useful payloads and bypass for Web Application Security and Pentest/CTF
A collection of Burpsuite Intruder payloads, BurpBounty payloads, fuzz lists, malicious file uploads and web pentesting methodologies and checklists.
Web application fuzzer
The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.
🎯 SQL Injection Payload List
Quick Overview
FuzzDB is a comprehensive collection of attack patterns and primitives for security testing and fuzzing. It serves as a resource for application security testing and research, providing various payloads, regex patterns, and wordlists that can be used to identify vulnerabilities in software applications.
Pros
- Extensive collection of attack patterns and payloads for various types of security testing
- Regularly updated with new content and contributions from the security community
- Well-organized directory structure for easy navigation and usage
- Can be integrated into various security testing tools and frameworks
Cons
- Requires knowledge of security testing concepts to use effectively
- Some payloads may be outdated or less relevant for modern applications
- Large repository size may be overwhelming for beginners
- Lacks built-in tools or scripts for direct usage (primarily a data repository)
Getting Started
To use FuzzDB in your security testing:
-
Clone the repository:
git clone https://github.com/fuzzdb-project/fuzzdb.git
-
Navigate to the desired directory based on the type of testing you're performing (e.g.,
attack
,discovery
,wordlists-user-passwd
). -
Use the files in your preferred security testing tool or script. For example, you can use wordlists with tools like Burp Suite, OWASP ZAP, or custom scripts.
-
Keep the repository updated by pulling the latest changes:
cd fuzzdb git pull
Remember to use these resources responsibly and only on systems you have permission to test.
Competitor Comparisons
SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.
Pros of SecLists
- More comprehensive and regularly updated content
- Better organization with clear categorization of wordlists
- Includes specialized lists for various security testing scenarios
Cons of SecLists
- Larger repository size, which may be overwhelming for some users
- Some lists may contain redundant or less relevant entries
- Requires more time to navigate and find specific wordlists
Code Comparison
SecLists:
/Passwords
/Usernames
/Fuzzing
/Discovery
/Web-Shells
FuzzDB:
/attack
/discovery
/wordlists-user-passwd
/regex
Summary
SecLists offers a more extensive collection of wordlists and payloads, with better organization and frequent updates. However, its large size may be overwhelming for some users. FuzzDB provides a more compact and focused set of resources, which can be easier to navigate but may lack some specialized lists found in SecLists. Both repositories serve as valuable resources for security testing, with SecLists being more suitable for comprehensive assessments and FuzzDB for quick, targeted testing.
A list of useful payloads and bypass for Web Application Security and Pentest/CTF
Pros of PayloadsAllTheThings
- More comprehensive coverage of various attack vectors and techniques
- Better organized with clear categorization of payloads
- Regularly updated with new payloads and techniques
Cons of PayloadsAllTheThings
- May be overwhelming for beginners due to the sheer volume of information
- Less focus on specific fuzzing techniques compared to FuzzDB
Code Comparison
PayloadsAllTheThings (SQL Injection):
' OR '1'='1
' OR 1=1--
' UNION SELECT NULL,NULL,NULL--
FuzzDB (SQL Injection):
'
"
1'1
1 exec sp_
Both repositories provide valuable resources for security testing and penetration testing. PayloadsAllTheThings offers a wider range of attack vectors and payloads, making it suitable for more advanced users and comprehensive security assessments. FuzzDB, on the other hand, focuses more on fuzzing techniques and may be more approachable for beginners.
PayloadsAllTheThings is actively maintained and frequently updated, ensuring users have access to the latest attack techniques. FuzzDB, while still useful, may not be as up-to-date in some areas.
Ultimately, both repositories can be valuable tools in a security professional's arsenal, and using them in combination can provide a more robust testing approach.
A collection of Burpsuite Intruder payloads, BurpBounty payloads, fuzz lists, malicious file uploads and web pentesting methodologies and checklists.
Pros of IntruderPayloads
- More focused on specific attack vectors and techniques
- Includes custom payloads for various web application vulnerabilities
- Regularly updated with new payloads and attack patterns
Cons of IntruderPayloads
- Smaller overall collection compared to FuzzDB
- Less organized structure, making it harder to navigate
- Limited documentation on payload usage and effectiveness
Code Comparison
FuzzDB example (SQL injection):
' OR '1'='1
' OR 1=1--
' UNION SELECT NULL,NULL,NULL--
IntruderPayloads example (SQL injection):
' OR 1=1-- -
' UNION ALL SELECT NULL,NULL,NULL,NULL--
' AND 1=0 UNION ALL SELECT 'INJ','ECT','ION',NULL--
Both repositories provide valuable resources for security testing and penetration testing. FuzzDB offers a more comprehensive and well-organized collection, while IntruderPayloads focuses on specific attack vectors with custom payloads. The choice between the two depends on the user's specific needs and preferences in terms of payload variety, organization, and update frequency.
Web application fuzzer
Pros of wfuzz
- More versatile and feature-rich fuzzing tool
- Supports multiple protocols (HTTP, HTTPS, FTP, etc.)
- Offers advanced filtering and payload processing capabilities
Cons of wfuzz
- Steeper learning curve due to more complex functionality
- Requires Python installation and dependencies
- May be overkill for simple fuzzing tasks
Code comparison
wfuzz:
wfuzz -c -z file,wordlist/general/common.txt --hc 404 http://example.com/FUZZ
fuzzdb:
for word in $(cat fuzzdb/discovery/predictable-filepaths/filename-dirname-bruteforce.txt); do
curl -s -o /dev/null -w "%{http_code}" http://example.com/$word
done
Summary
wfuzz is a more powerful and flexible fuzzing tool, offering support for various protocols and advanced features. However, it comes with a steeper learning curve and requires Python setup. fuzzdb, on the other hand, is primarily a collection of fuzzing payloads and patterns, which can be easily integrated into custom scripts or other tools. It's simpler to use but less feature-rich compared to wfuzz. The choice between the two depends on the specific requirements of your fuzzing project and your level of expertise.
The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.
Pros of big-list-of-naughty-strings
- Focused specifically on edge-case strings for input validation testing
- Well-organized and categorized list of problematic strings
- Regularly updated with community contributions
Cons of big-list-of-naughty-strings
- Limited scope compared to fuzzdb's comprehensive security testing resources
- Lacks attack payloads and other security-specific test cases
- No built-in tools or scripts for automated testing
Code Comparison
big-list-of-naughty-strings:
undefined
undef
null
NULL
(null)
nil
NIL
true
false
True
False
fuzzdb:
<script>alert(1)</script>
"><script>alert(1)</script>
'><script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg/onload=alert(1)>
The code snippets demonstrate the difference in focus between the two projects. big-list-of-naughty-strings concentrates on problematic input strings, while fuzzdb includes more diverse security-related payloads and attack vectors.
Both repositories serve valuable purposes in software testing and security. big-list-of-naughty-strings is ideal for general input validation testing, while fuzzdb offers a broader range of resources for comprehensive security testing and penetration testing scenarios.
🎯 SQL Injection Payload List
Pros of sql-injection-payload-list
- Focused specifically on SQL injection payloads, providing a comprehensive collection
- Well-organized with payloads categorized by database type and injection technique
- Regularly updated with new and relevant SQL injection payloads
Cons of sql-injection-payload-list
- Limited scope compared to FuzzDB, which covers a broader range of security testing scenarios
- Lacks additional resources like attack pattern dictionaries and web-focused test cases
- May not be as extensively tested or vetted as FuzzDB
Code Comparison
sql-injection-payload-list:
' OR '1'='1
' OR '1'='1'--
' OR '1'='1'#
' OR '1'='1'/*
FuzzDB:
'
"
1'1
1 exec sp_ (or exec xp_)
1 and 1=1
1' and 1=(select count(*) from tablenames); --
Both repositories provide SQL injection payloads, but FuzzDB offers a wider variety of attack vectors and testing scenarios. sql-injection-payload-list focuses solely on SQL injection, providing a more extensive collection of payloads specific to this attack type. FuzzDB, on the other hand, includes payloads for various security testing purposes beyond just SQL injection.
While sql-injection-payload-list excels in its specialized focus, FuzzDB offers a more comprehensive toolkit for security testing across different domains. The choice between the two depends on the specific needs of the user and the scope of their security testing efforts.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
FuzzDB was created to increase the likelihood of finding application security vulnerabilities through dynamic application security testing. It's the first and most comprehensive open dictionary of fault injection patterns, predictable resource locations, and regex for matching server responses.
Attack Patterns -
FuzzDB contains comprehensive lists of attack payload primitives for fault injection testing.
These patterns, categorized by attack and where appropriate platform type, are known to cause issues like OS command injection, directory listings, directory traversals, source exposure, file upload bypass, authentication bypass, XSS, http header crlf injections, SQL injection, NoSQL injection, and more. For example, FuzzDB catalogs 56 patterns that can potentially be interpreted as a null byte and contains lists of commonly used methods such as "get, put, test," and name-value pairs than trigger debug modes.
Discovery -
The popularity of standard software packaging distribution formats and installers resulted in resources like logfiles and administrative directories frequently being located in a small number of predictable locations.
FuzzDB contains a comprehensive dictionary, sorted by platform type, language, and application, making brute force testing less brutish.
https://github.com/fuzzdb-project/fuzzdb/tree/master/discovery
Response Analysis -
Many interesting server responses are predictable strings.
FuzzDB contains a set of regex pattern dictionaries to match against server responses. In addition to common server error messages, FuzzDB contains regex for credit cards, social security numbers, and more.
Other useful stuff - Webshells in different languages, common password and username lists, and some handy wordlists.
Documentation -
Many directories contain a README.md file with usage notes.
A collection of documentation from around the web that is helpful for using FuzzDB to construct test cases is also included.
Usage tips for pentesting with FuzzDB
https://github.com/fuzzdb-project/fuzzdb/wiki/usagehints
How people use FuzzDB
FuzzDB is like an application security scanner, without the scanner. Some ways to use FuzzDB:
- Website and application service black-box penetration testing with
- OWASP Zap proxy's FuzzDB Zap Extension
- Burp Proxy's intruder tool and scanner
- PappyProxy, a console-based intercepting proxy
- To identify interesting service responses using grep patterns for PII, credit card numbers, error messages, and more
- Inside custom tools for testing software and application protocols
- Crafting security test cases for GUI or command line software with standard test automation tools
- Incorporating into other Open Source software or commercial products
- In training materials and documentation
- To learn about software exploitation techniques
- To improve your security testing product or service
How were the patterns collected?
Many, many hours of research and pentesting. And
- analysis of default app installs
- analysis of system and application documentation
- analysis of error messages
- researching old web exploits for repeatable attack strings
- scraping scanner payloads from http logs
- various books, articles, blog posts, mailing list threads
- other open source fuzzers and pentest tools and the input of contributors: https://github.com/fuzzdb-project/fuzzdb/graphs/contributors
Places you can find FuzzDB
Other security tools and projects that incorporate FuzzzDB in whole or part
- OWASP Zap Proxy fuzzdb plugin https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
- SecLists https://github.com/danielmiessler/SecLists
- TrustedSec Pentesters Framework https://github.com/trustedsec/ptf
- Rapid7 Metasploit https://github.com/rapid7/metasploit-framework
- Portswigger Burp Suite http://portswigger.net
- Protofuzz https://github.com/trailofbits/protofuzz
- BlackArch Linux https://www.blackarch.org/
- ArchStrike Linux https://archstrike.org/
Download
Preferred method is to check out sources via git, new payloads are added frequently
git clone https://github.com/fuzzdb-project/fuzzdb.git --depth 1
While in the FuzzDB dir, you can update your local repo with the command
git pull
This Stackoverflow gives ideas on how to keep a local repository tidy: https://stackoverflow.com/questions/38171899/how-to-reduce-the-depth-of-an-existing-git-clone/46004595#46004595
You can also browse the FuzzDB github sources and there is always a fresh zip file
Note: Some antivirus/antimalware software will alert on FuzzDB. To resolve, the filepath should be whitelisted. There is nothing in FuzzDB that can harm your computer as-is, however due to the risk of local file include attacks it's not recommended to store this repository on a server or other important system. Use at your own risk.
Who
FuzzDB was created by Adam Muntner (amuntner @ gmail.com) FuzzDB (c) Copyright Adam Muntner, 2010-2019 Portions copyrighted by others, as noted in commit comments and README.md files.
The FuzzDB license is New BSD and Creative Commons by Attribution. The ultimate goal of this project is to make the patterns contained within obsolete. If you use this project in your work, research, or commercial product, you are required to cite it. That's it. I always enjoy hearing about how people are using it to find an interesting bug or in a tool, send me an email and let me know.
Submissions are always welcome!
Official FuzzDB project page: https://github.com/fuzzdb-project/fuzzdb/
Top Related Projects
SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.
A list of useful payloads and bypass for Web Application Security and Pentest/CTF
A collection of Burpsuite Intruder payloads, BurpBounty payloads, fuzz lists, malicious file uploads and web pentesting methodologies and checklists.
Web application fuzzer
The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.
🎯 SQL Injection Payload List
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot