42 lines
1.3 KiB
YAML
42 lines
1.3 KiB
YAML
id: magento-detect
|
|
|
|
info:
|
|
name: Magento Detect
|
|
author: TechbrunchFR
|
|
severity: info
|
|
description: Identify Magento
|
|
reference:
|
|
- https://devdocs.magento.com/guides/v2.4/graphql/
|
|
classification:
|
|
cpe: cpe:2.3:a:magento:magento:*:*:*:*:*:*:*:*
|
|
metadata:
|
|
verified: true
|
|
max-request: 2
|
|
vendor: magento
|
|
product: magento
|
|
shodan-query: http.component:"Magento"
|
|
tags: magento,tech
|
|
|
|
http:
|
|
- method: GET
|
|
path:
|
|
- '{{BaseURL}}'
|
|
- '{{BaseURL}}/graphql?query=+{customerDownloadableProducts+{+items+{+date+download_url}}+}'
|
|
|
|
# There might be a better way to do that, the idea of this check is that Magento might be behind some kind of proxy when
|
|
# consumed by a SPA/PWA app, so we need a valid GraphQL query from Magento to check reference[1]
|
|
matchers-condition: or
|
|
matchers:
|
|
- type: dsl
|
|
dsl:
|
|
- 'contains(tolower(header), "x-magento")'
|
|
- 'status_code == 200'
|
|
condition: and
|
|
|
|
- type: dsl
|
|
dsl:
|
|
- 'contains(body, "graphql-authorization")'
|
|
- 'contains(body, "The current customer")'
|
|
- 'status_code == 200'
|
|
condition: and
|
|
# digest: 4a0a00473045022016ad140be400ce01e3eecf2d1da962a2769b8a20035edd839b297cf990710129022100903ad9c8d39a2918924efc58345a5a3428e2b50a351d64ca683e26c8679581e1:922c64590222798bb761d5b6d8e72950 |