mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-16 07:56:12 +03:00
Adds some operators to the fuzzing tests
This commit is contained in:
parent
edd0a4bb26
commit
6de5c5984d
@ -118,6 +118,12 @@ using namespace modsecurity;
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
inline void op_test(const std::string &opName, std::string &s) {
|
||||||
|
Operator *op = Operator::instantiate(opName, "");
|
||||||
|
op->init("", nullptr);
|
||||||
|
op->evaluate(nullptr, nullptr, s, nullptr);
|
||||||
|
delete op;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
uint8_t buf[128];
|
uint8_t buf[128];
|
||||||
@ -186,56 +192,52 @@ UrlEncode *urlencode = new UrlEncode("UrlEncode"); urlencode->evaluate(s, NULL);
|
|||||||
Utf8ToUnicode *utf8tounicode = new Utf8ToUnicode("Utf8ToUnicode"); utf8tounicode->evaluate(s, NULL); delete utf8tounicode;
|
Utf8ToUnicode *utf8tounicode = new Utf8ToUnicode("Utf8ToUnicode"); utf8tounicode->evaluate(s, NULL); delete utf8tounicode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Operators, generated by:
|
* Operators, generated by:
|
||||||
*
|
*
|
||||||
* for i in $(grep "class " -Ri src/operators/* | grep " :" | awk {'print $2'}); do echo $i *$(echo $i | awk '{print tolower($0)}') = new $i\(\"$i\", z, false\)\; $(echo $i | awk '{print tolower($0)}')-\>evaluate\(t, s\)\; delete $(echo $i | awk '{print tolower($0)}')\;; done;
|
* for i in $(grep "class " -Ri src/operators/* | grep " :" | awk {'print $2'}); do echo $i *$(echo $i | awk '{print tolower($0)}') = new $i\(\"$i\", z, false\)\; $(echo $i | awk '{print tolower($0)}')-\>evaluate\(t, s\)\; delete $(echo $i | awk '{print tolower($0)}')\;; done;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#if 0
|
op_test("BeginsWith", s);
|
||||||
BeginsWith *beginswith = new BeginsWith("BeginsWith", z, false); beginswith->evaluate(t, s); delete beginswith;
|
op_test("Contains", s);
|
||||||
Contains *contains = new Contains("Contains", z, false); contains->evaluate(t, s); delete contains;
|
op_test("ContainsWord", s);
|
||||||
ContainsWord *containsword = new ContainsWord("ContainsWord", z, false); containsword->evaluate(t, s); delete containsword;
|
op_test("DetectSQLi", s);
|
||||||
DetectSQLi *detectsqli = new DetectSQLi("DetectSQLi", z, false); detectsqli->evaluate(t, s); delete detectsqli;
|
op_test("DetectXSS", s);
|
||||||
DetectXSS *detectxss = new DetectXSS("DetectXSS", z, false); detectxss->evaluate(t, s); delete detectxss;
|
op_test("EndsWith", s);
|
||||||
EndsWith *endswith = new EndsWith("EndsWith", z, false); endswith->evaluate(t, s); delete endswith;
|
op_test("Eq", s);
|
||||||
Eq *eq = new Eq("Eq", z, false); eq->evaluate(t, s); delete eq;
|
//op_test("FuzzyHash", s);
|
||||||
FuzzyHash *fuzzyhash = new FuzzyHash("FuzzyHash", z, false); fuzzyhash->evaluate(t, s); delete fuzzyhash;
|
op_test("Ge", s);
|
||||||
Ge *ge = new Ge("Ge", z, false); ge->evaluate(t, s); delete ge;
|
//op_test("GeoLookup", s);
|
||||||
GeoLookup *geolookup = new GeoLookup("GeoLookup", z, false); geolookup->evaluate(t, s); delete geolookup;
|
//op_test("GsbLookup", s);
|
||||||
GsbLookup *gsblookup = new GsbLookup("GsbLookup", z, false); gsblookup->evaluate(t, s); delete gsblookup;
|
op_test("Gt", s);
|
||||||
Gt *gt = new Gt("Gt", z, false); gt->evaluate(t, s); delete gt;
|
//op_test("InspectFile", s);
|
||||||
InspectFile *inspectfile = new InspectFile("InspectFile", z, false); inspectfile->evaluate(t, s); delete inspectfile;
|
//op_test("IpMatchF", s);
|
||||||
IpMatchF *ipmatchf = new IpMatchF("IpMatchF", z, false); ipmatchf->evaluate(t, s); delete ipmatchf;
|
//op_test("IpMatchFromFile", s);
|
||||||
IpMatchFromFile *ipmatchfromfile = new IpMatchFromFile("IpMatchFromFile", z, false); ipmatchfromfile->evaluate(t, s); delete ipmatchfromfile;
|
op_test("IpMatch", s);
|
||||||
IpMatch *ipmatch = new IpMatch("IpMatch", z, false); ipmatch->evaluate(t, s); delete ipmatch;
|
op_test("Le", s);
|
||||||
Le *le = new Le("Le", z, false); le->evaluate(t, s); delete le;
|
op_test("Lt", s);
|
||||||
Lt *lt = new Lt("Lt", z, false); lt->evaluate(t, s); delete lt;
|
op_test("NoMatch", s);
|
||||||
NoMatch *nomatch = new NoMatch("NoMatch", z, false); nomatch->evaluate(t, s); delete nomatch;
|
//op_test("PmF", s);
|
||||||
PmF *pmf = new PmF("PmF", z, false); pmf->evaluate(t, s); delete pmf;
|
//op_test("PmFromFile", s);
|
||||||
PmFromFile *pmfromfile = new PmFromFile("PmFromFile", z, false); pmfromfile->evaluate(t, s); delete pmfromfile;
|
op_test("Pm", s);
|
||||||
Pm *pm = new Pm("Pm", z, false); pm->evaluate(t, s); delete pm;
|
op_test("Rbl", s);
|
||||||
// Rbl test is too slow to be tested here.
|
op_test("Rsub", s);
|
||||||
// Rbl *rbl = new Rbl("Rbl", z, false); rbl->evaluate(t, s); delete rbl;
|
op_test("Rx", s);
|
||||||
Rsub *rsub = new Rsub("Rsub", z, false); rsub->evaluate(t, s); delete rsub;
|
op_test("StrEq", s);
|
||||||
Rx *rx = new Rx("Rx", z, false); rx->evaluate(t, s); delete rx;
|
op_test("StrMatch", s);
|
||||||
|
op_test("UnconditionalMatch", s);
|
||||||
|
//op_test("ValidateByteRange", s);
|
||||||
|
//op_test("ValidateDTD", s);
|
||||||
|
//op_test("ValidateHash", s);
|
||||||
|
//op_test("ValidateSchema", s);
|
||||||
|
//op_test("ValidateUrlEncoding", s);
|
||||||
|
op_test("ValidateUtf8Encoding", s);
|
||||||
|
op_test("VerifyCC", s);
|
||||||
|
op_test("VerifyCPF", s);
|
||||||
|
op_test("VerifySSN", s);
|
||||||
|
op_test("VerifySVNR", s);
|
||||||
|
op_test("Within", s);
|
||||||
|
|
||||||
StrEq *streq = new StrEq("StrEq", z, false); streq->evaluate(t, s); delete streq;
|
|
||||||
|
|
||||||
StrMatch *strmatch = new StrMatch("StrMatch", z, false); strmatch->evaluate(t, s); delete strmatch;
|
|
||||||
UnconditionalMatch *unconditionalmatch = new UnconditionalMatch("UnconditionalMatch", z, false); unconditionalmatch->evaluate(t, s); delete unconditionalmatch;
|
|
||||||
ValidateByteRange *validatebyterange = new ValidateByteRange("ValidateByteRange", z, false); validatebyterange->evaluate(t, s); delete validatebyterange;
|
|
||||||
ValidateDTD *validatedtd = new ValidateDTD("ValidateDTD", z, false); validatedtd->evaluate(t, s); delete validatedtd;
|
|
||||||
ValidateHash *validatehash = new ValidateHash("ValidateHash", z, false); validatehash->evaluate(t, s); delete validatehash;
|
|
||||||
ValidateSchema *validateschema = new ValidateSchema("ValidateSchema", z, false); validateschema->evaluate(t, s); delete validateschema;
|
|
||||||
ValidateUrlEncoding *validateurlencoding = new ValidateUrlEncoding("ValidateUrlEncoding", z, false); validateurlencoding->evaluate(t, s); delete validateurlencoding;
|
|
||||||
ValidateUtf8Encoding *validateutf8encoding = new ValidateUtf8Encoding("ValidateUtf8Encoding", z, false); validateutf8encoding->evaluate(t, s); delete validateutf8encoding;
|
|
||||||
VerifyCC *verifycc = new VerifyCC("VerifyCC", z, false); verifycc->evaluate(t, s); delete verifycc;
|
|
||||||
VerifyCPF *verifycpf = new VerifyCPF("VerifyCPF", z, false); verifycpf->evaluate(t, s); delete verifycpf;
|
|
||||||
VerifySSN *verifyssn = new VerifySSN("VerifySSN", z, false); verifyssn->evaluate(t, s); delete verifyssn;
|
|
||||||
Within *within = new Within("Within", z, false); within->evaluate(t, s); delete within;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ModSec API
|
* ModSec API
|
||||||
|
Loading…
x
Reference in New Issue
Block a user