47 lines
1.6 KiB
YAML
47 lines
1.6 KiB
YAML
id: magento-2-exposed-api
|
|
|
|
info:
|
|
name: Exposed Magento 2 API
|
|
author: TechbrunchFR
|
|
severity: info
|
|
description: The API in Magento 2 can be accessed by the world without providing credentials. Through the API information like storefront, (hidden) products including prices are exposed.
|
|
reference:
|
|
- https://support.hypernode.com/en/ecommerce/magento-2/how-to-protect-the-magento-2-api
|
|
metadata:
|
|
max-request: 3
|
|
shodan-query: http.component:"Magento"
|
|
tags: magento
|
|
|
|
http:
|
|
- method: GET
|
|
path:
|
|
- '{{BaseURL}}/rest/V1/products'
|
|
- '{{BaseURL}}/rest/V1/store/storeConfigs'
|
|
- '{{BaseURL}}/rest/V1/store/storeViews'
|
|
|
|
matchers-condition: or
|
|
matchers:
|
|
- type: dsl
|
|
dsl:
|
|
- 'contains(body, "searchCriteria")'
|
|
- 'contains(body, "parameters")'
|
|
- 'contains(body, "message")'
|
|
- 'contains(tolower(header), "application/json")'
|
|
condition: and
|
|
|
|
- type: dsl
|
|
dsl:
|
|
- 'contains(body, "secure_base_link_url")'
|
|
- 'contains(body, "timezone")'
|
|
- 'contains(tolower(header), "application/json")'
|
|
- 'status_code == 200'
|
|
condition: and
|
|
|
|
- type: dsl
|
|
dsl:
|
|
- 'contains(body, "name")'
|
|
- 'contains(body, "website_id")'
|
|
- 'contains(tolower(header), "application/json")'
|
|
- 'status_code == 200'
|
|
condition: and
|
|
# digest: 490a0046304402205108a66aabb3bfd2cfa26f2fd4816a1afa5f3c52dd43f5ea029a1308d8079204022045463c3b751fd59511882d4eb2e2f046f4f31c5f5c3fcc52daac8d8adcb2214d:922c64590222798bb761d5b6d8e72950 |