API Testing Checklist

Passive Reconnaissance

Active Reconnaissance

Endpoint Analysis

OR

API Documentation Conventions

Convention
Example
Meaning

: or {}

/user/:id

/user/{id}

/user/1337

/account/:username

/account/{username}

/account/mart1an

The colon or curly brackets are used by some APIs to indicate a path variable. In other words, “:id” represents the variable for an ID number and “{username}” represents the account username you are trying to access.

[]

/api/v1/user?find=[name]

Square brackets indicate that the input is optional.

||

“blue” || “green” || “red”

Double bars represent different possible values that can be used.

< >

<find-function>

Angle Brackets represent a DomString, which is a 16-bit string

Testing

Additional checks:

Mass Assignment Vulnerabilities\

Mass Assignment with account registration for PrivEsc:

Admin Registration

Blind Mass Assignment: If you suspect an API is vulnerable to Mass Assignment, there is a chance it may ignore the irrelevant variables and accept the variable that matches the expected name and format.

Check different Content-Types

If it's regular POST data try sending arrays, dictionaries

If JSON is supported try to send unexpected data types

If XML is supported, check for XXE

Last updated