The following error(s) were found while trying to create udo template :
#{new_udo_template.errors.full_messages.flatten.join(', ')}" 102 | end 103 | end 104 | #now, if udo doesn't exist yet, we create the udo and link it to the created/found udo template 105 | udo_already_exist = false 106 | UserDefinedObjects.all(type: udo_type, report_id: @report.id).each do |already_existing_udo| 107 | if JSON.parse(already_existing_udo.udo_properties) == udo_properties 108 | udo_already_exist = true 109 | next 110 | end 111 | end 112 | if not udo_already_exist 113 | new_udo = UserDefinedObjects.new 114 | new_udo.type = udo_type 115 | new_udo.udo_properties = udo_properties.to_json 116 | new_udo.template_id = udo_template_id 117 | new_udo.report_id = @report.id 118 | if new_udo.save 119 | #save successfull 120 | else 121 | return "
The following error(s) were found while trying to create udo template :
#{new_udo.errors.full_messages.flatten.join(', ')}" 122 | end 123 | end 124 | #### UDV PART 125 | elsif cell_value.include?('§'.force_encoding('ASCII-8BIT')) 126 | udv_name = cell_value.tr('§'.force_encoding('ASCII-8BIT'),'') 127 | c_index = c['r'] 128 | letter_part = c_index.tr('0-9', '') 129 | number_part = c_index.tr('A-Z', '') 130 | c_containing_udv_value = sheet_noko.at_xpath("//xmlns:worksheet/xmlns:sheetData/xmlns:row/xmlns:c[@r=\"#{letter_part.next!}#{number_part}\"]") 131 | if c_containing_udv_value && c_containing_udv_value.at_xpath('./xmlns:v') 132 | #if it's a shared string 133 | if c_containing_udv_value['t'] == 's' 134 | next_cell_shared_string_value = get_shared_string_value(c_containing_udv_value, shared_strings_noko) 135 | #if it's not a shared string cell 136 | else 137 | next_cell_shared_string_value = c_containing_udv_value.at_xpath('./xmlns:v').content 138 | end 139 | udv_value = next_cell_shared_string_value 140 | else 141 | udv_value = '' 142 | end 143 | if not @report.user_defined_variables.nil? 144 | udvs_from_report = JSON.parse(@report.user_defined_variables) 145 | else 146 | udvs_from_report = {} 147 | end 148 | udvs_from_report[udv_name] = udv_value 149 | if @report.update(user_defined_variables: udvs_from_report.to_json) 150 | #save successfull 151 | else 152 | return "
The following error(s) were found while trying to update report :
#{@report.errors.full_messages.flatten.join(', ')}"
153 | end
154 | end
155 | end
156 | end
157 | haml :'../plugins/ExcelToVariables/views/excel_to_variables'
158 | end
159 |
160 | # returns the shared string value of a sheet cell
161 | def get_shared_string_value(sheet_cell, shared_strings_noko)
162 | # ...We take the id of the shared string contained by the cell
163 | shared_string_id = sheet_cell.at_xpath('xmlns:v').content
164 | # ...we look in the shared strings file the corresponding value
165 | shared_string_value = shared_strings_noko.at_xpath("/xmlns:sst/xmlns:si[#{shared_string_id.to_i + 1}]/xmlns:t").content.to_s.force_encoding('ASCII-8BIT')
166 | end
167 |
168 | def find_excel_worksheets(excel)
169 | worksheets = []
170 | Zip::File.open(excel) do |zip|
171 | i = 1
172 | until zip.find_entry("xl/worksheets/sheet#{i}.xml").nil?
173 | worksheets.push("xl/worksheets/sheet#{i}.xml")
174 | i += 1
175 | end
176 | end
177 | worksheets
178 | end
179 |
--------------------------------------------------------------------------------
/ExcelToVariables/views/excel_to_variables.haml:
--------------------------------------------------------------------------------
1 | .span10
2 | %form{:method => 'post', :action => "", :enctype=>"multipart/form-data"}
3 | %br
4 | %h2 Add UDVs and UDOs from Excel file
5 | %br
6 | %table
7 | %tr
8 | %tr
9 | %td
10 | Upload Excel containing UDVs and UDOs
11 | %br
12 | %br
13 | %input{:type => 'file', :name => 'file'}
14 | %tr
15 | %td
16 | %br
17 | %br
18 | %br
19 | %input{:type => 'submit', :value => 'Upload' }
20 |
--------------------------------------------------------------------------------
/ExtraFindings/README.md:
--------------------------------------------------------------------------------
1 | # Overview
2 |
3 | This project includes findings from other projects to help you grow your findings database. Currently it supports:
4 |
5 | - VulnDB
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/.gitignore:
--------------------------------------------------------------------------------
1 | *.py[cod]
2 | *.py~
3 | *~
4 | *.swp
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Packages
10 | *.egg
11 | *.egg-info
12 | dist
13 | build
14 | eggs
15 | parts
16 | bin
17 | var
18 | sdist
19 | develop-eggs
20 | .installed.cfg
21 | lib
22 | lib64
23 |
24 | # Installer logs
25 | pip-log.txt
26 |
27 | # Unit test / coverage reports
28 | .coverage
29 | .tox
30 | nosetests.xml
31 | .noseids
32 | noseids.pickle
33 | nose.cfg
34 |
35 | # Translations
36 | *.mo
37 |
38 | # Mr Developer
39 | .mr.developer.cfg
40 | .project
41 | .pydevproject
42 | .settings/
43 | .idea
44 |
45 | # w3af stuff
46 | parser.out
47 | parsetab.py
48 | output-http.txt
49 | output.txt
50 |
51 | # This is generated by the setup_moth.py script
52 | django-moth
53 |
54 | # Debugging circleci high memory usage
55 | memory-usage.txt
56 |
57 | # Ignore sphinx builds
58 | doc/sphinx/_build/
59 |
60 | # 404 test stuff
61 | data.shelve
62 | top-1m.csv
63 | top-1m.csv.zip
64 |
65 | # docker build temp files
66 | /.dockerignore
67 | /Dockerfile
68 |
69 | # To make testing easier
70 | test.w3af
71 | output-w3af.txt
72 |
73 | # Ignore some profiling data
74 | *.dump
75 |
76 | # Ignore intermediate XML file
77 | w3af/plugins/crawl/phishtank/index.xml
78 |
79 | # For debian package build
80 | .pc/
81 | debian/files
82 | debian/w3af-console.debhelper.log
83 | debian/w3af-console.postinst.debhelper
84 | debian/w3af-console.prerm.debhelper
85 | debian/w3af-console.substvars
86 | debian/w3af-console/
87 | debian/w3af.debhelper.log
88 | debian/w3af.postinst.debhelper
89 | debian/w3af.postrm.debhelper
90 | debian/w3af.prerm.debhelper
91 | debian/w3af.substvars
92 | debian/w3af/
93 | docker/kali-debootstrap
94 | *.deb
95 |
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/LICENSE.md:
--------------------------------------------------------------------------------
1 | Redistribution and use in source and binary forms, with or without
2 | modification, are permitted provided that the following conditions are
3 | met:
4 |
5 | (1) Redistributions of source code must retain the above copyright
6 | notice, this list of conditions and the following disclaimer.
7 |
8 | (2) Redistributions in binary form must reproduce the above copyright
9 | notice, this list of conditions and the following disclaimer in
10 | the documentation and/or other materials provided with the
11 | distribution.
12 |
13 | (3)The name of the author may not be used to
14 | endorse or promote products derived from this software without
15 | specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
21 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
25 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 | POSSIBILITY OF SUCH DAMAGE.
28 |
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/README.md:
--------------------------------------------------------------------------------
1 | User, contributor and developer-friendly vulnerability database. Our goal is to
2 | provide a vulnerability database which is:
3 |
4 | * Actionable, easy to read and understand for developers and sysadmins who need
5 | to fix the vulnerability
6 |
7 | * Easy to integrate by developers into any vulnerability scanner, report
8 | generator, penetration testing tool or related tool.
9 |
10 | * Trivial to contribute to, by using JSON to store the vulnerabilities
11 |
12 | ## SDKs
13 | This repository holds the vulnerability database itself, in order to make the
14 | information easily accessible from different programming languages these SDKs
15 | are available:
16 |
17 | * [python-sdk](https://github.com/vulndb/python-sdk)
18 | * [vulndb-go](https://github.com/vulndb/vulndb-go)
19 | * [php-sdk](https://github.com/vulndb/php-sdk)
20 |
21 | ## Projects using this database
22 | * [w3af](http://www.w3af.org/)
23 |
24 | ## Contributing
25 | We would love to receive your [pull-requests](https://help.github.com/articles/using-pull-requests/)!
26 | The easiest way to contribute is:
27 | * Browse our repository and find the JSON file you would like to edit
28 | * Click on the top-right icon in the github UI that will open the online text editor
29 | * Change the file
30 | * Save/commit
31 |
32 | ## Credits
33 | * JSON format specification by [Andres Riancho](https://github.com/andresriancho/), [Tasos Laskos](https://github.com/Zapotek) and [Vyacheslav Bakhmutov](https://github.com/m0sth8)
34 | * Initial data provided by the [Arachni scanner](http://www.arachni-scanner.com/) project
35 |
36 | ## History
37 | The project founders maintain one or more vulnerability scanners, each of those
38 | tools had a different vulnerability database with different fields, formats,
39 | texts and quality. To reduce our documentation efforts we decided to commoditize
40 | the vulnerability database and created this repository.
41 |
42 | At the beginning we tried to use the CWE data, but we found several problems with
43 | it:
44 |
45 | * The target audience for our vulnerability information is too busy to read the
46 | [long](https://cwe.mitre.org/data/definitions/89.html) descriptions and hundreds
47 | of fields provided by CWE. We want to provide enough information for the users
48 | to know what's wrong and point them to information with more detailed info if
49 | that's what they need.
50 |
51 | * The XML format storing the CWE data is simply too complex for our needs.
52 |
53 | * Mitre never answered our questions on derivated work
54 |
55 | We might still use some paragraphs from the CWE data in our database, but manually
56 | migrated and reviewed for clarity.
57 |
58 | It all started with these two github issues ([1](https://github.com/andresriancho/w3af/issues/53),
59 | [2](https://github.com/vulndb/data/issues/5)) and various emails between Slava,
60 | Andres and Tasos.
61 |
62 | The initial database information was contributed by the [Arachni scanner](http://www.arachni-scanner.com/)
63 | imported in [this commit](https://github.com/vulndb/data/commit/e27222af21b0569525718f591eaa2c517d4c1da2).
64 |
65 | ## Build status
66 | [](https://circleci.com/gh/vulndb/data)
67 |
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/circle.yml:
--------------------------------------------------------------------------------
1 | #
2 | # This file is used to configure the continuous integration for vulndb/data
3 | #
4 | # As a user you don't need to understand this file.
5 | #
6 | machine:
7 | python:
8 | version: 2.7.9
9 |
10 | dependencies:
11 | post:
12 | - pip install --upgrade pip
13 | - pip install --upgrade -r tests/requirements.txt
14 | - pip --version
15 | - pip freeze
16 |
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/1-allowed-http-methods.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 1,
3 | "title": "Allowed HTTP methods",
4 | "severity": "informational",
5 | "description": [
6 | "There are a number of HTTP methods that can be used on a webserver",
7 | "(`OPTIONS`, `HEAD`, `GET`, `POST`, `PUT`, `DELETE` etc.). Each of",
8 | "these methods perform a different function and each have an associated",
9 | "level of risk when their use is permitted on the webserver.\n\nA client",
10 | "can use the `OPTIONS` method within a request to query a server to",
11 | "determine which methods are allowed.\n\nCyber-criminals will almost",
12 | "always perform this simple test as it will give a very quick",
13 | "indication of any high-risk methods being permitted by the server.",
14 | "The tool discovered that several methods are supported by the server."
15 | ],
16 | "fix": {
17 | "effort": 50,
18 | "guidance": [
19 | "It is recommended that a whitelisting approach be taken to explicitly",
20 | "permit the HTTP methods required by the application and block all",
21 | "others.\n\nTypically the only HTTP methods required for most",
22 | "applications are `GET` and `POST`. All other methods perform actions",
23 | "that are rarely required or perform actions that are inherently risky.",
24 | "These risky methods (such as `PUT`, `DELETE`, etc) should be protected",
25 | "by strict limitations, such as ensuring that the channel is secure",
26 | "(SSL/TLS enabled) and only authorised and trusted clients are",
27 | "permitted to use them."
28 | ]
29 | },
30 | "cwe": ["749"],
31 | "tags": [
32 | "web",
33 | "http",
34 | "methods",
35 | "options"
36 | ],
37 | "references": [
38 | {
39 | "url": "http://httpd.apache.org/docs/2.2/mod/core.html#limitexcept",
40 | "title": "Apache.org"
41 | }
42 | ]
43 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/10-common-sensitive-file.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 10,
3 | "title": "Common sensitive file",
4 | "severity": "low",
5 | "description": [
6 | "Web applications are often made up of multiple files and directories.",
7 | "It is possible that over time some files may become unreferenced",
8 | "(unused) by the web application and forgotten about by the",
9 | "administrator/developer. Because web applications are built using",
10 | "common frameworks, they contain common files that can be discovered",
11 | "(independent of server).\n\nDuring the initial recon stages of an",
12 | "attack, cyber-criminals will attempt to locate unreferenced files in",
13 | "the hope that the file will assist in further compromise of the web",
14 | "application. To achieve this they will make thousands of requests",
15 | "using word lists containing common filenames. The response headers",
16 | "from the server will then indicate if the file exists.\n\nThe tool also",
17 | "contains a list of common file names which it will attempt to access."
18 | ],
19 | "fix": {
20 | "effort": 50,
21 | "guidance": [
22 | "If files are unreferenced then they should be removed from the web",
23 | "root and/or the application directory.\n\nPreventing access without",
24 | "authentication may also be an option and can stop a client from being",
25 | "able to view the contents of a file, however it is still likely that",
26 | "the directory structure will be able to be discovered.\n\nUsing obscure",
27 | "file names is implementing security through obscurity and is not a",
28 | "recommended option."
29 | ]
30 | },
31 | "tags": [
32 | "web",
33 | "common",
34 | "path",
35 | "file",
36 | "discovery"
37 | ],
38 | "references": [
39 | {
40 | "url": "http://httpd.apache.org/docs/2.0/mod/mod_access.html",
41 | "title": "Apache.org"
42 | }
43 | ]
44 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/11-cookie-set-for-parent-domain.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 11,
3 | "title": "Cookie set for parent domain",
4 | "severity": "informational",
5 | "description": [
6 | "HTTP by itself is a stateless protocol. Therefore the server is unable",
7 | "to determine which requests are performed by which client, and which",
8 | "clients are authenticated or unauthenticated.\n\nThe use of HTTP cookies",
9 | "within the headers, allows a web server to identify each individual",
10 | "client and can therefore determine which clients hold valid",
11 | "authentication, from those that do not. These are known as session",
12 | "cookies.\n\nWhen a cookie is set by the server (sent the header of an",
13 | "HTTP response) there are several flags that can be set to configure",
14 | "the properties of the cookie and how it is to be handled by the",
15 | "browser.\n\nOne of these flags represents the host, or domain. for which",
16 | "the cookie can be used.\n\nWhen the cookie is set for the parent domain,",
17 | "rather than the host, this could indicate that the same cookie could",
18 | "be used to access other hosts within that domain. While there are many",
19 | "legitimate reasons for this, it could also be misconfiguration",
20 | "expanding the possible surface of attacks."
21 | ],
22 | "fix": {
23 | "effort": 50,
24 | "guidance": [
25 | "The first step to remediation is to identify the context in which the",
26 | "cookie is being set and determine if it is required by the whole",
27 | "domain, or just the specific host being tested.\n\nIf it is only",
28 | "required by the host, then the domain flag should be set as such.",
29 | "Depending on the framework being used, the configuration of this flag",
30 | "will be modified in different ways."
31 | ]
32 | },
33 | "references": [
34 | {
35 | "url": "https://www.owasp.org/index.php/Testing_for_cookies_attributes_(OTG-SESS-002)",
36 | "title": "OWASP"
37 | }
38 | ]
39 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/12-credit-card-number-disclosure.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 12,
3 | "title": "Credit card number disclosure",
4 | "severity": "medium",
5 | "description": [
6 | "Credit card numbers are used in applications where a user is able to",
7 | "purchase goods and/or services.\n\nA credit card number is a sensitive",
8 | "piece of information and should be handled as such. Cyber-criminals",
9 | "will use various methods to attempt to compromise credit card",
10 | "information that can then be used for fraudulent purposes.\n\nThrough",
11 | "the use of regular expressions and CC number format validation,",
12 | "It was possible to discover a credit card number located within the",
13 | "affected page."
14 | ],
15 | "fix": {
16 | "effort": 50,
17 | "guidance": [
18 | "Initially, the credit card number within the response should be",
19 | "checked to ensure its validity, as it is possible that the regular",
20 | "expression has matched on a similar number with no relation to a real",
21 | "credit card.\n\nIf the response does contain a valid credit card number,",
22 | "then all efforts should be taken to remove or further protect this",
23 | "information. This can be achieved by removing the credit card number",
24 | "altogether, or by masking the number so that only the last few digits",
25 | "are present within the response. (eg. _**********123_).\n\nAdditionally,",
26 | "credit card numbers should not be stored by the application, unless",
27 | "the organisation also complies with other security controls as",
28 | "outlined in the Payment Card Industry Data Security Standard (PCI-",
29 | "DSS)."
30 | ]
31 | },
32 | "cwe": ["200"],
33 | "references": [
34 | {
35 | "url": "http://en.wikipedia.org/wiki/Luhn_algorithm",
36 | "title": "Wikipedia - Luhn algorithm"
37 | },
38 | {
39 | "url": "http://en.wikipedia.org/wiki/Bank_card_number",
40 | "title": "Wikipedia - Bank card number"
41 | }
42 | ]
43 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/13-cross-site-request-forgery.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 13,
3 | "title": "Cross-Site Request Forgery",
4 | "severity": "high",
5 | "description": [
6 | "In the majority of today's web applications, clients are required to",
7 | "submit forms which can perform sensitive operations.\n\nAn example of",
8 | "such a form being used would be when an administrator wishes to create",
9 | "a new user for the application.\n\nIn the simplest version of the form,",
10 | "the administrator would fill-in:\n\n* Name * Password * Role (level of",
11 | "access)\n\nContinuing with this example, Cross Site Request Forgery",
12 | "(CSRF) would occur when the administrator is tricked into clicking on",
13 | "a link, which if logged into the application, would automatically",
14 | "submit the form without any further interaction.\n\nCyber-criminals will",
15 | "look for sites where sensitive functions are performed in this manner",
16 | "and then craft malicious requests that will be used against clients",
17 | "via a social engineering attack.\n\nThere are 3 things that are required",
18 | "for a CSRF attack to occur:\n\n1. The form must perform some sort of",
19 | "sensitive action. 2. The victim (the administrator the example above)",
20 | "must have an active session. 3. Most importantly, all parameter values",
21 | "must be **known** or **guessable**.\n\nThe tool discovered that all",
22 | "parameters within the form were known or predictable and therefore the",
23 | "form could be vulnerable to CSRF.\n\n_Manual verification may be",
24 | "required to check whether the submission will then perform a sensitive",
25 | "action, such as reset a password, modify user profiles, post content",
26 | "on a forum, etc._"
27 | ],
28 | "fix": {
29 | "effort": 50,
30 | "guidance": [
31 | "Based on the risk (determined by manual verification) of whether the",
32 | "form submission performs a sensitive action, the addition of anti-CSRF",
33 | "tokens may be required.\n\nThese tokens can be configured in such a way",
34 | "that each session generates a new anti-CSRF token or such that each",
35 | "individual request requires a new token.\n\nIt is important that the",
36 | "server track and maintain the status of each token (in order to reject",
37 | "requests accompanied by invalid ones) and therefore prevent",
38 | "cyber-criminals from knowing, guessing or reusing them.\n\n_For examples",
39 | "of framework specific remediation options, please refer to the",
40 | "references._"
41 | ]
42 | },
43 | "cwe": ["352"],
44 | "owasp_top_10": {"2013": [8]},
45 | "tags": [
46 | "web",
47 | "csrf",
48 | "form",
49 | "token"
50 | ],
51 | "references": [
52 | {
53 | "url": "http://www.cgisecurity.com/csrf-faq.html",
54 | "title": "CGI Security - CSRF"
55 | },
56 | {
57 | "url": "http://en.wikipedia.org/wiki/Cross-site_request_forgery",
58 | "title": "Wikipedia - CSRF"
59 | },
60 | {
61 | "url": "https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)",
62 | "title": "OWASP - CSRF"
63 | }
64 | ]
65 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/14-cvs-svn-user-disclosure.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 14,
3 | "title": "CVS/SVN user disclosure",
4 | "severity": "low",
5 | "description": [
6 | "Concurrent Version System (CVS) and Subversion (SVN) provide a method",
7 | "for application developers to control different versions of their",
8 | "code.\n\nOccasionally, the developer's version or user information can",
9 | "be stored incorrectly within the code and may be visible to the end",
10 | "user (either in the HTML or code comments). As one of the initial",
11 | "steps in information gathering, cyber-criminals will spider a website",
12 | "and using automated methods attempt to discover any CVS/SVN",
13 | "information that may be present in the page.\n\nThis will aid them in",
14 | "developing a better understanding of the deployed application",
15 | "(potentially through the disclosure of version information), or it may",
16 | "assist in further information gathering or social engineering attacks.",
17 | "Using the same automated methods, the tool was able to detect CVS or",
18 | "SVN details stored within the affected page."
19 | ],
20 | "cwe": ["200", "527"],
21 | "fix": {
22 | "effort": 50,
23 | "guidance": [
24 | "CVS and/or SVN information should not be displayed to the end user.",
25 | "This can be achieved by removing this information all together prior",
26 | "to deployment, or by putting this information into a server-side (PHP,",
27 | "ASP, JSP, etc) code comment block, as opposed to an HTML comment."
28 | ]
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/15-directory-listing.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 15,
3 | "title": "Directory listing",
4 | "severity": "low",
5 | "description": [
6 | "Web servers permitting directory listing are typically used for",
7 | "sharing files.\n\nDirectory listing allows the client to view a simple",
8 | "list of all the files and folders hosted on the web server. The client",
9 | "is then able to traverse each directory and download the files.",
10 | "Cyber-criminals will utilise the presence of directory listing to",
11 | "discover sensitive files, download protected content, or even just",
12 | "learn how the web application is structured.\n\nThe tool discovered that",
13 | "the affected page permits directory listing."
14 | ],
15 | "fix": {
16 | "effort": 50,
17 | "guidance": [
18 | "Unless the web server is being utilised to share static and",
19 | "non-sensitive files, enabling directory listing is considered a poor",
20 | "security practice\n\nThis can typically be done with a simple",
21 | "configuration change on the server. The steps to disable the directory",
22 | "listing will differ depending on the type of server being used (IIS,",
23 | "Apache, etc.). If directory listing is required, and permitted, then",
24 | "steps should be taken to ensure that the risk of such a configuration",
25 | "is reduced.\n\nThese can include:\n",
26 | "1. Requiring authentication to access affected pages.\n",
27 | "2. Adding the affected path to the `robots.txt` file to prevent the",
28 | "directory contents being searchable via search engines.\n",
29 | "3. Ensuring that sensitive files are not stored within the",
30 | "web or document root.\n",
31 | "4. Removing any files that are not required for the application to",
32 | "function.\n"
33 | ]
34 | },
35 | "cwe": ["548"],
36 | "owasp_top_10": {"2013": [5]},
37 | "tags": [
38 | "web",
39 | "path",
40 | "directory",
41 | "listing",
42 | "index"
43 | ],
44 | "references": [
45 | {
46 | "url": "http://projects.webappsec.org/w/page/13246922/Directory%20Indexing",
47 | "title": "WASC"
48 | }
49 | ]
50 | }
51 |
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/16-e-mail-address-disclosure.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 16,
3 | "title": "E-mail address disclosure",
4 | "severity": "informational",
5 | "description": [
6 | "Email addresses are typically found on \"Contact us\" pages, however,",
7 | "they can also be found within scripts or code comments of the",
8 | "application. They are used to provide a legitimate means of contacting",
9 | "an organisation.\n\nAs one of the initial steps in information",
10 | "gathering, cyber-criminals will spider a website and using automated",
11 | "methods collect as many email addresses as possible, that they may",
12 | "then use in a social engineering attack.\n\nUsing the same automated",
13 | "methods, the tool was able to detect one or more email addresses that",
14 | "were stored within the affected page."
15 | ],
16 | "fix": {
17 | "effort": 50,
18 | "guidance": [
19 | "E-mail addresses should be presented in such a way",
20 | "that it is hard to process them automatically."
21 | ]
22 | }
23 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/17-file-inclusion.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 17,
3 | "title": "File Inclusion",
4 | "severity": "high",
5 | "description": [
6 | "Web applications occasionally use parameter values to store the",
7 | "location of a file which will later be required by the server.\n\nAn",
8 | "example of this is often seen in error pages, where the actual file",
9 | "path for the error page is stored in a parameter value -- for example",
10 | "`example.com/error.php?page=404.php`.\n\nA file inclusion occurs when",
11 | "the parameter value (ie. path to file) can be substituted with the",
12 | "path of another resource on the same server, effectively allowing the",
13 | "displaying of arbitrary, and possibly restricted/sensitive, files.",
14 | "The tool discovered that it was possible to substitute a parameter",
15 | "value with another resource and have the server return the contents of",
16 | "the resource to the client within the response."
17 | ],
18 | "fix": {
19 | "effort": 50,
20 | "guidance": [
21 | "It is recommended that untrusted data is never used to form a file",
22 | "location to be included.\n\nTo validate data, the application should",
23 | "ensure that the supplied value for a file is permitted. This can be",
24 | "achieved by performing whitelisting on the parameter value, by",
25 | "matching it against a list of permitted files. If the supplied value",
26 | "does not match any value in the whitelist, then the server should",
27 | "redirect to a standard error page.\n\nIn some scenarios, where dynamic",
28 | "content is being requested, it may not be possible to perform",
29 | "validation against a list of trusted resources, therefore the list",
30 | "must also become dynamic (updated as the files change), or perform",
31 | "filtering to remove extraneous user input (such as semicolons, periods",
32 | "etc.) and only permit `a-z0-9`.\n\nIt is also advised that sensitive",
33 | "files are not stored within the web root and that the user permissions",
34 | "enforced by the directory are correct."
35 | ]
36 | },
37 | "cwe": ["98"],
38 | "owasp_top_10": {"2013": [1]},
39 | "tags": [
40 | "web",
41 | "file",
42 | "inclusion",
43 | "error",
44 | "injection"
45 | ],
46 | "references": [
47 | {
48 | "url": "https://www.owasp.org/index.php/PHP_File_Inclusion",
49 | "title": "OWASP"
50 | }
51 | ]
52 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/18-form-based-file-upload.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 18,
3 | "title": "Form-based File Upload",
4 | "severity": "informational",
5 | "description": [
6 | "The design of many web applications require that users be able to",
7 | "upload files that will either be stored or processed by the receiving",
8 | "web server.\n\nThe tool has flagged this not as a vulnerability, but as a",
9 | "prompt for the penetration tester to conduct further manual testing on",
10 | "the file upload function.\n\nAn insecure form-based file upload could",
11 | "allow a cyber-criminal a means to abuse and successfully exploit the",
12 | "server directly, and/or any third party that may later access the",
13 | "file. This can occur through uploading a file containing server",
14 | "side-code (such as PHP) that is then executed when requested by the",
15 | "client."
16 | ],
17 | "fix": {
18 | "effort": 50,
19 | "guidance": [
20 | "The identified form handler should at a minimum:",
21 | "\n\n",
22 | "1. Whitelist permitted file types and block all others. This should be",
23 | "conducted on the MIME type of the file rather than its extension.\n",
24 | "2. As the file is uploaded, and prior to being handled (written to the",
25 | "disk) by the server, the filename should be stripped of all control,",
26 | "special, or Unicode characters.\n",
27 | "3. Ensure that the upload is conducted via the HTTP `POST` method rather",
28 | "than `GET` or `PUT`.\n",
29 | "4. Ensure that the file is written to a directory that does not hold",
30 | "any execute permission and that all files within that directory inherit",
31 | "the same permissions.\n",
32 | "5. Scan (if possible) with an up-to-date virus scanner before being",
33 | "stored.\n",
34 | "6. Ensure that the application handles files as per the host operating",
35 | "system. For example, the length of the file name is appropriate, there",
36 | "is adequate space to store the file, protection against overwriting",
37 | "other files etc."
38 | ]
39 | },
40 | "tags": [
41 | "web",
42 | "file",
43 | "upload"
44 | ],
45 | "references": [
46 | {
47 | "url": "https://www.owasp.org/index.php/Unrestricted_File_Upload",
48 | "title": "owasp.org"
49 | }
50 | ]
51 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/19-missing-strict-transport-security-header.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 19,
3 | "title": "Missing 'Strict-Transport-Security' header",
4 | "severity": "medium",
5 | "description": [
6 | "The HTTP protocol by itself is clear text, meaning that any data that",
7 | "is transmitted via HTTP can be captured and the contents viewed. To",
8 | "keep data private and prevent it from being intercepted, HTTP is often",
9 | "tunnelled through either Secure Sockets Layer (SSL) or Transport Layer",
10 | "Security (TLS). When either of these encryption standards are used, it",
11 | "is referred to as HTTPS.\n\nHTTP Strict Transport Security (HSTS) is an",
12 | "optional response header that can be configured on the server to",
13 | "instruct the browser to only communicate via HTTPS. This will be",
14 | "enforced by the browser even if the user requests a HTTP resource on",
15 | "the same server.\n\nCyber-criminals will often attempt to compromise",
16 | "sensitive information passed from the client to the server using HTTP.",
17 | "This can be conducted via various Man-in-The-Middle (MiTM) attacks or",
18 | "through network packet captures.\n\nThe tool discovered that the affected",
19 | "application is using HTTPS however does not use the HSTS header."
20 | ],
21 | "fix": {
22 | "effort": 50,
23 | "guidance": [
24 | "Depending on the framework being used the implementation methods will",
25 | "vary, however it is advised that the `Strict-Transport-Security`",
26 | "header be configured on the server.\n\nOne of the options for this",
27 | "header is `max-age`, which is a representation (in milliseconds)",
28 | "determining the time in which the client's browser will adhere to the",
29 | "header policy.\n\nDepending on the environment and the application this",
30 | "time period could be from as low as minutes to as long as days."
31 | ]
32 | },
33 | "references": [
34 | {
35 | "url": "http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security",
36 | "title": "Wikipedia - HSTS"
37 | },
38 | {
39 | "url": "https://www.owasp.org/index.php/HTTP_Strict_Transport_Security",
40 | "title": "OWASP - HSTS"
41 | }
42 | ]
43 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/2-a-backdoor-file-exists-on-the-server.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 2,
3 | "title": "A backdoor file exists on the server",
4 | "severity": "high",
5 | "description": [
6 | "If a server has been previously compromised, there is a high",
7 | "probability that the cyber-criminal has installed a backdoor so that",
8 | "they can easily return to the server if required. One method of",
9 | "achieving this is to place a web backdoor or web shell within the web",
10 | "root of the web server. This will then enable the cyber-criminal to",
11 | "access the server through a HTTP/S session.\n\nAlthough extremely bad",
12 | "practice, it is possible that the web backdoor or web shell has been",
13 | "placed there by an administrator so they can perform administrative",
14 | "activities remotely.\n\nDuring the initial recon stages of an attack,",
15 | "cyber-criminals will attempt to locate these web backdoors or shells",
16 | "by requesting the names of the most common and well known ones.\n\nBy",
17 | "analysing the response, they are able to determine if a web backdoor",
18 | "or web shell exists. These web backdoors or web shells can then",
19 | "provide an easy path for further compromise of the server.\n\nBy",
20 | "utilising the same methods as the cyber-criminals, the tool was able to",
21 | "discover a possible web backdoor or web shell."
22 | ],
23 | "fix": {
24 | "effort": 50,
25 | "guidance": [
26 | "If manual confirmation reveals that a web backdoor or web shell does",
27 | "exist on the server, then it should be removed. It is also recommended",
28 | "that an incident response investigation be conducted on the server to",
29 | "establish how the web backdoor or web shell came to end up on the",
30 | "server.\n\nDepending on the environment, investigation into the",
31 | "compromise of any other services or servers should be conducted."
32 | ]
33 | },
34 | "cwe": ["489"],
35 | "tags": [
36 | "web",
37 | "path",
38 | "backdoor",
39 | "file",
40 | "discovery"
41 | ],
42 | "references": [
43 | {
44 | "url": "https://www.blackhat.com/presentations/bh-usa-07/Wysopal_and_Eng/Presentation/bh-usa-07-wysopal_and_eng.pdf",
45 | "title": "Static Detection of Application Backdoors"
46 | }
47 | ]
48 | }
--------------------------------------------------------------------------------
/ExtraFindings/data/VulnDB/db/20-misconfiguration-in-limit-directive-of-htaccess-file.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 20,
3 | "title": "Misconfiguration in LIMIT directive of .htaccess file",
4 | "severity": "high",
5 | "description": [
6 | "There are a number of HTTP methods that can be used on a webserver",
7 | "(for example `OPTIONS`, `HEAD`, `GET`, `POST`, `PUT`, `DELETE `etc.).",
8 | "Each of these methods perform a different function, and each has an",
9 | "associated level of risk when their use is permitted on the webserver.",
10 | "The `