diff --git a/default-logins/activemq/activemq-default-login.yaml b/default-logins/activemq/activemq-default-login.yaml
new file mode 100644
index 0000000000..c6546895c8
--- /dev/null
+++ b/default-logins/activemq/activemq-default-login.yaml
@@ -0,0 +1,22 @@
+id: activemq-default-login
+
+info:
+ name: Apache ActiveMQ Default Credentials
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/admin/'
+ headers:
+ Authorization: "Basic YWRtaW46YWRtaW4="
+ matchers:
+ - type: word
+ words:
+ - 'Welcome to the Apache ActiveMQ Console of '
+ - 'Broker
'
+ condition: and
+
+ # We could add a request condition block to only send this request if the
+ # site response URL had activeMQ broker stuff in the source.
diff --git a/default-logins/ambari-default-credentials.yaml b/default-logins/ambari-default-credentials.yaml
new file mode 100755
index 0000000000..fe461837dd
--- /dev/null
+++ b/default-logins/ambari-default-credentials.yaml
@@ -0,0 +1,19 @@
+id: ambari-default-credentials
+
+info:
+ name: Apache Ambari Default Credentials
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/api/v1/users/admin?fields=*,privileges/PrivilegeInfo/cluster_name,privileges/PrivilegeInfo/permission_name'
+ headers:
+ Authorization: "Basic YWRtaW46YWRtaW4="
+ matchers:
+ - type: word
+ words:
+ - '"Users" : {'
+ - 'AMBARI.'
+ condition: and
\ No newline at end of file
diff --git a/default-logins/ofbiz-default-credentials.yaml b/default-logins/ofbiz-default-credentials.yaml
new file mode 100755
index 0000000000..8f9d9c1374
--- /dev/null
+++ b/default-logins/ofbiz-default-credentials.yaml
@@ -0,0 +1,20 @@
+id: ofbiz-default-credentials
+
+info:
+ name: Apache OfBiz Default Credentials
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: POST
+ path:
+ - '{{BaseURL}}/control/login'
+ headers:
+ Content-Type: application/x-www-form-urlencoded
+ body: USERNAME=admin&PASSWORD=ofbiz&FTOKEN=&JavaScriptEnabled=Y
+ matchers:
+ - type: word
+ words:
+ - "ofbiz-pagination-template"
+ - "Powered by OFBiz"
+ condition: and
\ No newline at end of file
diff --git a/default-logins/zabbix-default-credentials.yaml b/default-logins/zabbix-default-credentials.yaml
new file mode 100755
index 0000000000..5202d88398
--- /dev/null
+++ b/default-logins/zabbix-default-credentials.yaml
@@ -0,0 +1,22 @@
+id: zabbix-default-credentials
+
+info:
+ name: Zabbix Default Credentials
+ author: Ice3man
+ severity: critical
+
+requests:
+ - method: POST
+ path:
+ - '{{BaseURL}}/index.php'
+ headers:
+ - Content-Type: application/x-www-form-urlencoded; charset=UTF-8
+ - X-Requested-With: XMLHttpRequest
+ body: name=Admin&password=zabbix&autologin=1&enter=Sign+in
+ matchers-condition: and
+ matchers:
+ - type: word
+ words:
+ - "zabbix.php?action=dashboard.view"
+ - type: status
+ status: 302
\ No newline at end of file
diff --git a/exposed-panels/active-admin-exposure.yaml b/exposed-panels/active-admin-exposure.yaml
new file mode 100755
index 0000000000..0654ef10c2
--- /dev/null
+++ b/exposed-panels/active-admin-exposure.yaml
@@ -0,0 +1,17 @@
+id: active-admin-exposure
+
+info:
+ name: ActiveAdmin Admin Dasboard Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/admin/login'
+ matchers:
+ - type: word
+ words:
+ - "active_admin_content"
+ - "active_admin-"
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/activemq-panel.yaml b/exposed-panels/activemq-panel.yaml
new file mode 100755
index 0000000000..9265ab0e96
--- /dev/null
+++ b/exposed-panels/activemq-panel.yaml
@@ -0,0 +1,17 @@
+id: activemq-panel
+
+info:
+ name: Apache ActiveMQ Exposure
+ author: Ice3man
+ severity: info
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - 'Welcome to the Apache ActiveMQ!
'
+ - 'Apache ActiveMQ'
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/adminer-exposure.yaml b/exposed-panels/adminer-exposure.yaml
new file mode 100755
index 0000000000..1e0a0e3326
--- /dev/null
+++ b/exposed-panels/adminer-exposure.yaml
@@ -0,0 +1,125 @@
+id: adminer-exposure
+
+info:
+ name: Adminer Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/adminer-4.7.0.php'
+ - '{{BaseURL}}/adminer-4.6.0-mysql-en.php'
+ - '{{BaseURL}}/adminer/adminer.php'
+ - '{{BaseURL}}/adminer-4.6.0-en.php'
+ - '{{BaseURL}}/adminer-4.6.2-mysql.php'
+ - '{{BaseURL}}/adminer-4.6.1-mysql.php'
+ - '{{BaseURL}}/adminer-4.7.2.php'
+ - '{{BaseURL}}/adminer-4.0.1/'
+ - '{{BaseURL}}/adminer-4.6.3-mysql-en.php'
+ - '{{BaseURL}}/adminer-4.3.1-mysql-en.php'
+ - '{{BaseURL}}/adminer-3.3.1/'
+ - '{{BaseURL}}/adminer-3.6.1/'
+ - '{{BaseURL}}/adminer-4.6.2.php'
+ - '{{BaseURL}}/adminer-4.0.3.php'
+ - '{{BaseURL}}/adminer-4.3.0.php'
+ - '{{BaseURL}}/adminer-4.6.1.php'
+ - '{{BaseURL}}/adminer-4.2.5-en.php'
+ - '{{BaseURL}}/data/adminer.php'
+ - '{{BaseURL}}/adminer/index.php'
+ - '{{BaseURL}}/adminer-4.2.0.php'
+ - '{{BaseURL}}/adminer-4.5.0-mysql.php'
+ - '{{BaseURL}}/admin/adminer.php'
+ - '{{BaseURL}}/adminer-4.7.2-mysql.php'
+ - '{{BaseURL}}/adminer-4.2.2/'
+ - '{{BaseURL}}/adminer-4.5.0.php'
+ - '{{BaseURL}}/adminer-3.6.0/'
+ - '{{BaseURL}}/webadminer.php'
+ - '{{BaseURL}}/adminer-4.0.3/'
+ - '{{BaseURL}}/adminer-4.1.0.php'
+ - '{{BaseURL}}/adminer-3.3.2/'
+ - '{{BaseURL}}/adminer-4.6.2-en.php'
+ - '{{BaseURL}}/adminer-4.7.1-mysql.php'
+ - '{{BaseURL}}/public/adminer.php'
+ - '{{BaseURL}}/adminer-4.1.0/'
+ - '{{BaseURL}}/adminer-4.5.0-en.php'
+ - '{{BaseURL}}/adminer-4.2.4/'
+ - '{{BaseURL}}/adminer-4.6.2-mysql-en.php'
+ - '{{BaseURL}}/adminer.php'
+ - '{{BaseURL}}/adminer-4.7.0-mysql-en.php'
+ - '{{BaseURL}}/adminer-4.4.0-mysql.php'
+ - '{{BaseURL}}/adminer-4.3.1.php'
+ - '{{BaseURL}}/adminer-4.6.0-mysql.php'
+ - '{{BaseURL}}/adminer-4.2.3/'
+ - '{{BaseURL}}/_adminer.php'
+ - '{{BaseURL}}/adminer-3.3.3/'
+ - '{{BaseURL}}/adminer-3.3.0/'
+ - '{{BaseURL}}/php/adminer.php'
+ - '{{BaseURL}}/adminer-3.1.0/'
+ - '{{BaseURL}}/adminer-4.6.3-mysql.php'
+ - '{{BaseURL}}/adminer-4.7.2-mysql-en.php'
+ - '{{BaseURL}}/adminer-4.4.0-en.php'
+ - '{{BaseURL}}/publicadminer.php'
+ - '{{BaseURL}}/adminer1.php'
+ - '{{BaseURL}}/adminer-4.7.3-mysql.php'
+ - '{{BaseURL}}/adminer-4.6.3-en.php'
+ - '{{BaseURL}}/adminer-4.2.5-mysql-en.php'
+ - '{{BaseURL}}/adminer-3.0.0/'
+ - '{{BaseURL}}/adminer-3.5.0/'
+ - '{{BaseURL}}/adminer-3.6.4/'
+ - '{{BaseURL}}/adminer-4.7.3-mysql-en.php'
+ - '{{BaseURL}}/adminer-3.2.2/'
+ - '{{BaseURL}}/adminer-3.0.1/'
+ - '{{BaseURL}}/tools/adminer.php'
+ - '{{BaseURL}}/adminer-4.7.1.php'
+ - '{{BaseURL}}/adminer-4.0.3-mysql.php'
+ - '{{BaseURL}}/adminer-4.2.5-mysql.php'
+ - '{{BaseURL}}/adminer-3.5.1/'
+ - '{{BaseURL}}/adminer-3.6.3/'
+ - '{{BaseURL}}/adminer-4.3.0-mysql-en.php'
+ - '{{BaseURL}}/web/adminer.php'
+ - '{{BaseURL}}/adminer-3.2.1/'
+ - '{{BaseURL}}/adminer/'
+ - '{{BaseURL}}/adminer-4.6.2-cs.php'
+ - '{{BaseURL}}/adminer-4.2.0-mysql.php'
+ - '{{BaseURL}}/adminer-4.5.0-mysql-en.php'
+ - '{{BaseURL}}/adminer-4.3.1-mysql.php'
+ - '{{BaseURL}}/adminer-4.1.0-mysql.php'
+ - '{{BaseURL}}/adminer-4.7.1-mysql-en.php'
+ - '{{BaseURL}}/adminer-4.3.1-en.php'
+ - '{{BaseURL}}/adminer-4.7.0-en.php'
+ - '{{BaseURL}}/adminer-4.6.1-mysql-en.php'
+ - '{{BaseURL}}/adminer-4.7.2-en.php'
+ - '{{BaseURL}}/adminer-4.2.0/'
+ - '{{BaseURL}}/adminer-3.6.2/'
+ - '{{BaseURL}}/adminer-4.4.0-mysql-en.php'
+ - '{{BaseURL}}/toolsadminer.php'
+ - '{{BaseURL}}/adminer-3.7.0/'
+ - '{{BaseURL}}/adminer-4.2.5.php'
+ - '{{BaseURL}}/adminer-3.2.0/'
+ - '{{BaseURL}}/adminer-4.4.0.php'
+ - '{{BaseURL}}/adminer-4.7.3.php'
+ - '{{BaseURL}}/adminer-4.3.0-en.php'
+ - '{{BaseURL}}/adminer-4.6.3.php'
+ - '{{BaseURL}}/adminer-4.0.2/'
+ - '{{BaseURL}}/wp-content/plugins/adminer/adminer.php'
+ - '{{BaseURL}}/adminer-3.4.0/'
+ - '{{BaseURL}}/adminer-4.0.0/'
+ - '{{BaseURL}}/adminer-4.7.1-en.php'
+ - '{{BaseURL}}/adminer-4.3.0-mysql.php'
+ - '{{BaseURL}}/adminer-4.2.1/'
+ - '{{BaseURL}}/adminer-4.6.0.php'
+ - '{{BaseURL}}/adminer-3.7.1/'
+ - '{{BaseURL}}/adminadminer.php'
+ - '{{BaseURL}}/adminer-3.3.4/'
+ - '{{BaseURL}}/adminer-4.6.1-en.php'
+ - '{{BaseURL}}/adminer-4.7.3-en.php'
+ - '{{BaseURL}}/adminer-4.7.0-mysql.php'
+ matchers-condition: and
+ matchers:
+ - type: word
+ words:
+ - "Login - Adminer"
+ - type: status
+ status:
+ - 200
diff --git a/exposed-panels/airflow-exposure.yaml b/exposed-panels/airflow-exposure.yaml
new file mode 100755
index 0000000000..b02e422796
--- /dev/null
+++ b/exposed-panels/airflow-exposure.yaml
@@ -0,0 +1,18 @@
+id: airflow-exposure
+
+info:
+ name: Apache Airflow Exposure / Unauthenticated Access
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ - '{{BaseURL}}/admin/'
+ matchers:
+ - type: word
+ words:
+ - 'Airflow - DAGs'
+ - ''
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/ambari-exposure.yaml b/exposed-panels/ambari-exposure.yaml
new file mode 100644
index 0000000000..b44f058832
--- /dev/null
+++ b/exposed-panels/ambari-exposure.yaml
@@ -0,0 +1,17 @@
+id: ambari-exposure
+
+info:
+ name: Apache Ambari Exposure / Unauthenticated Access
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - 'Ambari'
+ - 'href="http://www.apache.org/licenses/LICENSE-2.0"'
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/ansible-tower-exposure.yaml b/exposed-panels/ansible-tower-exposure.yaml
new file mode 100644
index 0000000000..11de49fcfc
--- /dev/null
+++ b/exposed-panels/ansible-tower-exposure.yaml
@@ -0,0 +1,17 @@
+id: ansible-tower-exposure
+
+info:
+ name: Ansible Tower Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - "Ansible Tower"
+ - "ansible-main-menu"
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/couchdb-exposure.yaml b/exposed-panels/couchdb-exposure.yaml
new file mode 100755
index 0000000000..68942ed1f2
--- /dev/null
+++ b/exposed-panels/couchdb-exposure.yaml
@@ -0,0 +1,18 @@
+id: couchdb-exposure
+
+info:
+ name: Apache CouchDB Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/_all_dbs'
+ matchers:
+ - type: word
+ words:
+ - CouchDB/
+ - Erlang OTP/
+ part: header
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/couchdb-fauxton.yaml b/exposed-panels/couchdb-fauxton.yaml
new file mode 100755
index 0000000000..f5d9d52103
--- /dev/null
+++ b/exposed-panels/couchdb-fauxton.yaml
@@ -0,0 +1,15 @@
+id: couchdb-fauxton
+
+info:
+ name: Apache CouchDB Fauxton Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - 'Project Fauxton'
\ No newline at end of file
diff --git a/exposed-panels/django-admin-panel.yaml b/exposed-panels/django-admin-panel.yaml
new file mode 100644
index 0000000000..30dc04e6c4
--- /dev/null
+++ b/exposed-panels/django-admin-panel.yaml
@@ -0,0 +1,17 @@
+id: django-admin-panel
+
+info:
+ name: Python Django Admin Panel
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/admin/login/?next=/admin/"
+ matchers:
+ - type: word
+ words:
+ - "Django administration"
+ condition: and
+ part: body
\ No newline at end of file
diff --git a/exposed-panels/druid-console-exposure.yaml b/exposed-panels/druid-console-exposure.yaml
new file mode 100755
index 0000000000..fd70fd8bf0
--- /dev/null
+++ b/exposed-panels/druid-console-exposure.yaml
@@ -0,0 +1,17 @@
+id: druid-console-exposure
+
+info:
+ name: Alibaba Druid Console Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - 'src="/druid.js"'
+ - 'href="/druid.css"'
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/exposed-pagespeed-global-admin.yaml b/exposed-panels/exposed-pagespeed-global-admin.yaml
new file mode 100755
index 0000000000..568072f374
--- /dev/null
+++ b/exposed-panels/exposed-pagespeed-global-admin.yaml
@@ -0,0 +1,15 @@
+id: exposed-pagespeed-global-admin
+
+info:
+ name: Apache PageSpeed Global Admin Dashboard Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/pagespeed_admin/'
+ matchers:
+ - type: word
+ words:
+ - "Pagespeed Admin"
\ No newline at end of file
diff --git a/exposed-panels/exposed-webalizer.yaml b/exposed-panels/exposed-webalizer.yaml
new file mode 100644
index 0000000000..21f33ad15a
--- /dev/null
+++ b/exposed-panels/exposed-webalizer.yaml
@@ -0,0 +1,17 @@
+id: exposed-webalizer
+
+info:
+ name: Publicly exposed Webalizer Interface
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/webalizer/'
+ matchers:
+ - type: word
+ words:
+ - "Webalizer Version"
+ - "Usage statistics for"
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/flink-exposure.yaml b/exposed-panels/flink-exposure.yaml
new file mode 100755
index 0000000000..155c090b58
--- /dev/null
+++ b/exposed-panels/flink-exposure.yaml
@@ -0,0 +1,15 @@
+id: flink-exposure
+
+info:
+ name: Apache Flink Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - 'Apache Flink Web Dashboard'
\ No newline at end of file
diff --git a/exposed-panels/hadoop-exposure.yaml b/exposed-panels/hadoop-exposure.yaml
new file mode 100755
index 0000000000..efefde4127
--- /dev/null
+++ b/exposed-panels/hadoop-exposure.yaml
@@ -0,0 +1,15 @@
+id: hadoop-exposure
+
+info:
+ name: Apache Hadoop Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/dfshealth.html'
+ matchers:
+ - type: word
+ words:
+ - '
Hadoop
'
\ No newline at end of file
diff --git a/exposed-panels/kafka-connect-ui.yaml b/exposed-panels/kafka-connect-ui.yaml
new file mode 100755
index 0000000000..973910c087
--- /dev/null
+++ b/exposed-panels/kafka-connect-ui.yaml
@@ -0,0 +1,15 @@
+id: kafka-connect-ui
+
+info:
+ name: Apache Kafka Connect UI Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - 'Kafka Connect UI'
\ No newline at end of file
diff --git a/exposed-panels/kafka-monitoring.yaml b/exposed-panels/kafka-monitoring.yaml
new file mode 100755
index 0000000000..c6d4183b66
--- /dev/null
+++ b/exposed-panels/kafka-monitoring.yaml
@@ -0,0 +1,16 @@
+id: kafka-monitoring
+
+info:
+ name: Apache Kafka Monitor Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - '>KafkaMonitor'
+ - '>Kafka Monitor GUI'
\ No newline at end of file
diff --git a/exposed-panels/kafka-topics-ui.yaml b/exposed-panels/kafka-topics-ui.yaml
new file mode 100755
index 0000000000..8e4a823e28
--- /dev/null
+++ b/exposed-panels/kafka-topics-ui.yaml
@@ -0,0 +1,15 @@
+id: kafka-topics-ui
+
+info:
+ name: Apache Kafka Topics UI Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - 'Kafka Topics UI - Browse Kafka Data'
\ No newline at end of file
diff --git a/exposed-panels/kubernetes-dashboard.yaml b/exposed-panels/kubernetes-dashboard.yaml
new file mode 100644
index 0000000000..b50e6d4155
--- /dev/null
+++ b/exposed-panels/kubernetes-dashboard.yaml
@@ -0,0 +1,15 @@
+id: kubernetes-dashboard
+
+info:
+ name: Kubernetes Console Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/"
+ matchers:
+ - type: word
+ words:
+ - "Kubernetes Dashboard"
\ No newline at end of file
diff --git a/exposed-panels/rocketmq-console-exposure.yaml b/exposed-panels/rocketmq-console-exposure.yaml
new file mode 100755
index 0000000000..26c5fe99bc
--- /dev/null
+++ b/exposed-panels/rocketmq-console-exposure.yaml
@@ -0,0 +1,15 @@
+id: rocketmq-console-exposure
+
+info:
+ name: Apache RocketMQ Console Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - "RocketMq-console-ng"
\ No newline at end of file
diff --git a/exposed-panels/selenoid-ui-exposure.yaml b/exposed-panels/selenoid-ui-exposure.yaml
new file mode 100755
index 0000000000..4742cd906d
--- /dev/null
+++ b/exposed-panels/selenoid-ui-exposure.yaml
@@ -0,0 +1,17 @@
+id: selenoid-ui-exposure
+
+info:
+ name: Selenoid UI Dashboard Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/admin/login'
+ matchers:
+ - type: word
+ words:
+ - "Selenoid UI"
+ - "/manifest.json"
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/setup-page-exposure.yaml b/exposed-panels/setup-page-exposure.yaml
new file mode 100755
index 0000000000..a2903098fe
--- /dev/null
+++ b/exposed-panels/setup-page-exposure.yaml
@@ -0,0 +1,20 @@
+id: setup-page-exposure
+
+info:
+ name: Zenphoto Setup Page Exposure
+ author: Ice3man
+ severity: medium
+ description: Misconfiguration on Zenphoto version < 1.5.X which lead to sensitive information disclosure
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/zp-core/setup/index.php'
+ - '{{BaseURL}}/zp/zp-core/setup/index.php'
+ - '{{BaseURL}}/gallery/zp-core/setup/index.php'
+ - '{{BaseURL}}/zenphoto/zp-core/setup/index.php'
+ matchers:
+ - type: word
+ words:
+ - Welcome to Zenphoto! This page will set up Zenphoto
+ part: body
\ No newline at end of file
diff --git a/exposed-panels/solr-exposure.yaml b/exposed-panels/solr-exposure.yaml
new file mode 100755
index 0000000000..21f878068d
--- /dev/null
+++ b/exposed-panels/solr-exposure.yaml
@@ -0,0 +1,15 @@
+id: solr-exposure
+
+info:
+ name: Apache Solr Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/solr/'
+ matchers:
+ - type: word
+ words:
+ - "Solr Admin"
\ No newline at end of file
diff --git a/exposed-panels/yarn-manager-exposure.yaml b/exposed-panels/yarn-manager-exposure.yaml
new file mode 100755
index 0000000000..bb17c90f1d
--- /dev/null
+++ b/exposed-panels/yarn-manager-exposure.yaml
@@ -0,0 +1,18 @@
+id: yarn-manager-exposure
+
+info:
+ name: Apache Yarn ResourceManager Exposure / Unauthenticated Access
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/cluster/cluster'
+ matchers:
+ - type: word
+ words:
+ - 'hadoop'
+ - 'resourcemanager'
+ - 'logged in as: dr.who'
+ condition: and
\ No newline at end of file
diff --git a/exposed-panels/zipkin-exposure.yaml b/exposed-panels/zipkin-exposure.yaml
new file mode 100755
index 0000000000..4a0e2b1646
--- /dev/null
+++ b/exposed-panels/zipkin-exposure.yaml
@@ -0,0 +1,17 @@
+id: zipkin-exposure
+
+info:
+ name: Zipkin Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/"
+ - "{{BaseURL}}/zipkin/"
+ matchers:
+ - type: word
+ part: body
+ words:
+ - "webpackJsonpzipkin-lens"
\ No newline at end of file
diff --git a/exposures/configs/airflow-configuration-exposure.yaml b/exposures/configs/airflow-configuration-exposure.yaml
new file mode 100755
index 0000000000..6bbb2fe2ce
--- /dev/null
+++ b/exposures/configs/airflow-configuration-exposure.yaml
@@ -0,0 +1,17 @@
+id: airflow-configuration-exposure
+
+info:
+ name: Apache Airflow Configuration Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/airflow.cfg'
+ matchers:
+ - type: word
+ words:
+ - '[core]'
+ - '[api]'
+ condition: and
\ No newline at end of file
diff --git a/exposures/configs/amazon-docker-config-disclosure.yaml b/exposures/configs/amazon-docker-config-disclosure.yaml
new file mode 100755
index 0000000000..3dc66d5530
--- /dev/null
+++ b/exposures/configs/amazon-docker-config-disclosure.yaml
@@ -0,0 +1,17 @@
+id: amazon-docker-config-disclosure
+
+info:
+ name: Dockerrun AWS Configuration Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/Dockerrun.aws.json'
+ matchers:
+ - type: word
+ words:
+ - 'AWSEBDockerrunVersion'
+ - 'containerDefinitions'
+ condition: and
\ No newline at end of file
diff --git a/exposures/configs/ansible-config-disclosure.yaml b/exposures/configs/ansible-config-disclosure.yaml
new file mode 100755
index 0000000000..a07e675fbb
--- /dev/null
+++ b/exposures/configs/ansible-config-disclosure.yaml
@@ -0,0 +1,17 @@
+id: ansible-config-disclosure
+
+info:
+ name: Ansible Configuration Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/ansible.cfg'
+ matchers:
+ - type: word
+ words:
+ - '[defaults]'
+ - '[inventory]'
+ condition: and
\ No newline at end of file
diff --git a/exposures/configs/opcache-status-exposure.yaml b/exposures/configs/opcache-status-exposure.yaml
new file mode 100644
index 0000000000..26b0fd5a75
--- /dev/null
+++ b/exposures/configs/opcache-status-exposure.yaml
@@ -0,0 +1,20 @@
+id: opcache-status-exposure
+
+info:
+ name: OPcache Status Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/opcache-status/"
+ - "{{BaseURL}}/php-opcache-status/"
+ - "{{BaseURL}}/opcache-status/opcache.php"
+ matchers:
+ - type: word
+ words:
+ - "opcache_enabled | "
+ - "opcache_hit_rate | "
+ condition: and
+ part: body
\ No newline at end of file
diff --git a/exposures/configs/perl-status.yaml b/exposures/configs/perl-status.yaml
new file mode 100755
index 0000000000..6e65332db7
--- /dev/null
+++ b/exposures/configs/perl-status.yaml
@@ -0,0 +1,17 @@
+id: perl-status
+
+info:
+ name: Apache mod_perl Status Page Exposure
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/perl-status'
+ matchers:
+ - type: word
+ words:
+ - "Apache2::Status"
+ - "Perl version"
+ condition: and
\ No newline at end of file
diff --git a/exposures/configs/rails-database-config.yaml b/exposures/configs/rails-database-config.yaml
new file mode 100644
index 0000000000..4461c3b86b
--- /dev/null
+++ b/exposures/configs/rails-database-config.yaml
@@ -0,0 +1,18 @@
+id: rails-database-config
+
+info:
+ name: Ruby-on-Rails Database Configuration Exposure
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/config/database.yml"
+ matchers:
+ - type: word
+ words:
+ - "adapter:"
+ - "database:"
+ condition: and
+ part: body
\ No newline at end of file
diff --git a/exposures/configs/symfony-database-config.yaml b/exposures/configs/symfony-database-config.yaml
new file mode 100755
index 0000000000..b116547087
--- /dev/null
+++ b/exposures/configs/symfony-database-config.yaml
@@ -0,0 +1,18 @@
+id: symfony-database-config
+
+info:
+ name: Symfony Database Configuration Exposure
+ author: Ice3man
+ severity: high
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/config/databases.yml"
+ matchers:
+ - type: word
+ words:
+ - "class:"
+ - "param:"
+ condition: and
+ part: body
\ No newline at end of file
diff --git a/exposures/configs/symfony-profiler.yaml b/exposures/configs/symfony-profiler.yaml
new file mode 100644
index 0000000000..6b7b9d5810
--- /dev/null
+++ b/exposures/configs/symfony-profiler.yaml
@@ -0,0 +1,18 @@
+id: symfony-profiler
+
+info:
+ name: Symfony Profiler
+ author: ice3man
+ severity: high
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/_profiler/empty/search/results?limit=10"
+ matchers:
+ - type: word
+ words:
+ - "Symfony Profiler"
+ - "symfony/profiler/"
+ condition: and
+ part: body
\ No newline at end of file
diff --git a/exposures/logs/rails-debug-mode.yaml b/exposures/logs/rails-debug-mode.yaml
new file mode 100644
index 0000000000..f696b5ce6c
--- /dev/null
+++ b/exposures/logs/rails-debug-mode.yaml
@@ -0,0 +1,18 @@
+id: rails-debug-mode
+
+info:
+ name: Rails Debug Mode Enabled
+ author: ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/1238a92f573a48e58d356c42ca2c9610"
+ matchers:
+ - type: word
+ words:
+ - "Rails.root:"
+ - "Action Controller: Exception caught"
+ condition: and
+ part: body
\ No newline at end of file
diff --git a/exposures/logs/struts-debug-mode.yaml b/exposures/logs/struts-debug-mode.yaml
new file mode 100644
index 0000000000..0ec3c41f8e
--- /dev/null
+++ b/exposures/logs/struts-debug-mode.yaml
@@ -0,0 +1,17 @@
+id: struts-debug-mode
+
+info:
+ name: Apache Struts setup in Debug-Mode
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/'
+ matchers:
+ - type: word
+ words:
+ - ""
+ - ""
+ condition: and
\ No newline at end of file
diff --git a/misconfiguration/airflow-api-exposure.yaml b/misconfiguration/airflow-api-exposure.yaml
new file mode 100755
index 0000000000..0efc1b2c65
--- /dev/null
+++ b/misconfiguration/airflow-api-exposure.yaml
@@ -0,0 +1,17 @@
+id: airflow-api-exposure
+
+info:
+ name: Apache Airflow API Exposure / Unauthenticated Access
+ author: Ice3man
+ severity: medium
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/api/experimental/latest_runs'
+ matchers:
+ - type: word
+ words:
+ - '"dag_run_url":'
+ - '{"items":['
+ condition: and
\ No newline at end of file
diff --git a/misconfiguration/hadoop-unauth.yaml b/misconfiguration/hadoop-unauth.yaml
new file mode 100644
index 0000000000..825453b763
--- /dev/null
+++ b/misconfiguration/hadoop-unauth.yaml
@@ -0,0 +1,17 @@
+id: hadoop-unauth
+
+info:
+ name: Apache Hadoop Unauth
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/ws/v1/cluster/info'
+ matchers:
+ - type: word
+ words:
+ - 'hadoopVersion'
+ - 'resourceManagerVersionBuiltOn'
+ condition: and
\ No newline at end of file
diff --git a/vulnerabilities/other/acme-xss.yaml b/vulnerabilities/other/acme-xss.yaml
new file mode 100755
index 0000000000..5a5e4e8ef5
--- /dev/null
+++ b/vulnerabilities/other/acme-xss.yaml
@@ -0,0 +1,20 @@
+id: acme-xss
+
+info:
+ name: ACME / Let's Encrypt Reflected XSS
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - '{{BaseURL}}/.well-known/acme-challenge/%3C%3fxml%20version=%221.0%22%3f%3E%3Cx:script%20xmlns:x=%22http://www.w3.org/1999/xhtml%22%3Ealert%28document.domain%26%23x29%3B%3C/x:script%3E'
+ matchers:
+ - type: word
+ words:
+ - "alert(document.domain)"
+ - type: word
+ words:
+ - "/xml"
+ - "/html"
+ matchers-condition: and
\ No newline at end of file
diff --git a/vulnerabilities/other/aspnuke-openredirect.yaml b/vulnerabilities/other/aspnuke-openredirect.yaml
new file mode 100644
index 0000000000..cef9244755
--- /dev/null
+++ b/vulnerabilities/other/aspnuke-openredirect.yaml
@@ -0,0 +1,15 @@
+id: aspnuke-openredirect
+info:
+ name: ASP-Nuke Open Redirect
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: GET
+ path:
+ - "{{BaseURL}}/gotoURL.asp?url=google.com&id=43569"
+ matchers:
+ - type: regex
+ part: body
+ regex:
+ - '(?m)^(?:Location\s*:\s*)(?:https?://|//)?(?:[a-zA-Z0-9\-_]*\.)?google\.com(?:\s*)$'
\ No newline at end of file
diff --git a/vulnerabilities/other/yarn-resourcemanager-rce.yaml b/vulnerabilities/other/yarn-resourcemanager-rce.yaml
new file mode 100755
index 0000000000..ddc7fc4c4c
--- /dev/null
+++ b/vulnerabilities/other/yarn-resourcemanager-rce.yaml
@@ -0,0 +1,19 @@
+id: yarn-resourcemanager-rce
+
+info:
+ name: Apache Yarn ResourceManager RCE
+ author: Ice3man
+ severity: low
+
+requests:
+ - method: POST
+ path:
+ - '{{BaseURL}}/ws/v1/cluster/apps/new-application'
+ matchers:
+ - type: word
+ words:
+ - 'application-id'
+ - type: status
+ status:
+ - 200
+ matchers-condition: and
\ No newline at end of file