View Javadoc
1   package com.jsql.util;
2   
3   import com.jsql.model.InjectionModel;
4   import org.apache.commons.lang3.SystemUtils;
5   
6   import java.util.prefs.Preferences;
7   
8   /**
9    * Utility class to manage JVM preferences previously saved into the system.
10   * Only general settings are processed by this utility, other specific preferences
11   * like those for proxy are defined from specific utility classes.
12   */
13  public class PreferencesUtil {
14      
15      // File path saved in preference.
16      private String pathFile;
17  
18      private boolean isCheckingUpdate = true;
19  
20      // True if bugs are sent to GitHub.
21      private boolean isReportingBugs = true;
22      
23      private boolean is4K = false;
24      
25      private boolean isFollowingRedirection = false;
26      private boolean isHttp2Disabled = false;
27      
28      private boolean isNotInjectingMetadata = false;
29      private boolean isNotSearchingCharInsertion = false;
30      private boolean isNotShowingVulnReport = false;
31  
32      private boolean isCheckingAllParam = false;
33      private boolean isCheckingAllURLParam = false;
34      private boolean isCheckingAllRequestParam = false;
35      private boolean isCheckingAllHeaderParam = false;
36      private boolean isCheckingAllBase64Param = false;
37      private boolean isCheckingAllJsonParam = false;
38      private boolean isCheckingAllCookieParam = false;
39      private boolean isCheckingAllSoapParam = false;
40      
41      private boolean isPerfIndexDisabled = false;
42      private boolean isDefaultStrategy = false;
43      private boolean isZipStrategy = false;
44      private boolean isDiosStrategy = false;
45      private boolean isUrlEncodingDisabled = false;
46      private boolean isUrlRandomSuffixDisabled = false;
47  
48      private boolean isParsingForm = false;
49      private boolean isNotTestingConnection = false;
50      private boolean isNotProcessingCookies = false;
51      private boolean isProcessingCsrf = false;
52      
53      private boolean isTamperingBase64 = false;
54      private boolean isTamperingFunctionComment = false;
55      private boolean isTamperingVersionComment = false;
56      private boolean isTamperingEqualToLike = false;
57      private boolean isTamperingRandomCase = false;
58      private boolean isTamperingEval = false;
59      private boolean isTamperingSpaceToMultilineComment = false;
60      private boolean isTamperingSpaceToDashComment = false;
61      private boolean isTamperingSpaceToSharpComment = false;
62  
63      private String csrfUserTag = "";
64      private String csrfUserTagOutput = "";
65      private boolean isCsrfUserTag = false;
66      private boolean isLimitingThreads = true;
67      private int countLimitingThreads = 5;
68      private boolean isConnectionTimeout = false;
69      private int countConnectionTimeout = 15;
70      private boolean isUnicodeDecodeDisabled = false;
71      private boolean isUrlDecodeDisabled = false;
72  
73      private boolean isStrategyTimeDisabled = false;
74      private boolean isStrategyBlindDisabled = false;
75      private boolean isStrategyMultibitDisabled = false;
76      private boolean isStrategyStackedDisabled = false;
77      private boolean isStrategyErrorDisabled = false;
78      private boolean isStrategyNormalDisabled = false;
79  
80      private boolean isLimitingNormalIndex = false;
81      private int countNormalIndex = 50;
82      private boolean isLimitingSleepTimeStrategy = false;
83      private int countSleepTimeStrategy = 5;
84  
85      /**
86       * Initialize the utility class with previously saved JVM preferences and apply
87       * loaded settings to the system.
88       */
89      public void loadSavedPreferences() {
90          
91          // Use Preferences API to persist proxy configuration
92          Preferences preferences = Preferences.userRoot().node(InjectionModel.class.getName());
93          
94          this.pathFile = preferences.get("pathFile", SystemUtils.USER_DIR);
95          
96          this.isCheckingUpdate = preferences.getBoolean("isCheckingUpdate", true);
97          this.isReportingBugs = preferences.getBoolean("isReportingBugs", true);
98          
99          this.isFollowingRedirection = preferences.getBoolean("isFollowingRedirection", false);
100         this.isHttp2Disabled = preferences.getBoolean("isHttp2Disabled", false);
101         this.isNotInjectingMetadata = preferences.getBoolean("isNotInjectingMetadata", false);
102         this.isNotSearchingCharInsertion = preferences.getBoolean("isNotSearchingCharInsertion", false);
103         this.isNotShowingVulnReport = preferences.getBoolean("isNotShowingVulnReport", false);
104 
105         this.isCheckingAllParam = preferences.getBoolean("isCheckingAllParam", false);
106         this.isCheckingAllURLParam = preferences.getBoolean("isCheckingAllURLParam", false);
107         this.isCheckingAllRequestParam = preferences.getBoolean("isCheckingAllRequestParam", false);
108         this.isCheckingAllHeaderParam = preferences.getBoolean("isCheckingAllHeaderParam", false);
109         this.isCheckingAllBase64Param = preferences.getBoolean("isCheckingAllBase64Param", false);
110         this.isCheckingAllJsonParam = preferences.getBoolean("isCheckingAllJsonParam", false);
111         this.isCheckingAllCookieParam = preferences.getBoolean("isCheckingAllCookieParam", false);
112         this.isCheckingAllSoapParam = preferences.getBoolean("isCheckingAllSoapParam", false);
113         
114         this.isPerfIndexDisabled = preferences.getBoolean("isPerfIndexDisabled", false);
115         this.isDefaultStrategy = preferences.getBoolean("isDefaultStrategy", false);
116         this.isZipStrategy = preferences.getBoolean("isZipStrategy", false);
117         this.isDiosStrategy = preferences.getBoolean("isDiosStrategy", false);
118         this.isUrlEncodingDisabled = preferences.getBoolean("isUrlEncodingDisabled", false);
119         this.isUrlRandomSuffixDisabled = preferences.getBoolean("isUrlRandomSuffixDisabled", false);
120 
121         this.isParsingForm = preferences.getBoolean("isParsingForm", false);
122         this.isNotTestingConnection = preferences.getBoolean("isNotTestingConnection", false);
123         this.isNotProcessingCookies = preferences.getBoolean("isNotProcessingCookies", false);
124         this.isProcessingCsrf = preferences.getBoolean("isProcessingCsrf", false);
125         
126         this.isTamperingBase64 = preferences.getBoolean("isTamperingBase64", false);
127         this.isTamperingEqualToLike = preferences.getBoolean("isTamperingEqualToLike", false);
128         this.isTamperingFunctionComment = preferences.getBoolean("isTamperingFunctionComment", false);
129         this.isTamperingVersionComment = preferences.getBoolean("isTamperingVersionComment", false);
130         this.isTamperingRandomCase = preferences.getBoolean("isTamperingRandomCase", false);
131         this.isTamperingEval = preferences.getBoolean("isTamperingEval", false);
132         this.isTamperingSpaceToDashComment = preferences.getBoolean("isTamperingSpaceToDashComment", false);
133         this.isTamperingSpaceToMultilineComment = preferences.getBoolean("isTamperingSpaceToMultilineComment", false);
134         this.isTamperingSpaceToSharpComment = preferences.getBoolean("isTamperingSpaceToSharpComment", false);
135         
136         this.is4K = preferences.getBoolean("is4K", false);
137         this.isCsrfUserTag = preferences.getBoolean("isCsrfUserTag", false);
138         this.csrfUserTag = preferences.get("csrfUserTag", "");
139         this.csrfUserTagOutput = preferences.get("csrfUserTagOutput", "");
140         this.isLimitingThreads = preferences.getBoolean("isLimitingThreads", true);
141         this.countLimitingThreads = preferences.getInt("countLimitingThreads", 5);
142         this.isConnectionTimeout = preferences.getBoolean("isConnectionTimeout", false);
143         this.countConnectionTimeout = preferences.getInt("countConnectionTimeout", 15);
144         this.isUnicodeDecodeDisabled = preferences.getBoolean("isUnicodeDecodeDisabled", false);
145         this.isUrlDecodeDisabled = preferences.getBoolean("isUrlDecodeDisabled", false);
146         this.countNormalIndex = preferences.getInt("countNormalIndex", 50);
147         this.isLimitingNormalIndex = preferences.getBoolean("isLimitingNormalIndex", false);
148         this.countSleepTimeStrategy = preferences.getInt("countSleepTimeStrategy", 5);
149         this.isLimitingSleepTimeStrategy = preferences.getBoolean("isLimitingSleepTimeStrategy", false);
150 
151         this.isStrategyTimeDisabled = preferences.getBoolean("isStrategyTimeDisabled", false);
152         this.isStrategyBlindDisabled = preferences.getBoolean("isStrategyBlindDisabled", false);
153         this.isStrategyMultibitDisabled = preferences.getBoolean("isStrategyMultibitDisabled", false);
154         this.isStrategyStackedDisabled = preferences.getBoolean("isStrategyStackedDisabled", false);
155         this.isStrategyErrorDisabled = preferences.getBoolean("isStrategyErrorDisabled", false);
156         this.isStrategyNormalDisabled = preferences.getBoolean("isStrategyNormalDisabled", false);
157     }
158     
159     /**
160      * Initialize the utility class, persist preferences and
161      * apply change to the JVM.
162      */
163     public void persist() {
164         
165         var preferences = Preferences.userRoot().node(InjectionModel.class.getName());
166 
167         preferences.putBoolean("isCheckingUpdate", this.isCheckingUpdate);
168         preferences.putBoolean("isReportingBugs", this.isReportingBugs);
169         preferences.putBoolean("is4K", this.is4K);
170         preferences.putBoolean("isUnicodeDecodeDisabled", this.isUnicodeDecodeDisabled);
171         preferences.putBoolean("isUrlDecodeDisabled", this.isUrlDecodeDisabled);
172         preferences.putBoolean("isLimitingThreads", this.isLimitingThreads);
173         preferences.putInt("countLimitingThreads", this.countLimitingThreads);
174         preferences.putBoolean("isConnectionTimeout", this.isConnectionTimeout);
175         preferences.putInt("countConnectionTimeout", this.countConnectionTimeout);
176         preferences.putBoolean("isLimitingNormalIndex", this.isLimitingNormalIndex);
177         preferences.putInt("countNormalIndex", this.countNormalIndex);
178         preferences.putBoolean("isLimitingSleepTimeStrategy", this.isLimitingSleepTimeStrategy);
179         preferences.putInt("countSleepTimeStrategy", this.countSleepTimeStrategy);
180         preferences.putBoolean("isCsrfUserTag", this.isCsrfUserTag);
181         preferences.put("csrfUserTag", this.csrfUserTag);
182         preferences.put("csrfUserTagOutput", this.csrfUserTagOutput);
183         
184         preferences.putBoolean("isFollowingRedirection", this.isFollowingRedirection);
185         preferences.putBoolean("isHttp2Disabled", this.isHttp2Disabled);
186         preferences.putBoolean("isNotInjectingMetadata", this.isNotInjectingMetadata);
187         preferences.putBoolean("isNotSearchingCharInsertion", this.isNotSearchingCharInsertion);
188         preferences.putBoolean("isNotShowingVulnReport", this.isNotShowingVulnReport);
189         preferences.putBoolean("isCheckingAllParam", this.isCheckingAllParam);
190         preferences.putBoolean("isCheckingAllURLParam", this.isCheckingAllURLParam);
191         preferences.putBoolean("isCheckingAllRequestParam", this.isCheckingAllRequestParam);
192         preferences.putBoolean("isCheckingAllHeaderParam", this.isCheckingAllHeaderParam);
193         
194         preferences.putBoolean("isCheckingAllBase64Param", this.isCheckingAllBase64Param);
195         preferences.putBoolean("isCheckingAllJsonParam", this.isCheckingAllJsonParam);
196         preferences.putBoolean("isCheckingAllCookieParam", this.isCheckingAllCookieParam);
197         preferences.putBoolean("isCheckingAllSoapParam", this.isCheckingAllSoapParam);
198         preferences.putBoolean("isParsingForm", this.isParsingForm);
199         preferences.putBoolean("isNotTestingConnection", this.isNotTestingConnection);
200         preferences.putBoolean("isNotProcessingCookies", this.isNotProcessingCookies);
201         preferences.putBoolean("isProcessingCsrf", this.isProcessingCsrf);
202         
203         preferences.putBoolean("isPerfIndexDisabled", this.isPerfIndexDisabled);
204         preferences.putBoolean("isDefaultStrategy", this.isDefaultStrategy);
205         preferences.putBoolean("isZipStrategy", this.isZipStrategy);
206         preferences.putBoolean("isDiosStrategy", this.isDiosStrategy);
207         preferences.putBoolean("isUrlEncodingDisabled", this.isUrlEncodingDisabled);
208         preferences.putBoolean("isUrlRandomSuffixDisabled", this.isUrlRandomSuffixDisabled);
209 
210         preferences.putBoolean("isTamperingBase64", this.isTamperingBase64);
211         preferences.putBoolean("isTamperingEqualToLike", this.isTamperingEqualToLike);
212         preferences.putBoolean("isTamperingVersionComment", this.isTamperingVersionComment);
213         preferences.putBoolean("isTamperingFunctionComment", this.isTamperingFunctionComment);
214         preferences.putBoolean("isTamperingRandomCase", this.isTamperingRandomCase);
215         preferences.putBoolean("isTamperingEval", this.isTamperingEval);
216         preferences.putBoolean("isTamperingSpaceToDashComment", this.isTamperingSpaceToDashComment);
217         preferences.putBoolean("isTamperingSpaceToMultilineComment", this.isTamperingSpaceToMultilineComment);
218         preferences.putBoolean("isTamperingSpaceToSharpComment", this.isTamperingSpaceToSharpComment);
219         
220         preferences.putBoolean("isStrategyTimeDisabled", this.isStrategyTimeDisabled);
221         preferences.putBoolean("isStrategyBlindDisabled", this.isStrategyBlindDisabled);
222         preferences.putBoolean("isStrategyMultibitDisabled", this.isStrategyMultibitDisabled);
223         preferences.putBoolean("isStrategyStackedDisabled", this.isStrategyStackedDisabled);
224         preferences.putBoolean("isStrategyErrorDisabled", this.isStrategyErrorDisabled);
225         preferences.putBoolean("isStrategyNormalDisabled", this.isStrategyNormalDisabled);
226     }
227     
228     /**
229      * Set the general file path to the utility class and persist to JVM preferences.
230      * @param path folder path to persist
231      */
232     public void set(String path) {
233         
234         this.pathFile = path;
235         
236         Preferences preferences = Preferences.userRoot().node(InjectionModel.class.getName());
237         preferences.put("pathFile", this.pathFile);
238     }
239     
240     
241     // Getters and setters
242     
243     public String getPathFile() {
244         return this.pathFile;
245     }
246     
247     public boolean isCheckingUpdate() {
248         return this.isCheckingUpdate;
249     }
250     
251     public boolean isFollowingRedirection() {
252         return this.isFollowingRedirection;
253     }
254     
255     public boolean isHttp2Disabled() {
256         return this.isHttp2Disabled;
257     }
258     
259     public boolean isReportingBugs() {
260         return this.isReportingBugs;
261     }
262 
263     public boolean isNotInjectingMetadata() {
264         return this.isNotInjectingMetadata;
265     }
266 
267     public boolean isNotSearchingCharInsertion() {
268         return this.isNotSearchingCharInsertion;
269     }
270 
271     public boolean isNotShowingVulnReport() {
272         return this.isNotShowingVulnReport;
273     }
274 
275     public boolean isCheckingAllURLParam() {
276         return this.isCheckingAllURLParam;
277     }
278 
279     public boolean isCheckingAllRequestParam() {
280         return this.isCheckingAllRequestParam;
281     }
282 
283     public boolean isCheckingAllHeaderParam() {
284         return this.isCheckingAllHeaderParam;
285     }
286 
287     public boolean isCheckingAllBase64Param() {
288         return this.isCheckingAllBase64Param;
289     }
290     
291     public boolean isCheckingAllJsonParam() {
292         return this.isCheckingAllJsonParam;
293     }
294 
295     public boolean isParsingForm() {
296         return this.isParsingForm;
297     }
298 
299     public boolean isNotTestingConnection() {
300         return this.isNotTestingConnection;
301     }
302 
303     public boolean isNotProcessingCookies() {
304         return this.isNotProcessingCookies;
305     }
306 
307     public boolean isCheckingAllParam() {
308         return this.isCheckingAllParam;
309     }
310 
311     public boolean isProcessingCsrf() {
312         return this.isProcessingCsrf;
313     }
314 
315     public boolean isCheckingAllCookieParam() {
316         return this.isCheckingAllCookieParam;
317     }
318 
319     public boolean isTamperingBase64() {
320         return this.isTamperingBase64;
321     }
322 
323     public boolean isTamperingFunctionComment() {
324         return this.isTamperingFunctionComment;
325     }
326 
327     public boolean isTamperingEqualToLike() {
328         return this.isTamperingEqualToLike;
329     }
330 
331     public boolean isTamperingRandomCase() {
332         return this.isTamperingRandomCase;
333     }
334 
335     public boolean isTamperingSpaceToMultilineComment() {
336         return this.isTamperingSpaceToMultilineComment;
337     }
338 
339     public boolean isTamperingSpaceToDashComment() {
340         return this.isTamperingSpaceToDashComment;
341     }
342 
343     public boolean isTamperingSpaceToSharpComment() {
344         return this.isTamperingSpaceToSharpComment;
345     }
346 
347     public boolean isTamperingVersionComment() {
348         return this.isTamperingVersionComment;
349     }
350 
351     public boolean isTamperingEval() {
352         return this.isTamperingEval;
353     }
354 
355     public boolean isCheckingAllSoapParam() {
356         return this.isCheckingAllSoapParam;
357     }
358 
359     public boolean is4K() {
360         return this.is4K;
361     }
362 
363     public boolean isLimitingThreads() {
364         return this.isLimitingThreads;
365     }
366     
367     public boolean isLimitingSleepTimeStrategy() {
368         return this.isLimitingSleepTimeStrategy;
369     }
370     
371     public boolean isConnectionTimeout() {
372         return this.isConnectionTimeout;
373     }
374     
375     public boolean isUnicodeDecodeDisabled() {
376         return this.isUnicodeDecodeDisabled;
377     }
378     
379     public boolean isUrlDecodeDisabled() {
380         return this.isUrlDecodeDisabled;
381     }
382     
383     public int countLimitingThreads() {
384         return this.countLimitingThreads;
385     }
386     
387     public int countConnectionTimeout() {
388         return this.countConnectionTimeout;
389     }
390     
391     public int countNormalIndex() {
392         return this.countNormalIndex;
393     }
394     
395     public int countSleepTimeStrategy() {
396         return this.countSleepTimeStrategy;
397     }
398     
399     public boolean isLimitingNormalIndex() {
400         return this.isLimitingNormalIndex;
401     }
402     
403     public boolean isCsrfUserTag() {
404         return this.isCsrfUserTag;
405     }
406     
407     public String csrfUserTag() {
408         return this.csrfUserTag;
409     }
410     
411     public String csrfUserTagOutput() {
412         return this.csrfUserTagOutput;
413     }
414     
415     public boolean isPerfIndexDisabled() {
416         return this.isPerfIndexDisabled;
417     }
418     
419     public boolean isZipStrategy() {
420         return this.isZipStrategy;
421     }
422     
423     public boolean isDefaultStrategy() {
424         return this.isDefaultStrategy;
425     }
426     
427     public boolean isDiosStrategy() {
428         return this.isDiosStrategy;
429     }
430     
431     public boolean isUrlEncodingDisabled() {
432         return this.isUrlEncodingDisabled;
433     }
434     
435     public boolean isUrlRandomSuffixDisabled() {
436         return this.isUrlRandomSuffixDisabled;
437     }
438 
439     public boolean isStrategyTimeDisabled() {
440         return this.isStrategyTimeDisabled;
441     }
442 
443     public boolean isStrategyBlindDisabled() {
444         return this.isStrategyBlindDisabled;
445     }
446 
447     public boolean isStrategyMultibitDisabled() {
448         return this.isStrategyMultibitDisabled;
449     }
450 
451     public boolean isStrategyStackedDisabled() {
452         return this.isStrategyStackedDisabled;
453     }
454 
455     public boolean isStrategyErrorDisabled() {
456         return this.isStrategyErrorDisabled;
457     }
458 
459     public boolean isStrategyNormalDisabled() {
460         return this.isStrategyNormalDisabled;
461     }
462 
463 
464     // Builder true
465 
466     public PreferencesUtil withDiosStrategy() {
467         this.isDiosStrategy = true;
468         return this;
469     }
470     
471     public PreferencesUtil withZipStrategy() {
472         this.isZipStrategy = true;
473         return this;
474     }
475     
476     public PreferencesUtil withDefaultStrategy() {
477         this.isDefaultStrategy = true;
478         return this;
479     }
480     
481     public PreferencesUtil withNotTestingConnection() {
482         this.isNotTestingConnection = true;
483         return this;
484     }
485     
486     public PreferencesUtil withNotInjectingMetadata() {
487         this.isNotInjectingMetadata = true;
488         return this;
489     }
490     
491     public PreferencesUtil withNotSearchingCharInsertion() {
492         this.isNotSearchingCharInsertion = true;
493         return this;
494     }
495 
496     public PreferencesUtil withCheckingAllHeaderParam() {
497         this.isCheckingAllHeaderParam = true;
498         return this;
499     }
500     
501     public PreferencesUtil withIsNotProcessingCookies() {
502         this.isNotProcessingCookies = true;
503         return this;
504     }
505     
506     public PreferencesUtil withProcessingCsrf() {
507         this.isProcessingCsrf = true;
508         return this;
509     }
510     
511     public PreferencesUtil withCheckingAllURLParam() {
512         this.isCheckingAllURLParam = true;
513         return this;
514     }
515     
516     public PreferencesUtil withCheckingAllRequestParam() {
517         this.isCheckingAllRequestParam = true;
518         return this;
519     }
520     
521     public PreferencesUtil withCheckingAllJsonParam() {
522         this.isCheckingAllJsonParam = true;
523         return this;
524     }
525     
526     public PreferencesUtil withCheckingAllSoapParam() {
527         this.isCheckingAllSoapParam = true;
528         return this;
529     }
530     
531     public PreferencesUtil withCheckingUpdate() {
532         this.isCheckingUpdate = true;
533         return this;
534     }
535     
536     public PreferencesUtil withReportingBugs() {
537         this.isReportingBugs = true;
538         return this;
539     }
540     
541     
542     // Builder
543 
544     public PreferencesUtil withIsCheckingUpdate(boolean isCheckingUpdate) {
545         this.isCheckingUpdate = isCheckingUpdate;
546         return this;
547     }
548 
549     public PreferencesUtil withIsReportingBugs(boolean isReportingBugs) {
550         this.isReportingBugs = isReportingBugs;
551         return this;
552     }
553 
554     public PreferencesUtil withIs4K(boolean is4K) {
555         this.is4K = is4K;
556         return this;
557     }
558 
559     public PreferencesUtil withIsFollowingRedirection(boolean isFollowingRedirection) {
560         this.isFollowingRedirection = isFollowingRedirection;
561         return this;
562     }
563     
564     public PreferencesUtil withIsHttp2Disabled(boolean isHttp2Disabled) {
565         this.isHttp2Disabled = isHttp2Disabled;
566         return this;
567     }
568     
569     public PreferencesUtil withIsUnicodeDecodeDisabled(boolean isUnicodeDecodeDisabled) {
570         this.isUnicodeDecodeDisabled = isUnicodeDecodeDisabled;
571         return this;
572     }
573     
574     public PreferencesUtil withIsUrlDecodeDisabled(boolean isUrlDecodeDisabled) {
575         this.isUrlDecodeDisabled = isUrlDecodeDisabled;
576         return this;
577     }
578 
579     public PreferencesUtil withIsNotInjectingMetadata(boolean isNotInjectingMetadata) {
580         this.isNotInjectingMetadata = isNotInjectingMetadata;
581         return this;
582     }
583 
584     public PreferencesUtil withIsNotSearchingCharInsertion(boolean isNotSearchingCharInsertion) {
585         this.isNotSearchingCharInsertion = isNotSearchingCharInsertion;
586         return this;
587     }
588 
589     public PreferencesUtil withIsNotShowingVulnReport(boolean isNotShowingVulnReport) {
590         this.isNotShowingVulnReport = isNotShowingVulnReport;
591         return this;
592     }
593 
594     public PreferencesUtil withIsCheckingAllParam(boolean isCheckingAllParam) {
595         this.isCheckingAllParam = isCheckingAllParam;
596         return this;
597     }
598 
599     public PreferencesUtil withIsCheckingAllURLParam(boolean isCheckingAllURLParam) {
600         this.isCheckingAllURLParam = isCheckingAllURLParam;
601         return this;
602     }
603 
604     public PreferencesUtil withIsCheckingAllRequestParam(boolean isCheckingAllRequestParam) {
605         this.isCheckingAllRequestParam = isCheckingAllRequestParam;
606         return this;
607     }
608 
609     public PreferencesUtil withIsCheckingAllHeaderParam(boolean isCheckingAllHeaderParam) {
610         this.isCheckingAllHeaderParam = isCheckingAllHeaderParam;
611         return this;
612     }
613 
614     public PreferencesUtil withIsCheckingAllBase64Param(boolean isCheckingAllBase64Param) {
615         this.isCheckingAllBase64Param = isCheckingAllBase64Param;
616         return this;
617     }
618     
619     public PreferencesUtil withIsCheckingAllJsonParam(boolean isCheckingAllJSONParam) {
620         this.isCheckingAllJsonParam = isCheckingAllJSONParam;
621         return this;
622     }
623 
624     public PreferencesUtil withIsCheckingAllCookieParam(boolean isCheckingAllCookieParam) {
625         this.isCheckingAllCookieParam = isCheckingAllCookieParam;
626         return this;
627     }
628 
629     public PreferencesUtil withIsCheckingAllSoapParam(boolean isCheckingAllSOAPParam) {
630         this.isCheckingAllSoapParam = isCheckingAllSOAPParam;
631         return this;
632     }
633 
634     public PreferencesUtil withIsParsingForm(boolean isParsingForm) {
635         this.isParsingForm = isParsingForm;
636         return this;
637     }
638 
639     public PreferencesUtil withIsNotTestingConnection(boolean isNotTestingConnection) {
640         this.isNotTestingConnection = isNotTestingConnection;
641         return this;
642     }
643 
644     public PreferencesUtil withIsNotProcessingCookies(boolean isNotProcessingCookies) {
645         this.isNotProcessingCookies = isNotProcessingCookies;
646         return this;
647     }
648 
649     public PreferencesUtil withIsProcessingCsrf(boolean isProcessingCsrf) {
650         this.isProcessingCsrf = isProcessingCsrf;
651         return this;
652     }
653 
654     public PreferencesUtil withIsTamperingBase64(boolean isTamperingBase64) {
655         this.isTamperingBase64 = isTamperingBase64;
656         return this;
657     }
658 
659     public PreferencesUtil withIsTamperingFunctionComment(boolean isTamperingFunctionComment) {
660         this.isTamperingFunctionComment = isTamperingFunctionComment;
661         return this;
662     }
663 
664     public PreferencesUtil withIsTamperingVersionComment(boolean isTamperingVersionComment) {
665         this.isTamperingVersionComment = isTamperingVersionComment;
666         return this;
667     }
668 
669     public PreferencesUtil withIsTamperingEqualToLike(boolean isTamperingEqualToLike) {
670         this.isTamperingEqualToLike = isTamperingEqualToLike;
671         return this;
672     }
673 
674     public PreferencesUtil withIsTamperingRandomCase(boolean isTamperingRandomCase) {
675         this.isTamperingRandomCase = isTamperingRandomCase;
676         return this;
677     }
678 
679     public PreferencesUtil withIsTamperingEval(boolean isTamperingEval) {
680         this.isTamperingEval = isTamperingEval;
681         return this;
682     }
683 
684     public PreferencesUtil withIsTamperingSpaceToMultilineComment(boolean isTamperingSpaceToMultilineComment) {
685         this.isTamperingSpaceToMultilineComment = isTamperingSpaceToMultilineComment;
686         return this;
687     }
688 
689     public PreferencesUtil withIsTamperingSpaceToDashComment(boolean isTamperingSpaceToDashComment) {
690         this.isTamperingSpaceToDashComment = isTamperingSpaceToDashComment;
691         return this;
692     }
693 
694     public PreferencesUtil withIsTamperingSpaceToSharpComment(boolean isTamperingSpaceToSharpComment) {
695         this.isTamperingSpaceToSharpComment = isTamperingSpaceToSharpComment;
696         return this;
697     }
698 
699     public PreferencesUtil withCsrfUserTag(String csrfUserTag) {
700         this.csrfUserTag = csrfUserTag;
701         return this;
702     }
703     
704     public PreferencesUtil withCsrfUserTagOutput(String csrfUserTagOutput) {
705         this.csrfUserTagOutput = csrfUserTagOutput;
706         return this;
707     }
708 
709     public PreferencesUtil withIsCsrfUserTag(boolean isCsrfUserTag) {
710         this.isCsrfUserTag = isCsrfUserTag;
711         return this;
712     }
713 
714     public PreferencesUtil withIsLimitingThreads(boolean isLimitingThreads) {
715         this.isLimitingThreads = isLimitingThreads;
716         return this;
717     }
718     
719     public PreferencesUtil withIsConnectionTimeout(boolean isConnectionTimeout) {
720         this.isConnectionTimeout = isConnectionTimeout;
721         return this;
722     }
723     
724     public PreferencesUtil withIsLimitingSleepTimeStrategy(boolean isLimitingSleepTimeStrategy) {
725         this.isLimitingSleepTimeStrategy = isLimitingSleepTimeStrategy;
726         return this;
727     }
728 
729     public PreferencesUtil withCountLimitingThreads(int countLimitingThreads) {
730         this.countLimitingThreads = countLimitingThreads;
731         return this;
732     }
733     
734     public PreferencesUtil withCountConnectionTimeout(int countConnectionTimeout) {
735         this.countConnectionTimeout = countConnectionTimeout;
736         return this;
737     }
738     
739     public PreferencesUtil withCountSleepTimeStrategy(int countSleepTimeStrategy) {
740         this.countSleepTimeStrategy = countSleepTimeStrategy;
741         return this;
742     }
743     
744     public PreferencesUtil withIsZipStrategy(boolean isZipStrategy) {
745         this.isZipStrategy = isZipStrategy;
746         return this;
747     }
748     
749     public PreferencesUtil withIsDefaultStrategy(boolean isDefaultStrategy) {
750         this.isDefaultStrategy = isDefaultStrategy;
751         return this;
752     }
753     
754     public PreferencesUtil withIsDiosStrategy(boolean isDiosStrategy) {
755         this.isDiosStrategy = isDiosStrategy;
756         return this;
757     }
758     
759     public PreferencesUtil withIsPerfIndexDisabled(boolean isPerfIndexDisabled) {
760         this.isPerfIndexDisabled = isPerfIndexDisabled;
761         return this;
762     }
763     
764     public PreferencesUtil withIsUrlEncodingDisabled(boolean isUrlEncodingDisabled) {
765         this.isUrlEncodingDisabled = isUrlEncodingDisabled;
766         return this;
767     }
768 
769     public PreferencesUtil withIsUrlRandomSuffixDisabled(boolean isUrlRandomSuffixDisabled) {
770         this.isUrlRandomSuffixDisabled = isUrlRandomSuffixDisabled;
771         return this;
772     }
773 
774     public PreferencesUtil withIsLimitingNormalIndex(boolean isLimitingNormalIndex) {
775         this.isLimitingNormalIndex = isLimitingNormalIndex;
776         return this;
777     }
778 
779     public PreferencesUtil withCountNormalIndex(int countNormalIndex) {
780         this.countNormalIndex = countNormalIndex;
781         return this;
782     }
783 
784     public PreferencesUtil withIsStrategyTimeDisabled(boolean isStrategyTimeDisabled) {
785         this.isStrategyTimeDisabled = isStrategyTimeDisabled;
786         return this;
787     }
788 
789     public PreferencesUtil withIsStrategyBlindDisabled(boolean isStrategyBlindDisabled) {
790         this.isStrategyBlindDisabled = isStrategyBlindDisabled;
791         return this;
792     }
793 
794     public PreferencesUtil withIsStrategyMultibitDisabled(boolean isStrategyMultibitDisabled) {
795         this.isStrategyMultibitDisabled = isStrategyMultibitDisabled;
796         return this;
797     }
798 
799     public PreferencesUtil withIsStrategyStackedDisabled(boolean isStrategyStackedDisabled) {
800         this.isStrategyStackedDisabled = isStrategyStackedDisabled;
801         return this;
802     }
803 
804     public PreferencesUtil withIsStrategyErrorDisabled(boolean isStrategyErrorDisabled) {
805         this.isStrategyErrorDisabled = isStrategyErrorDisabled;
806         return this;
807     }
808 
809     public PreferencesUtil withIsStrategyNormalDisabled(boolean isStrategyNormalDisabled) {
810         this.isStrategyNormalDisabled = isStrategyNormalDisabled;
811         return this;
812     }
813 }