├── http ├── header-brute.yaml ├── crlf-scan.yaml ├── xss-wayback.yaml ├── open-redirect.yaml └── gau-check-html-reflection.yaml ├── recon ├── extract-urls-from-apk.yaml ├── check-alive-ips.yaml ├── generate-dns-wordlist.yaml └── mutate-subdomains-radamsa.yaml └── README.md /http/header-brute.yaml: -------------------------------------------------------------------------------- 1 | vars: 2 | URLS_FILE: "urls.txt" 3 | HEADERS_FILE: "headers.txt" 4 | OUTPUT_DIR: "headerpwn-results" 5 | USAGE: "rayder -w workflow.yaml URLS_FILE=urls.txt HEADERS_FILE=headers.txt" 6 | 7 | parallel: false 8 | modules: 9 | - name: headerpwn 10 | cmds: 11 | - mkdir -p {{OUTPUT_DIR}} 12 | - xargs -a {{URLS_FILE}} -n 1 -P 10 headerpwn -headers {{HEADERS_FILE}} -q -url | tee {{OUTPUT_DIR}}/headerpwn_results.txt 13 | silent: false -------------------------------------------------------------------------------- /recon/extract-urls-from-apk.yaml: -------------------------------------------------------------------------------- 1 | vars: 2 | APK: "app.apk" 3 | OUTPUT_DIR: "apk-urls" 4 | USAGE: "rayder -w workflow.yaml APK=app.apk" 5 | 6 | parallel: false 7 | 8 | modules: 9 | 10 | - name: decompile-apk 11 | silent: false 12 | cmds: 13 | - mkdir -p {{OUTPUT_DIR}} 14 | - apktool d {{APK}} -o {{OUTPUT_DIR}}/apk-decompiled 15 | 16 | - name: extract-urls 17 | silent: false 18 | cmds: 19 | - grep -roIhE 'http(s)?://[^\s"]+' {{OUTPUT_DIR}}/apk-decompiled | sort -u | while read -r line; do python3 -c "from urllib.parse import urlparse; result = urlparse('$line'); print('$line') if result.scheme and result.netloc else None"; done | tee {{OUTPUT_DIR}}/extracted-urls.txt -------------------------------------------------------------------------------- /recon/check-alive-ips.yaml: -------------------------------------------------------------------------------- 1 | vars: 2 | TARGETS_FILE: "targets.txt" 3 | OUTPUT_DIR: "masscan-results" 4 | RATE: "20000" 5 | USAGE: "rayder -w workflow.yaml TARGETS_FILE=targets.txt" 6 | 7 | parallel: false 8 | modules: 9 | - name: masscan-scan 10 | cmds: 11 | - mkdir -p {{OUTPUT_DIR}} 12 | - masscan -p80,443 -iL {{TARGETS_FILE}} -oG {{OUTPUT_DIR}}/masscan_results.txt --rate={{RATE}} 13 | silent: true 14 | - name: generate-output 15 | cmds: 16 | - awk -F'\t' '/Ports:.*443\/open/ { split($2, host, " "); print "https://" host[2] } /Ports:.*80\/open/ { split($2, host, " "); print "http://" host[2] }' {{OUTPUT_DIR}}/masscan_results.txt > {{OUTPUT_DIR}}/alive-ips.txt 17 | silent: true 18 | - name: saving-results 19 | cmds: 20 | - echo 'Results saved in {{OUTPUT_DIR}}/alive-ips.txt' 21 | - rm {{OUTPUT_DIR}}/masscan_results.txt 22 | silent: false -------------------------------------------------------------------------------- /http/crlf-scan.yaml: -------------------------------------------------------------------------------- 1 | vars: 2 | DOMAIN: "example.tld" 3 | OUTPUT_DIR: "crlf-vuln-results" 4 | USAGE: "rayder -w workflow.yaml DOMAIN=example.tld" 5 | 6 | parallel: false 7 | 8 | modules: 9 | - name: subdomain-discovery 10 | silent: true 11 | cmds: 12 | - mkdir -p {{OUTPUT_DIR}} 13 | - subfinder -d {{DOMAIN}} -silent | tee {{OUTPUT_DIR}}/subdomains.txt 14 | 15 | - name: http-probing 16 | silent: true 17 | cmds: 18 | - httpx -silent -threads 100 < {{OUTPUT_DIR}}/subdomains.txt | tee {{OUTPUT_DIR}}/http-probe-results.txt 19 | 20 | - name: crlf-vulnerability-check 21 | silent: true 22 | cmds: 23 | - cat {{OUTPUT_DIR}}/http-probe-results.txt | crlfuzz -c 50 -o {{OUTPUT_DIR}}/crlf-vuln-results.txt 24 | 25 | - name: cleaning-temp-files 26 | silent: false 27 | cmds: 28 | - rm {{OUTPUT_DIR}}/subdomains.txt 29 | - rm {{OUTPUT_DIR}}/http-probe-results.txt -------------------------------------------------------------------------------- /http/xss-wayback.yaml: -------------------------------------------------------------------------------- 1 | vars: 2 | DOMAIN: "" 3 | OUTPUT_DIR: "results" 4 | USAGE: "rayder -w workflow.yaml DOMAIN=example.tld" 5 | parallel: false 6 | modules: 7 | - name: fetch-urls-from-wayback 8 | cmds: 9 | - mkdir -p {{OUTPUT_DIR}} 10 | - echo {{DOMAIN}} | waybackurls | grep '=' > {{OUTPUT_DIR}}/filtered-urls.txt 11 | silent: false 12 | 13 | - name: replace-querystring 14 | cmds: 15 | - cat {{OUTPUT_DIR}}/filtered-urls.txt | qsreplace "" > {{OUTPUT_DIR}}/replaced-urls.txt 16 | silent: true 17 | 18 | - name: checking-reflection 19 | cmds: 20 | - cat {{OUTPUT_DIR}}/replaced-urls.txt | httpx -silent -threads 300 -ms "" > {{OUTPUT_DIR}}/final-results.txt 21 | silent: true 22 | 23 | - name: cleaning-temp-files 24 | cmds: 25 | - rm {{OUTPUT_DIR}}/filtered-urls.txt {{OUTPUT_DIR}}/replaced-urls.txt 26 | silent: true -------------------------------------------------------------------------------- /http/open-redirect.yaml: -------------------------------------------------------------------------------- 1 | vars: 2 | DOMAIN: "" 3 | OUTPUT_DIR: "open-redirect-results" 4 | USAGE: "rayder -w workflow.yaml DOMAIN=example.tld" 5 | parallel: false 6 | modules: 7 | - name: fetching-urls 8 | silent: true 9 | cmds: 10 | - mkdir -p {{OUTPUT_DIR}} 11 | - paramspider -d {{DOMAIN}} 12 | - mv results/{{DOMAIN}}.txt {{OUTPUT_DIR}}/{{DOMAIN}}.txt 13 | 14 | - name: processing-urls 15 | cmds: 16 | - cat {{OUTPUT_DIR}}/{{DOMAIN}}.txt | grep '=' > {{OUTPUT_DIR}}/{{DOMAIN}}-parameters.txt 17 | silent: true 18 | 19 | - name: exeuting-openredirex 20 | cmds: 21 | - cat {{OUTPUT_DIR}}/{{DOMAIN}}-parameters.txt | openredirex | grep 'FOUND' | tee {{OUTPUT_DIR}}/{{DOMAIN}}-open.txt 22 | silent: true 23 | 24 | - name: cleaning-temp-files 25 | cmds: 26 | - rm {{OUTPUT_DIR}}/{{DOMAIN}}-parameters.txt 27 | - rm {{OUTPUT_DIR}}/{{DOMAIN}}.txt 28 | silent: true 29 | -------------------------------------------------------------------------------- /recon/generate-dns-wordlist.yaml: -------------------------------------------------------------------------------- 1 | vars: 2 | DOMAIN: "" 3 | OUTPUT_DIR: "wordlist-results" 4 | USAGE: "rayder -w workflow.yaml DOMAIN=example.tld" 5 | parallel: false 6 | modules: 7 | - name: getting-subdomains 8 | silent: true 9 | cmds: 10 | - mkdir -p {{OUTPUT_DIR}} 11 | - subfinder -d {{DOMAIN}} -silent > {{OUTPUT_DIR}}/{{DOMAIN}}-subdomains.txt 12 | 13 | - name: extracting-words 14 | cmds: 15 | - cat {{OUTPUT_DIR}}/{{DOMAIN}}-subdomains.txt | awk -F'.' '{print $(NF-2)}' > {{OUTPUT_DIR}}/{{DOMAIN}}-words.txt 16 | silent: true 17 | 18 | - name: generating-wordlist-using-dnsgen 19 | cmds: 20 | - dnsgen {{OUTPUT_DIR}}/{{DOMAIN}}-subdomains.txt -w {{OUTPUT_DIR}}/{{DOMAIN}}-words.txt > {{OUTPUT_DIR}}/{{DOMAIN}}-wordlist.txt 21 | silent: true 22 | 23 | - name: cleaning-temp-files 24 | cmds: 25 | - rm {{OUTPUT_DIR}}/{{DOMAIN}}-subdomains.txt 26 | - rm {{OUTPUT_DIR}}/{{DOMAIN}}-words.txt 27 | silent: true 28 | -------------------------------------------------------------------------------- /http/gau-check-html-reflection.yaml: -------------------------------------------------------------------------------- 1 | #OFJAAAH 2 | vars: 3 | DOMAIN: "" 4 | OUTPUT_DIR: "gau-check-html-reflection" 5 | USAGE: "rayder -w workflow.yaml DOMAIN=example.tld" 6 | parallel: false 7 | modules: 8 | - name: fetch-urls-from-gau 9 | cmds: 10 | - mkdir -p {{OUTPUT_DIR}} 11 | - echo {{DOMAIN}} | gau | grep '=' > {{OUTPUT_DIR}}/filtered-urls.txt 12 | silent: false 13 | 14 | - name: replace-querystring-gau 15 | cmds: 16 | - cat {{OUTPUT_DIR}}/filtered-urls.txt | qsreplace '">