Top Related Projects
Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.
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.
Quick Overview
Hammer is a JavaScript library for building touch-based gestures and multi-touch interactions. It simplifies the process of recognizing various touch events and gestures on both mobile and desktop devices, providing a unified API for handling user interactions across different platforms.
Pros
- Cross-platform compatibility (works on both mobile and desktop)
- Supports a wide range of gestures (tap, pan, pinch, rotate, swipe)
- Customizable and extensible with custom gestures
- Lightweight and performant
Cons
- Learning curve for developers new to gesture recognition
- May have occasional conflicts with native browser gestures
- Limited support for older browsers
- Requires careful implementation to ensure accessibility
Code Examples
- Basic tap recognition:
const hammer = new Hammer(element);
hammer.on('tap', function(ev) {
console.log('Tap detected');
});
- Recognizing a pinch gesture:
const hammer = new Hammer(element);
hammer.get('pinch').set({ enable: true });
hammer.on('pinch', function(ev) {
console.log('Pinch detected with scale:', ev.scale);
});
- Implementing a swipe gesture:
const hammer = new Hammer(element);
hammer.on('swipe', function(ev) {
console.log('Swipe detected in direction:', ev.direction);
if (ev.direction === Hammer.DIRECTION_LEFT) {
// Handle left swipe
} else if (ev.direction === Hammer.DIRECTION_RIGHT) {
// Handle right swipe
}
});
Getting Started
To start using Hammer.js in your project:
-
Install Hammer.js via npm:
npm install hammerjs
-
Import Hammer in your JavaScript file:
import Hammer from 'hammerjs';
-
Create a Hammer instance on an element:
const element = document.getElementById('myElement'); const hammer = new Hammer(element);
-
Add event listeners for desired gestures:
hammer.on('pan', handlePan); hammer.on('swipe', handleSwipe);
Now you're ready to start recognizing gestures in your web application!
Competitor Comparisons
Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.
Pros of FuzzDB
- Larger and more comprehensive database of fuzzing payloads
- More actively maintained with frequent updates
- Better organized directory structure for easier navigation
Cons of FuzzDB
- Lacks built-in fuzzing tools or automation scripts
- May require more manual effort to integrate into existing workflows
- Can be overwhelming for beginners due to its extensive collection
Code Comparison
FuzzDB (attack pattern example):
<script>alert(1)</script>
<img src=x onerror=alert(1)>
"><script>alert(1)</script>
Hammer (fuzzing rule example):
class SQLi(Rule):
def __init__(self):
super(SQLi, self).__init__()
self.name = "SQL Injection"
self.payloads = ["'", "\"", "1=1", "1=1--"]
FuzzDB focuses on providing a vast collection of attack patterns and payloads, while Hammer includes both payloads and fuzzing logic in a more structured, programmatic approach. FuzzDB offers more flexibility for manual testing and integration into various tools, whereas Hammer provides a more complete fuzzing framework out of the box.
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
- Comprehensive collection of multiple types of lists for security testing
- Regularly updated with community contributions
- Well-organized directory structure for easy navigation
Cons of SecLists
- Large repository size may be overwhelming for some users
- Requires manual filtering for specific use cases
- Not focused on a single specific security testing tool or methodology
Code Comparison
SecLists (example from passwords/common-credentials/10-million-password-list-top-1000000.txt):
123456
password
12345678
qwerty
123456789
Hammer (example from lib/core/payload/weblogic.py):
payload = '''
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java><java version="1.4.0" class="java.beans.XMLDecoder">
Summary
SecLists is a comprehensive collection of security-related lists, while Hammer is a penetration testing framework. SecLists offers a wide range of resources for various security testing scenarios, but may require more manual filtering. Hammer provides a more focused tool for specific penetration testing tasks, with built-in payloads and modules.
A list of useful payloads and bypass for Web Application Security and Pentest/CTF
Pros of PayloadsAllTheThings
- Comprehensive collection of payloads for various security testing scenarios
- Well-organized structure with categorized payloads
- Regularly updated with contributions from the security community
Cons of PayloadsAllTheThings
- Primarily a reference repository, not a standalone tool
- Requires manual implementation of payloads in testing scenarios
- May overwhelm beginners with the sheer volume of information
Code Comparison
PayloadsAllTheThings (SQL Injection example):
' OR '1'='1
' OR 1=1--
' UNION SELECT username, password FROM users--
Hammer (DoS attack example):
def hammer():
while True:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, int(port)))
s.sendto(("GET /" + host + " HTTP/1.1\r\n").encode('ascii'), (host, int(port)))
s.close()
except:
s.close()
PayloadsAllTheThings focuses on providing a wide array of payload examples for various attack vectors, while Hammer is a specific DoS attack tool. PayloadsAllTheThings offers more versatility in terms of security testing scenarios, but Hammer provides a ready-to-use implementation for its specific purpose.
A collection of Burpsuite Intruder payloads, BurpBounty payloads, fuzz lists, malicious file uploads and web pentesting methodologies and checklists.
Pros of IntruderPayloads
- More comprehensive collection of payloads for various attack vectors
- Regularly updated with new payloads and techniques
- Organized into categories for easier navigation and use
Cons of IntruderPayloads
- Lacks built-in automation tools for payload delivery
- May require more manual effort to integrate with other tools
- Potentially overwhelming for beginners due to the large number of payloads
Code Comparison
IntruderPayloads (SQL Injection payload example):
' UNION SELECT NULL,NULL,NULL,NULL,NULL-- -
' UNION SELECT @@version,NULL,NULL,NULL,NULL-- -
Hammer (HTTP flood attack example):
def hammer():
while True:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, int(port)))
s.sendto(("GET /" + host + " HTTP/1.1\r\n").encode('ascii'), (host, int(port)))
s.close()
except:
s.close()
IntruderPayloads focuses on providing a wide range of payload options for various attack scenarios, while Hammer is designed as a specific DoS attack tool. IntruderPayloads offers more flexibility but requires integration with other tools, whereas Hammer provides a ready-to-use solution for its intended purpose.
Web application fuzzer
Pros of wfuzz
- More actively maintained with regular updates and contributions
- Extensive documentation and user guides available
- Supports a wider range of fuzzing techniques and payloads
Cons of wfuzz
- Steeper learning curve due to more complex features
- Requires more system resources for advanced operations
- Less user-friendly for beginners compared to Hammer's simplicity
Code Comparison
wfuzz:
from wfuzz.fuzzobjects import FuzzResult
from wfuzz.options import FuzzOptions
from wfuzz.api import fuzz
opts = FuzzOptions(url="http://example.com/FUZZ", payloads=[("file", dict(fn="wordlist.txt"))])
for r in fuzz(opts):
print(r)
Hammer:
from hammer import Hammer
hammer = Hammer()
hammer.load_targets("targets.txt")
hammer.load_payloads("payloads.txt")
hammer.start()
The code comparison shows that wfuzz offers more granular control over fuzzing options and payloads, while Hammer provides a simpler, more straightforward approach to setting up and executing fuzzing tasks. wfuzz's code demonstrates its flexibility in configuring fuzzing parameters, whereas Hammer's code highlights its ease of use for basic fuzzing operations.
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
- Extensive collection of edge-case strings for testing input validation
- Well-organized and categorized list of problematic strings
- Regularly updated with community contributions
Cons of big-list-of-naughty-strings
- Limited to string-based testing, not a comprehensive security testing tool
- Requires manual implementation in testing scenarios
- May not cover all possible edge cases for specific applications
Code Comparison
big-list-of-naughty-strings:
undefined
undefined
NaN
null
NULL
(null)
nil
NIL
true
false
hammer:
def sql_injection(self):
payloads = [
"' OR '1'='1",
"' OR '1'='1' --",
"' OR '1'='1' #",
"' OR '1'='1'/*",
"' UNION SELECT NULL, NULL, NULL--"
]
# ... (code to execute payloads)
big-list-of-naughty-strings provides a comprehensive list of problematic strings, while hammer offers a more focused set of security testing tools, including SQL injection payloads. big-list-of-naughty-strings is better suited for general input validation testing, whereas hammer is designed specifically for web application security testing.
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
- How to use Hammer
Watch it
- Fork it...
Top Related Projects
Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.
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.
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