Convert Figma logo to code with AI

jaeles-project logojaeles

The Swiss Army knife for automated Web Application Testing

2,153
318
2,153
33

Top Related Projects

20,301

Fast and customizable vulnerability scanner based on simple YAML based DSL.

32,268

Automatic SQL injection and database takeover tool

8,470

Nikto web server scanner

8,559

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

12,618

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

  1. Basic scan using a built-in signature:
jaeles scan -u https://example.com -s "common/ssrf"
  1. Running a scan with custom signatures:
jaeles scan -u https://example.com -s "/path/to/custom/signatures/"
  1. Passive scanning with Burp Suite integration:
jaeles server -b http://127.0.0.1:8080

Getting Started

  1. Install Jaeles:
GO111MODULE=on go get github.com/jaeles-project/jaeles
  1. Update signatures:
jaeles config init
  1. 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

20,301

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.

32,268

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.

8,470

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.

8,559

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.

12,618

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Jaeles

Release Documentation Software License

Jaeles is a powerful, flexible and easily extensible framework written in Go for building your own Web Application Scanner.

Architecture

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

asciicast Jenkins Gitlab XSS CVE-2020-2096asciicast Grafana DoS Probing CVE-2020-13379
asciicast SolarWindsOrion LFI CVE-2020-10148asciicast Nginx Vhost XSS

More showcase can be found here


HTML Report summary

HTML Report

Burp Integration

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?

OsmedeusEngine

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

In distributions

Packaging status

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

paypal

"Buy Me A Coffee"