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.
