API Security CheckList
API Security CheckList
Checklist
API Security
API Security
Verb Tampering: GET /api/trips/1 → POST /api/trips/1 POST /api/trips DELETE /api/trips/1
Try Object IDs in HTTP headers and bodies, URLs tend to be less vulnerable.
Try Numeric IDs when facing a GUID/UUID GET /api/users/6b95d962-df38 → GET /api/users/1
Ruby application HTTP parameter containing a URL → Pipe as the first character and then a shell command.
Developer APIs differs with mobile and web APIs. Test them separately.
Non-Production environments tend to be less secure (staging/qa/etc.) Leverage this fact to bypass AuthZ,
AuthN, rate limiting & input validation.
Expand your attack surface and test old versions of APKs IPAs.
Misc
Google Dorks
site:target.tld inurl:api
site:target.tld intitle:"index of" "api.yaml"
site:target.tld inurl:/application.wadl
site:target.tld ext:wsdl inurl:/%24metadata
site:target.tld ext:wadl
site:target.tld ext:wsdl
Checklist 1
user filetype:wadl
user filetype:wsdl
username[]=John
username[$neq]=lalala
{"username": "John"}
{"username": true}
{"username": null}
{"username": 1}
{"username": [true]}
{"username": ["John", true]}
{"username": {"$neq": "lalala"}}
Checklist 2