Detection rules › Sublime MQL

Open redirect: Shibboleth SSO Logout Return Parameter

Severity
high
Type
rule
Source
github.com/sublime-security/sublime-rules

Detects links that contain a Shibboleth SSO logout endpoint with a return parameter, which could be used for open redirect attacks. The rule checks for both direct path inclusion and URL-encoded versions in query parameters. Only triggers on senders with non-common prevalence.

Threat classification

Sublime's own taxonomy (not MITRE ATT&CK).

CategoryValues
Attack typesCredential Phishing
Tactics and techniquesOpen redirect, Evasion

Event coverage

Rule body MQL

type.inbound
and any(body.links,
        // uses shibboleth.sso directly within the path
        (
          strings.icontains(.href_url.path, '/Shibboleth.sso/Logout')
          and strings.icontains(.href_url.path, 'return=')
        )
        // or url encoded within the query_params
        or (
          strings.icontains(.href_url.query_params, 'Shibboleth.sso%2fLogout')
          and strings.icontains(.href_url.query_params, "return%3d")
        )
)
and profile.by_sender_email().prevalence != "common"

Detection logic

Scope: inbound message.

Detects links that contain a Shibboleth SSO logout endpoint with a return parameter, which could be used for open redirect attacks. The rule checks for both direct path inclusion and URL-encoded versions in query parameters. Only triggers on senders with non-common prevalence.

  1. inbound message
  2. any of body.links where any holds:
    • all of:
      • .href_url.path contains '/Shibboleth.sso/Logout'
      • .href_url.path contains 'return='
    • all of:
      • .href_url.query_params contains 'Shibboleth.sso%2fLogout'
      • .href_url.query_params contains 'return%3d'
  3. profile.by_sender_email().prevalence is not 'common'

Inspects: body.links, body.links[].href_url.path, body.links[].href_url.query_params, type.inbound. Sensors: profile.by_sender_email, strings.icontains.

Indicators matched (4)

FieldMatchValue
strings.icontainssubstring/Shibboleth.sso/Logout
strings.icontainssubstringreturn=
strings.icontainssubstringShibboleth.sso%2fLogout
strings.icontainssubstringreturn%3d