Ability to provide URLs as input for fuzzer
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 42/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- python
- Domain
- testing-qa
Research direction
Start by reading the YAML restrictions file and the generator and mutator flow in monkey.py around line 88, mutators.py around line 12, and generators.py. Trace how property generators are monkey-patched and how _mutate is used. Done means the fuzzer can select supplied invalid or valid URL values with the defined probability and continue mutation from them.
Written by the indexing model from the issue text.
Description
URLs that triggered an internal server error will be passed as input file, and used for another process of generation / mutation.
This is not intended as validation/regression testing, since the URL could be simply used in any test framework directly; but to reuse the end-state(s) of previous fuzzer run(s) that mutated to actual valid URL with error for its further mutations (which could just not happen in previous run).
Alternatively, correct, valid (but perhaps long) URLs could be provided by this way to fuzzer; therefore mutation would start from known input space (and not just randomized generation from $metadata)
What is required to do:
It is possible to manually create a list of invalid values for each entity set's property in the restrictions file (YAML).
- The fuzzer will again monkey patch the generators with an additional probability of selecting an invalid value from the list.
- Patch property generator and mutator (in the module monkey.py#L88)
- Decorate an exiting _mutate function (mutators.py#L12) to enable random select (if - else statement) based on probability defined as a constant. Decorated function will be used in the module generators.py
- Dominant language
- Python
- Stars
- 23
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SAP/odfuzz
-
Bug in CLI runner Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 30/100
-
documentation
Difficulty 1/5 1-3 hours Newbie friendliness 25/100
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
code improvements
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100