vityaman-edu / lms

A simple learning management system.
Apache License 2.0
4 stars 0 forks source link

Try to use OpenAPI fuzzing #78

Closed vityaman closed 4 months ago

vityaman commented 4 months ago

Depends on #33

vityaman commented 4 months ago

Sends requests with valid method and path, but does not use type constraints and therefore can't bypass first level validation and get inside business logic

https://github.com/matusf/openapi-fuzzer

vityaman commented 4 months ago

The same problem

https://github.com/KissPeter/APIFuzzer

vityaman commented 4 months ago

So maybe we need to write our own "fuzzer"

vityaman commented 4 months ago

This uses examples to generate input, so able to bypass validation. Helped to found some unhandled databases exceptions.

https://github.com/microsoft/restler-fuzzer

RESTler/restler/Restler compile --api_spec lms/botalka/src/main/resources/static/openapi/api.yml

RESTler/restler/Restler test --settings settings.json --grammar_file Compile/grammar.py --dictionary_file Compile/dict.json

# settings.json
{
  "host": "lms-botalka",
  "target_port": 8080,
  "no_ssl": true
}
vityaman commented 4 months ago

Found a new one

https://github.com/EMResearch/EvoMaster

vityaman commented 4 months ago

Looks cool:

https://github.com/schemathesis/schemathesis