Class: Mdm::WebVuln

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
app/models/mdm/web_vuln.rb

Overview

A Web Vulnerability found during a web scan or web audit.

If you need to modify Mdm::WebVuln you can use ActiveSupport.on_load(:mdm_web_vuln) inside an initializer so that your patches are reloaded on each request in development mode for your Rails application.

Examples:

extending Mdm::WebVuln

# config/initializers/mdm_web_vuln.rb
ActiveSupport.on_load(:mdm_web_vuln) do
  def confidence_percentage
    "#{confidence}%"
  end
end

Constant Summary collapse

CONFIDENCE_RANGE =

A percentage #confidence that the vulnerability is real and not a false positive.

0 .. 100
DEFAULT_PARAMS =

Default value for #params

[]
METHODS =

Allowed methods.

[
    'GET',
    # XXX I don't know why PATH is a valid method when it's not an HTTP Method/Verb
    'PATH',
    'POST'
]
RISK_RANGE =

Risk is rated on a scale from 0 (least risky) to 5 (most risky).

0 .. 5

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#blameString

Who to blame for the vulnerability

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 48


#categoryString

Category of this vulnerability.

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 53


#confidenceInteger

Percentage confidence scanner or auditor has that this vulnerability is not a false positive

Returns:

  • (Integer)

    1% to 100%



# File 'app/models/mdm/web_vuln.rb', line 58


#descriptionString?

Description of the vulnerability

Returns:

  • (String, nil)


# File 'app/models/mdm/web_vuln.rb', line 63


#methodString

HTTP Methods for request that found vulnerability. 'PATH' is also allowed even though it is not an HTTP Method.

Returns:

  • (String)

See Also:



# File 'app/models/mdm/web_vuln.rb', line 68


#nameString

Name of the vulnerability

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 74


#pathString

Path portion of URL

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 79


#payloadString?

Web audit payload that gets executed by the remote server. Used for code injection vulnerabilities.

Returns:

  • (String, nil)


# File 'app/models/mdm/web_vuln.rb', line 84


#pnameString

Name of parameter that demonstrates vulnerability

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 89


#proofString

String that proves vulnerability, such as a code snippet, etc.

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 94


#queryString

The GET query.

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 99


#requestString

Returns:

  • (String)


# File 'app/models/mdm/web_vuln.rb', line 104


#riskInteger

Risk of leaving this vulnerability unpatched.

Returns:

  • (Integer)


# File 'app/models/mdm/web_vuln.rb', line 108


Instance Method Details

#paramsArray<Array<(String, String)>>

Parameters sent as part of request.

Returns:

  • (Array<Array<(String, String)>>)


157
158
159
160
161
# File 'app/models/mdm/web_vuln.rb', line 157

def params
  normalize_params(
      read_attribute(:params)
  )
end

#params=(params) ⇒ void

This method returns an undefined value.

Set parameters sent as part of request.

Parameters:

  • params (Array<Array<(String, String)>>, nil)

    Array of parameter key value pairs



167
168
169
170
171
172
# File 'app/models/mdm/web_vuln.rb', line 167

def params=(params)
  write_attribute(
      :params,
      normalize_params(params)
  )
end