Field Fuzzers
CATS has currently 60 registered Field
Fuzzers:
AbugidasInStringFields
- iterate through each field and send values containing abugidas charsDecimalFieldsLeftBoundaryFuzzer
- iterate through each Number field (either float or double) and send requests with outside the range values on the left side in the targeted fieldDecimalFieldsRightBoundaryFuzzer
- iterate through each Number field (either float or double) and send requests with outside the range values on the right side in the targeted fieldDecimalValuesInIntegerFieldsFuzzer
- iterate through each Integer field and send requests with decimal values in the targeted fieldDefaultValuesInFieldsFuzzer
- iterate through each field with default values defined and send a happy flow requestEmptyStringValuesInFieldsFuzzer
- iterate through each field and send requests with empty String values in the targeted fieldExamplesFields
- send a request for every unique exampleExtremeNegativeValueDecimalFieldsFuzzer
- iterate through each Number field and send requests with the lowest value possible in the targeted fieldExtremeNegativeValueIntegerFieldsFuzzer
- iterate through each Integer field and send requests with the lowest value possible in the targeted fieldExtremePositiveValueDecimalFieldsFuzzer
- iterate through each Number field and send requests with the highest value possible in the targeted fieldExtremePositiveValueInIntegerFieldsFuzzer
- iterate through each Integer field and send requests with the highest value possible in the targeted fieldIntegerFieldsLeftBoundaryFuzzer
- iterate through each Integer field and send requests with outside the range values on the left side in the targeted fieldIntegerFieldsRightBoundaryFuzzer
- iterate through each Integer field and send requests with outside the range values on the right side in the targeted fieldInvalidValuesInEnumsFieldsFuzzer
- iterate through each ENUM field and send invalid valuesInvalidReferencesFieldsFuzzer
- iterate through each path fuzz the path parameters with invalid referencesIterateThroughEnumValuesFieldsFuzzer
- iterate through each enum field and send happy flow requests iterating through each possible enum valuesLeadingWhitespacesInFieldsTrimValidateFuzzer
- iterate through each field and send requests with Unicode whitespaces and invisible separators prefixing the current value in the targeted fieldLeadingControlCharsInFieldsTrimValidateFuzzer
- iterate through each field and send requests with Unicode control chars prefixing the current value in the targeted fieldLeadingSingleCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values prefixed with single code points emojisLeadingMultiCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values prefixed with multi code points emojisMaxLengthExactValuesInStringFieldsFuzzer
- iterate through each String fields that have maxLength declared and send requests with values matching the maxLength size/value in the targeted fieldMaximumExactValuesInNumericFieldsFuzzer
- iterate through each Number and Integer fields that have maximum declared and send requests with values matching the maximum size/value in the targeted fieldMinLengthExactValuesInStringFieldsFuzzer
- iterate through each String fields that have minLength declared and send requests with values matching the minLength size/value in the targeted fieldMinimumExactValuesInNumericFieldsFuzzer
- iterate through each Number and Integer fields that have minimum declared and send requests with values matching the minimum size/value in the targeted fieldNewFieldsFuzzer
- send a 'happy' flow request and add a new field inside the request called 'catsFuzzyField'NullValuesInFieldsFuzzer
- iterate through each field and send requests with null values in the targeted fieldOnlyControlCharsInFieldsTrimValidateFuzzer
- iterate through each field and send values with control chars onlyOnlyWhitespacesInFieldsTrimValidateFuzzer
- iterate through each field and send values with unicode separators onlyOnlySingleCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values with single code point emojis onlyOnlyMultiCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values with multi code point emojis onlyOverflowArraySizeFields
- iterate through each array field and replace it with overflow array valuesOverflowMapSizeFields
- iterate through each dictionary/hashmap field and replace it with overflow dictionary/hashmap valuesRandomStringsInBooleanFields
- iterate through each Boolean field and send random stringsRemoveFieldsFuzzer
- iterate through each request fields and remove certain fields according to the supplied 'fieldsFuzzingStrategy'ReplaceArraysWithPrimitivesFields
- iterate through each array field and replace it with primitive valuesReplaceArraysWithSimpleObjectsFields
- iterate through each array field and replace it with simple object valuesReplaceObjectsWithArraysFields
- iterate through each object field and replace it with array valuesReplaceObjectsWithPrimitivesFields
- iterate through each non-primitive field and replace it with primitive valuesReplacePrimitivesWithArraysFields
- iterate through each primitive field and replace it with array valuesReplacePrimitivesWithObjectsFields
- iterate through each primitive field and replace it with object valuesStringFieldsLeftBoundaryFuzzer
- iterate through each String field and send requests with outside the range values on the left side in the targeted fieldStringFieldsRightBoundaryFuzzer
- iterate through each String field and send requests with outside the range values on the right side in the targeted fieldStringFormatAlmostValidValuesFuzzer
- iterate through each String field and get its 'format' value (i.e. email, ip, uuid, date, datetime, etc); send requests with values which are almost valid (i.e. email@yhoo. for email, 888.1.1. for ip, etc) in the targeted fieldStringFormatTotallyWrongValuesFuzzer
- iterate through each String field and get its 'format' value (i.e. email, ip, uuid, date, datetime, etc); send requests with values which are totally wrong (i.e. abcd for email, 1244. for ip, etc) in the targeted fieldStringsInNumericFieldsFuzzer
- iterate through each Integer (int, long) and Number field (float, double) and send requests having thefuzz
string value in the targeted fieldTrailingWhitespacesInFieldsTrimValidateFuzzer
- iterate through each field and send requests with trailing with Unicode whitespaces and invisible separators in the targeted fieldTrailingControlCharsInFieldsTrimValidateFuzzer
- iterate through each field and send requests with trailing with Unicode control chars in the targeted fieldTrailingSingleCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values trailed with single code point emojisTrailingMultiCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values trailed with multi code point emojisUserDictionaryFieldsFuzzer
- iterates through each request fields and sends values from the user supplied dictionaryVeryLargeStringsFuzzer
- iterate through each String field and send requests with very large values (40000 characters) in the targeted fieldVeryLargeDecimalsInNumericFieldsFuzzer
- iterate through each numeric field and send requests with very large numbers (40000 characters) in the targeted fieldVeryLargeIntegersInNumericFieldsFuzzer
- iterate through each numeric field and send requests with very large numbers (40000 characters) in the targeted fieldVeryLargeUnicodeStringsInFieldsFuzzer
- iterate through each field and send requests with very large random unicode values in the targeted fieldWithinControlCharsInFieldsSanitizeValidateFuzzer
- iterate through each field and send values containing unicode control charsWithinSingleCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values containing single code point emojisWithinMultiCodePointEmojisInFieldsTrimValidateFuzzer
- iterate through each field and send values containing multi code point emojisZalgoTextInStringFieldsValidateSanitizeFuzzer
- iterate through each field and send values containing zalgo textZeroWidthCharsInNamesFields
- iterate through each field and insert zero-width characters in the field namesZeroWidthCharsInValuesFields
- iterate through each field and send values containing zero-width characters
You can run only these Fuzzers by supplying the --checkFields
argument.
📄️ Abugidas In Strings
This Fuzzer has 2 flavours depending on the --sanitizationStrategy.
📄️ Decimal Fields Left Boundary
| Item | Description |
📄️ Decimal Fields Right Boundary
| Item | Description |
📄️ Decimal Numbers In Integers
| Item | Description |
📄️ Default Values
| Item | Description |
📄️ Empty Strings
| Item | Description |
📄️ Examples
| Item | Description |
📄️ Extreme Negative Numbers In Decimals
| Item | Description |
📄️ Extreme Negative Numbers In Integers
| Item | Description |
📄️ Extreme Positive Numbers In Decimals
| Item | Description |
📄️ Extreme Positive Numbers In Integers
| Item | Description |
📄️ Integer Fields Left Boundary
| Item | Description |
📄️ Integer Fields Right Boundary
| Item | Description |
📄️ Invalid References
| Item | Description |
📄️ Invalid Values In Enums
| Item | Description |
📄️ Iterate Through Enum Values
| Item | Description |
📄️ Leading Control Characters
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Leading Multi Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Leading Single Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Leading Whitespaces
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Max Length Exact Values In Strings
| Item | Description |
📄️ Maximum Exact Values In Numbers
| Item | Description |
📄️ Min Length Exact Values In Strings
| Item | Description |
📄️ Minimum Exact Values In Numbers
| Item | Description |
📄️ New Fields
| Item | Description |
📄️ Null Values
| Item | Description |
📄️ Only Control Characters
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Only Multi Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Only Single Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Only Whitespaces
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Overflow Array Size
| Item | Description |
📄️ Overflow Map Size
| Item | Description |
📄️ Random Strings In Booleans
| Item | Description |
📄️ Remove Fields
| Item | Description |
📄️ Replace Arrays With Primitives
| Item | Description |
📄️ Replace Arrays With Simple Objects
| Item | Description |
📄️ Replace Objects With Arrays
| Item | Description |
📄️ Replace Objects With Primitives
| Item | Description |
📄️ Replace Primitives With Arrays
| Item | Description |
📄️ Replace Primitives With Objects
| Item | Description |
📄️ string-format-almost-valid
Run cats list --formats for a full list of supported formats.
📄️ string-format-wrong-values
Run cats list --formats for a full list of supported formats.
📄️ String Fields Left Boundary
| Item | Description |
📄️ String Fields Right Boundary
| Item | Description |
📄️ Strings in Numbers
| Item | Description |
📄️ Trailing Control Characters
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Trailing Multi Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Trailing Single Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Trailing Whitespaces
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Very Large Decimals In Numbers
| Item | Description |
📄️ Very Large Integers In Numbers
| Item | Description |
📄️ Very Large Strings
| Item | Description |
📄️ Very Large Unicode Strings
| Item | Description |
📄️ Within Control Characters
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Within Multi Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Within Single Code Point Emojis
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Within Whitespaces
This Fuzzer has 2 flavours depending on the --edgeSpacesStrategy.
📄️ Zalgo Text
This Fuzzer has 2 flavours depending on the --sanitizationStrategy.
📄️ Zero-Width Characters in Field Names
| Item | Description |
📄️ Zero-Width Characters in Field Values
| Item | Description |