Jaeles Security Scanner is a powerful web application vulnerability scanning tool designed for penetration testers and web application developers to assess the security of their web applications. Its versatile nature allows for both automated scanning and the creation of customized signatures suited to specific testing scenarios.
Table of Contents
- Installation
- Basic Usage
- Signatures Explained
- Writing Custom Signatures
- Example Signatures
- Troubleshooting Tips
- References
- Conclusive Summary
Installation
To get started with Jaeles, you can install it by cloning the GitHub repository at https://github.com/jaeles-project/jaeles. Ensure you have Go installed on your system and run the following commands to install Jaeles:
git clone https://github.com/jaeles-project/jaeles.git cd jaeles go build
After the build process, an executable will be available in the directory which you can add to your system path for easy access.
Basic Usage
Jaeles Scanner is a command-line tool, to use it, simply enter jaeles commands into your terminal. Here’s how to perform a basic scan:
jaeles scan -u http://example.com
This command will run Jaeles scanner using the default signatures.
- For scanning a list of URLs with a specific signature:
jaeles scan -s <signature> -U <url-file.txt>
Where <signature>
is the path to a signature file and <url-file.txt>
contains a list of URLs to test.
- Performing Concurrent Scans
jaeles scan -c 50 -s /path/to/signatures/* -U targets.txt
- Specifying Custom Headers
jaeles scan --headers 'Authorization: Bearer TOKEN' -s /path/to/signatures/* -u 'http://example.com'
Signatures Explained
Signatures are the core of Jaeles Security Scanner. They define the actual tests to be performed on the target applications. These signatures are YAML files that describe the request to be made and the patterns to look for in the response. These signatures help in identifying common vulnerabilities like SQL Injection, Cross-Site Scripting (XSS), Local File Inclusion (LFI), and many others. Plenty of signatures are located in https://github.com/jaeles-project/jaeles-signatures .
Writing Custom Signatures
Custom signatures allow for more targeted scanning. A signature in Jaeles is written in YAML format and define how to send the request and analyze the response. Here is the basic structure of a signature:
id: Name of the signature info: name: Name of the vulnerability risk: Risk level requests: - method: GET path: "{{.BaseURL}}/specific-endpoint" headers: User-Agent: "Your User Agent" detections: - type: regex pattern: "specific-pattern"
Each signature must include an id
, some info
about the vulnerability, and at least one request. The detections
specify what to look for in the response.
Example Signatures
Example 1: Basic GET Request
id: basic-get-example info: name: Example GET request risk: Low requests: - method: GET path: "{{.BaseURL}}/api/v1/info" detections: - type: status pattern: 200
This basic signature sends a GET request to the /api/v1/info
endpoint and checks if the response status code is 200.
Example 2: Pattern Detection
id: pattern-detect-example info: name: Detect Specific Pattern in Response risk: High requests: - method: GET path: "{{.BaseURL}}/login" detections: - type: regex pattern: "Welcome, admin"
This signature detects if the ‘Welcome, admin’ text is present in the response, indicating a successful login or information disclosure.
Example 3: POST Request with Data
id: post-data-example info: name: POST Request with Data risk: Medium requests: - method: POST path: "{{.BaseURL}}/submit-form" body: "username=admin&password=admin" detections: - type: word pattern: "Thank you for submitting the form"
Here, a POST request submits data to a form, and the presence of the acknowledgment message is checked.
Example 4: Header Injection
id: header-injection-example info: name: Header Injection Vulnerability risk: Critical requests: - method: GET path: "{{.BaseURL}}/header-test" headers: X-Injection-Test: "test-payload" detections: - type: header part: X-Injection-Test pattern: "test-payload"
This signature tests for Header Injection by sending a custom header and looking for it in the response.
Troubleshooting Tips
If you are experiencing issues with Jaeles, here are some troubleshooting tips to help you resolve them:
- Ensure Jaeles is correctly installed and the executable is in your system path.
- Check your network connection and the target URL to rule out connectivity issues.
- Make sure the syntax of your custom signature is correct and follows the YAML format.
- Review the log files that Jaeles generates for insight into the error messages.
References
Conclusive Summary
Jaeles Security Scanner is a versatile and potent tool for discovering vulnerabilities in web applications. By understanding how to install, execute basic scans, and write custom signatures, security professionals can utilize Jaeles to its full potential. As with any tool, practice and experience will ultimately lead to more efficient and effective usage. Remember to test responsibly and ethically, and refer to the tool’s documentation when in doubt.