Top Related Projects
Fast and customizable vulnerability scanner based on simple YAML based DSL.
Automatic SQL injection and database takeover tool
Nikto web server scanner
WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contact@wpscan.com
The ZAP by Checkmarx Core project
A Tool for Domain Flyovers
Quick Overview
Jaeles is an automated web application testing framework designed for security professionals. It allows users to create custom security tests using YAML-based signatures, making it flexible and extensible for various web application security testing scenarios.
Pros
- Highly customizable with YAML-based signatures
- Supports concurrent scanning for improved performance
- Integrates with other security tools and workflows
- Active community and regular updates
Cons
- Steep learning curve for creating custom signatures
- Limited documentation for advanced features
- May require additional tools for comprehensive testing
- Performance can be impacted when using complex signatures
Code Examples
- Basic scan using a built-in signature:
jaeles scan -u https://example.com -s "common/ssrf"
- Running a scan with custom signatures:
jaeles scan -u https://example.com -s "/path/to/custom/signatures/"
- Passive scanning with Burp Suite integration:
jaeles server -b http://127.0.0.1:8080
Getting Started
- Install Jaeles:
GO111MODULE=on go get github.com/jaeles-project/jaeles
- Update signatures:
jaeles config init
- Run a basic scan:
jaeles scan -u https://example.com -s "common/.*"
For more advanced usage and custom signature creation, refer to the official documentation on the GitHub repository.
Competitor Comparisons
Fast and customizable vulnerability scanner based on simple YAML based DSL.
Pros of Nuclei
- Larger and more active community, with more frequent updates and contributions
- Extensive template library covering a wide range of vulnerabilities and misconfigurations
- Better performance and scalability for large-scale scanning
Cons of Nuclei
- Steeper learning curve for creating custom templates
- Less flexibility in customizing the scanning engine compared to Jaeles
Code Comparison
Jaeles template example:
id: basic-xss
type: fuzz
payloads:
- "{{.payload}}"
requests:
- method: GET
redirect: false
url: >-
{{.BaseURL}}/?q={{.payload}}
Nuclei template example:
id: basic-xss
info:
name: Basic XSS Test
severity: medium
requests:
- method: GET
path:
- "{{BaseURL}}/?q={{payload}}"
payloads:
payload: helpers/payloads/xss.txt
Both tools use YAML-based templates, but Nuclei's syntax is more structured and offers built-in helper functions for payload generation. Jaeles provides more flexibility in request customization within the template itself.
Automatic SQL injection and database takeover tool
Pros of sqlmap
- More mature and widely used project with a larger community
- Extensive feature set for SQL injection detection and exploitation
- Supports a wide range of database management systems
Cons of sqlmap
- Focused solely on SQL injection, limiting its versatility for other types of security testing
- Can be more complex to use for beginners due to its numerous options and parameters
Code Comparison
sqlmap:
def checkDbms(self):
if Backend.getIdentifiedDbms():
return Backend.getIdentifiedDbms()
else:
return None
Jaeles:
func (r *Record) ParseResponse(resp *http.Response) error {
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return err
}
r.ResponseBody = string(body)
return nil
}
Summary
sqlmap is a specialized tool for SQL injection testing with a comprehensive feature set and wide database support. It benefits from a large community and extensive development history. However, its focus on SQL injection limits its versatility compared to Jaeles, which is a more general-purpose security testing framework.
Jaeles offers a broader scope for web security testing, including various vulnerability types beyond SQL injection. It provides a more flexible and extensible architecture, allowing users to create custom security checks. However, Jaeles may not match sqlmap's depth in SQL injection testing specifically.
The code snippets illustrate the different languages and approaches: sqlmap uses Python and focuses on database management system identification, while Jaeles employs Go and demonstrates HTTP response parsing functionality.
Nikto web server scanner
Pros of Nikto
- Mature and well-established tool with a large user base
- Extensive database of known vulnerabilities and misconfigurations
- Simple to use with a straightforward command-line interface
Cons of Nikto
- Slower scanning speed compared to Jaeles
- Less flexibility in customizing scan templates and workflows
- Limited support for modern web technologies and APIs
Code Comparison
Nikto (Perl):
sub nikto_headers {
my ($mark) = @_;
my %headers;
foreach my $header (split(/\n/, $mark->{'headers'})) {
my ($key, $value) = split(/:\s*/, $header, 2);
$headers{lc($key)} = $value;
}
return %headers;
}
Jaeles (Go):
func ParseHeaders(rawHeaders string) map[string]string {
headers := make(map[string]string)
for _, line := range strings.Split(rawHeaders, "\n") {
parts := strings.SplitN(line, ":", 2)
if len(parts) == 2 {
headers[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1])
}
}
return headers
}
Both code snippets demonstrate header parsing, but Jaeles uses Go's more modern and efficient approach, while Nikto relies on Perl's traditional syntax.
WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contact@wpscan.com
Pros of WPScan
- Specialized for WordPress security scanning, offering deep insights into WordPress-specific vulnerabilities
- Large, regularly updated database of WordPress vulnerabilities
- User-friendly CLI interface with extensive documentation
Cons of WPScan
- Limited to WordPress ecosystems, unlike Jaeles which is more versatile
- May require more frequent updates to maintain effectiveness against new WordPress vulnerabilities
- Less flexibility in customizing scan parameters compared to Jaeles
Code Comparison
WPScan (Ruby):
def scan_headers
puts 'Scanning headers...'
# Header scanning logic
end
Jaeles (Go):
func ScanHeaders(target string) {
fmt.Println("Scanning headers...")
// Header scanning logic
}
Key Differences
- Language: WPScan is written in Ruby, while Jaeles is written in Go
- Scope: WPScan focuses on WordPress, Jaeles is a general-purpose security testing framework
- Customization: Jaeles offers more flexibility with its signature-based approach
- Community: WPScan has a larger, more established community due to its WordPress focus
- Performance: Jaeles may have better performance due to Go's concurrent capabilities
Both tools are valuable for security testing, with WPScan excelling in WordPress environments and Jaeles offering broader applicability across various web applications.
The ZAP by Checkmarx Core project
Pros of ZAP
- More comprehensive and feature-rich web application security scanner
- Active community support and regular updates
- Extensive documentation and integration capabilities
Cons of ZAP
- Steeper learning curve due to its complexity
- Heavier resource consumption, especially for large-scale scans
Code Comparison
ZAP (Java):
public class ActiveScan extends AbstractHostPlugin {
@Override
public void scan() {
// Scanning logic
}
}
Jaeles (Go):
func (r *Runner) Scan() error {
// Scanning logic
return nil
}
Key Differences
- ZAP is a full-featured web application security scanner, while Jaeles focuses on automated web security testing
- ZAP offers a GUI and CLI, whereas Jaeles is primarily CLI-based
- ZAP has a larger user base and more extensive documentation
Use Cases
- ZAP: Comprehensive web application security testing, DAST, and penetration testing
- Jaeles: Lightweight, customizable security testing for specific scenarios or quick scans
Community and Support
- ZAP: Large, active community with regular updates and extensive third-party integrations
- Jaeles: Smaller but growing community, with a focus on flexibility and customization
A Tool for Domain Flyovers
Pros of Aquatone
- Specialized in web-based reconnaissance and screenshot capture
- User-friendly with a focus on visual output and reporting
- Integrates well with other tools in a security testing workflow
Cons of Aquatone
- More limited in scope compared to Jaeles' broader security scanning capabilities
- Less customizable and extensible for advanced users
- May require additional tools for comprehensive security assessments
Code Comparison
Aquatone (Go):
func takeScreenshot(url string, timeout time.Duration) (*[]byte, error) {
ctx, cancel := chromedp.NewContext(context.Background())
defer cancel()
ctx, cancel = context.WithTimeout(ctx, timeout)
defer cancel()
// ... (screenshot capture logic)
}
Jaeles (Go):
func (r *Record) Analyze() {
for _, sign := range r.Signs {
if sign.Condition != "" {
result := r.Condition(sign.Condition)
if result {
r.DetectVul(sign)
}
}
}
}
Summary
Aquatone excels in web reconnaissance and visual reporting, making it ideal for initial domain discovery and analysis. Jaeles offers a more comprehensive security scanning framework with greater customization options. While Aquatone focuses on capturing web assets visually, Jaeles provides deeper vulnerability detection capabilities. The choice between them depends on the specific requirements of the security assessment task at hand.
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
Jaeles is a powerful, flexible and easily extensible framework written in Go for building your own Web Application Scanner.
Installation
Download precompiled version here.
If you have a Go environment, make sure you have Go >= 1.17 with Go Modules enable and run the following command.
go install github.com/jaeles-project/jaeles@latest
Please visit the Official Documention for more details.
Note: Checkout Signatures Repo for install signature.
Usage
# Scan Usage example:
jaeles scan -s <signature> -u <url>
jaeles scan -c 50 -s <signature> -U <list_urls> -L <level-of-signatures>
jaeles scan -c 50 -s <signature> -U <list_urls>
jaeles scan -c 50 -s <signature> -U <list_urls> -p 'dest=xxx.burpcollaborator.net'
jaeles scan -c 50 -s <signature> -U <list_urls> -f 'noti_slack "{{.vulnInfo}}"'
jaeles scan -v -c 50 -s <signature> -U list_target.txt -o /tmp/output
jaeles scan -s <signature> -s <another-selector> -u http://example.com
jaeles scan -G -s <signature> -s <another-selector> -x <exclude-selector> -u http://example.com
cat list_target.txt | jaeles scan -c 100 -s <signature>
# Examples:
jaeles scan -s 'jira' -s 'ruby' -u target.com
jaeles scan -c 50 -s 'java' -x 'tomcat' -U list_of_urls.txt
jaeles scan -G -c 50 -s '/tmp/custom-signature/.*' -U list_of_urls.txt
jaeles scan -v -s '~/my-signatures/products/wordpress/.*' -u 'https://wp.example.com' -p 'root=[[.URL]]'
cat urls.txt | grep 'interesting' | jaeles scan -L 5 -c 50 -s 'fuzz/.*' -U list_of_urls.txt --proxy http://127.0.0.1:8080
jaeles server -s '/tmp/custom-signature/sensitive/.*' -L 2 --fi
More usage can be found here
Run with Docker
docker pull j3ssie/jaeles
docker run j3ssie/jaeles scan -s '<selector>' -u http://example.com
Showcases
Jenkins Gitlab XSS CVE-2020-2096 | Grafana DoS Probing CVE-2020-13379 |
---|---|
SolarWindsOrion LFI CVE-2020-10148 | Nginx Vhost XSS |
More showcase can be found here
HTML Report summary
Burp Integration
Plugin can be found here and Video Guide here
Mentions
My introduction slide about Jaeles
Planned Features
- Adding more signatures.
- Adding more input sources.
- Adding more APIs to get access to more properties of the request.
- Adding proxy plugins to directly receive input from browser of http client.
- Adding more action on Web UI.
- Integrate with many other tools.
Painless integrate Jaeles into your recon workflow?
This project was part of Osmedeus Engine. Check out how it was integrated at @OsmedeusEngine
Contribute
If you have some new idea about this project, issue, feedback or found some valuable tool feel free to open an issue for just DM me via @j3ssiejjj. Feel free to submit new signature to this repo.
Credits
-
Special thanks to chaitin team for sharing ideas to me for build the architecture.
-
React components is powered by Carbon and carbon-tutorial.
-
Awesomes artworks are powered by Freepik at flaticon.com.
In distributions
Contributors
Code Contributors
This project exists thanks to all the people who contribute. [Contribute].
Financial Contributors
Become a financial contributor and help us sustain our community. [Contribute]
Individuals
Organizations
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
License
Jaeles
is made with ⥠by @j3ssiejjj and it is released under the MIT license.
Donation
Top Related Projects
Fast and customizable vulnerability scanner based on simple YAML based DSL.
Automatic SQL injection and database takeover tool
Nikto web server scanner
WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contact@wpscan.com
The ZAP by Checkmarx Core project
A Tool for Domain Flyovers
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