22from operator import iconcat
33from typing import Sequence
44
5+ from pirebok .fuzzers .cmdi_fuzzer import CmdiFuzzer
56from pirebok .fuzzers .fuzzer_visitor import FuzzerVisitor
67from pirebok .fuzzers .generic_fuzzer import GenericFuzzer
8+ from pirebok .fuzzers .path_traversal_fuzzer import PathTraversalFuzzer
79from pirebok .fuzzers .sql_fuzzer import SqlFuzzer
8- from pirebok .transformers import GenericTransformer , SqlTransformer , Transformer
10+ from pirebok .fuzzers .xss_fuzzer import XssFuzzer
11+ from pirebok .transformers import (
12+ CmdiTransformer ,
13+ GenericTransformer ,
14+ PathTraversalTransformer ,
15+ SqlTransformer ,
16+ Transformer ,
17+ XssTransformer ,
18+ )
919
1020
1121class FuzzerTransformerResolverVisitor (FuzzerVisitor ):
@@ -23,3 +33,33 @@ def visit_sql(self, fuzzer: SqlFuzzer) -> None:
2333 ],
2434 [],
2535 )
36+
37+ def visit_xss (self , fuzzer : XssFuzzer ) -> None :
38+ self .transformers = reduce (
39+ iconcat ,
40+ [
41+ list (map (lambda x : x (), XssTransformer .__subclasses__ ())), # type: ignore
42+ list (map (lambda x : x (), GenericTransformer .__subclasses__ ())), # type: ignore
43+ ],
44+ [],
45+ )
46+
47+ def visit_cmdi (self , fuzzer : CmdiFuzzer ) -> None :
48+ self .transformers = reduce (
49+ iconcat ,
50+ [
51+ list (map (lambda x : x (), CmdiTransformer .__subclasses__ ())), # type: ignore
52+ list (map (lambda x : x (), GenericTransformer .__subclasses__ ())), # type: ignore
53+ ],
54+ [],
55+ )
56+
57+ def visit_path_traversal (self , fuzzer : PathTraversalFuzzer ) -> None :
58+ self .transformers = reduce (
59+ iconcat ,
60+ [
61+ list (map (lambda x : x (), PathTraversalTransformer .__subclasses__ ())), # type: ignore
62+ list (map (lambda x : x (), GenericTransformer .__subclasses__ ())), # type: ignore
63+ ],
64+ [],
65+ )
0 commit comments