View Javadoc
1   package com.jsql.view.swing.panel.preferences;
2   
3   import com.jsql.view.swing.panel.PanelPreferences;
4   import com.jsql.view.swing.panel.preferences.listener.SpinnerMouseWheelListener;
5   import com.jsql.view.swing.text.JPopupTextField;
6   import com.jsql.view.swing.text.listener.DocumentListenerEditing;
7   import com.jsql.view.swing.util.MediatorHelper;
8   
9   import javax.swing.*;
10  import javax.swing.event.DocumentListener;
11  import java.awt.*;
12  import java.awt.event.ActionListener;
13  import java.util.Arrays;
14  import java.util.stream.Stream;
15  
16  public class PanelInjection extends JPanel {
17  
18      private final JCheckBox checkboxIsNotShowingVulnReport = new JCheckBox("Disable showing vulnerability report", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isNotShowingVulnReport());
19      private final JCheckBox checkboxIsNotSearchingCharInsertion = new JCheckBox("Disable search for character insertion", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isNotSearchingCharInsertion());
20      private final JCheckBox checkboxIsNotInjectingMetadata = new JCheckBox("Disable search of database name, version and user metadata", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isNotInjectingMetadata());
21      private final JCheckBox checkboxIsParsingForm = new JCheckBox("Get HTML tags <input/> and add parameters to URL and Request", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isParsingForm());
22      
23      private final JCheckBox checkboxIsCheckingAllParam = new JCheckBox("Inject every parameters (ignore user's selection)", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllParam());
24      private final JCheckBox checkboxIsCheckingAllURLParam = new JCheckBox("Inject every URL parameters when URL method is selected", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllURLParam());
25      private final JCheckBox checkboxIsCheckingAllRequestParam = new JCheckBox("Inject every Request parameters when Request method is selected", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllRequestParam());
26      private final JCheckBox checkboxIsCheckingAllHeaderParam = new JCheckBox("Inject every Header parameters when Header method is selected", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllHeaderParam());
27      private final JCheckBox checkboxIsCheckingAllBase64Param = new JCheckBox("Inject Base64 parameters", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllBase64Param());
28      private final JCheckBox checkboxIsCheckingAllJSONParam = new JCheckBox("Inject every JSON parameters", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllJsonParam());
29      private final JCheckBox checkboxIsCheckingAllCookieParam = new JCheckBox("Inject every cookie parameters", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllCookieParam());
30      private final JCheckBox checkboxIsCheckingAllSOAPParam = new JCheckBox("Inject SOAP parameters in Request body", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllSoapParam());
31  
32      private final JCheckBox checkboxIsLimitingUnionIndex = new JCheckBox("Limit Union strategy:", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isLimitingUnionIndex());
33      private final JSpinner spinnerUnionIndexCount = new JSpinner();
34      private final JCheckBox checkboxIsLimitingSleepTimeStrategy = new JCheckBox("Delay Time strategy:", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isLimitingSleepTimeStrategy());
35      private final JSpinner spinnerSleepTimeStrategyCount = new JSpinner();
36  
37      private final JCheckBox checkboxIsPerfIndexDisabled = new JCheckBox("Disable calibration (smaller SQL query during Union index selection only)", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isPerfIndexDisabled());
38      private final JRadioButton radioIsDefaultStrategy = new JRadioButton("Use Default mode (keep unchanged ; URL and processing unchanged)", true);
39      private final JRadioButton radioIsZipStrategy = new JRadioButton("Use Zip mode (smaller SQL queries ; reduce URL size but less efficient)", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isZipStrategy());
40      private final JRadioButton radioIsDiosStrategy = new JRadioButton("Use Dios mode (less queries ; do not use with Error strategies)", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isDiosStrategy());
41      private final JCheckBox checkboxIsUrlEncodingDisabled = new JCheckBox("Disable URL encoding (smaller URL)", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isUrlEncodingDisabled());
42      private final JCheckBox checkboxIsUrlRandomSuffixDisabled = new JCheckBox("Disable URL random suffix (strategy Time special use case)", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isUrlRandomSuffixDisabled());
43  
44      private final JTextField textfieldDnsDomain = new JPopupTextField("e.g custom-domain.com", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().getDnsDomain()).getProxy();
45      private final JTextField textfieldDnsPort = new JPopupTextField("e.g 53", MediatorHelper.model().getMediatorUtils().getPreferencesUtil().getDnsPort()).getProxy();
46  
47      public PanelInjection(PanelPreferences panelPreferences) {
48          this.checkboxIsNotInjectingMetadata.setName("checkboxIsNotInjectingMetadata");
49          this.checkboxIsNotSearchingCharInsertion.setName("checkboxIsNotSearchingCharInsertion");
50          this.checkboxIsNotShowingVulnReport.setName("checkboxIsNotShowingVulnReport");
51          this.checkboxIsParsingForm.setName("checkboxIsParsingForm");
52          this.checkboxIsCheckingAllURLParam.setName("checkboxIsCheckingAllURLParam");
53          this.checkboxIsCheckingAllRequestParam.setName("checkboxIsCheckingAllRequestParam");
54          this.checkboxIsCheckingAllHeaderParam.setName("checkboxIsCheckingAllHeaderParam");
55          this.checkboxIsCheckingAllJSONParam.setName("checkboxIsCheckingAllJSONParam");
56          this.checkboxIsCheckingAllBase64Param.setName("checkboxIsCheckingAllBase64Param");
57          this.checkboxIsCheckingAllCookieParam.setName("checkboxIsCheckingAllCookieParam");
58          this.checkboxIsCheckingAllSOAPParam.setName("checkboxIsCheckingAllSOAPParam");
59          this.checkboxIsPerfIndexDisabled.setName("checkboxIsPerfIndexDisabled");
60          this.radioIsZipStrategy.setName("radioIsZipStrategy");
61          this.radioIsDefaultStrategy.setName("radioIsDefaultStrategy");
62          this.radioIsDiosStrategy.setName("radioIsDiosStrategy");
63          this.checkboxIsUrlEncodingDisabled.setName("checkboxIsUrlEncodingDisabled");
64          this.checkboxIsUrlRandomSuffixDisabled.setName("checkboxIsUrlRandomSuffixDisabled");
65          this.checkboxIsLimitingUnionIndex.setName("checkboxIsLimitingUnionIndex");
66          this.checkboxIsLimitingSleepTimeStrategy.setName("checkboxIsLimitingSleepTimeStrategy");
67          
68          this.checkboxIsPerfIndexDisabled.setToolTipText(
69              "<html>Reduce Union calibration URL, useful when host rejects large URL."
70              + "<br>Should be enabled when Zip mode is activated.</html>"
71          );
72          this.checkboxIsParsingForm.setToolTipText(
73              "<html>Create name=value params from HTML forms' extracted data.<br>"
74              + "Sometimes mandatory params are contained in forms.<br>"
75              + "It makes easy adding such params to requests.</html>"
76          );
77          this.checkboxIsNotInjectingMetadata.setToolTipText("Not injecting metadata saves time, particularly for Blind and Time strategies");
78          this.checkboxIsNotSearchingCharInsertion.setToolTipText(
79              "<html>Injection query starts usually with prefix like <b>quote</b> or <b>parenthesis</b>:<br>" +
80              "- ...&injectMe=' union select...<br>" +
81              "- ...&injectMe=) union select...<br>" +
82              "Default is searching for the prefix but can be disabled to save time when prefix is already set by the user.</html>"
83          );
84          this.checkboxIsLimitingSleepTimeStrategy.setToolTipText("<html>Time strategy waits a given number of seconds for a page to respond (fallback to default if unchecked).<br>Amount of seconds can be lowered on a stable environment to save time (e.g. local tests).</html>");
85  
86          var panelSleepTimeStrategy = new JPanel();
87          panelSleepTimeStrategy.setLayout(new BoxLayout(panelSleepTimeStrategy, BoxLayout.X_AXIS));
88          panelSleepTimeStrategy.add(new JLabel("Adjust delay to "), BorderLayout.WEST);
89          panelSleepTimeStrategy.add(this.spinnerSleepTimeStrategyCount, BorderLayout.CENTER);
90          panelSleepTimeStrategy.add(new JLabel(" s ; default 5s"), BorderLayout.EAST);
91          panelSleepTimeStrategy.setMaximumSize(new Dimension(125, this.spinnerSleepTimeStrategyCount.getPreferredSize().height));
92          int countSleepTimeStrategy = MediatorHelper.model().getMediatorUtils().getPreferencesUtil().countSleepTimeStrategy();
93          var spinnerSleepTimeStrategy = new SpinnerNumberModel(
94              countSleepTimeStrategy <= 0 ? 15 : countSleepTimeStrategy,
95              1,
96              30,
97              1
98          );
99          this.spinnerSleepTimeStrategyCount.setModel(spinnerSleepTimeStrategy);
100         this.spinnerSleepTimeStrategyCount.addMouseWheelListener(new SpinnerMouseWheelListener());
101         this.spinnerSleepTimeStrategyCount.addChangeListener(e -> panelPreferences.getActionListenerSave().actionPerformed(null));
102 
103         this.checkboxIsLimitingUnionIndex.setToolTipText("Maximum number of columns to check on UNION based queries");
104 
105         var panelIsLimitingUnionIndex = new JPanel();
106         panelIsLimitingUnionIndex.setLayout(new BoxLayout(panelIsLimitingUnionIndex, BoxLayout.X_AXIS));
107         panelIsLimitingUnionIndex.add(new JLabel("Search for up to "));
108         panelIsLimitingUnionIndex.add(this.spinnerUnionIndexCount);
109         panelIsLimitingUnionIndex.add(new JLabel(" column(s) ; default 50 columns"));
110         panelIsLimitingUnionIndex.setMaximumSize(new Dimension(325, this.spinnerUnionIndexCount.getPreferredSize().height));
111         int countUnionIndex = MediatorHelper.model().getMediatorUtils().getPreferencesUtil().countUnionIndex();
112         var spinnerCountUnionIndex = new SpinnerNumberModel(
113             countUnionIndex <= 0 ? 50 : countUnionIndex,
114             1,
115             200,
116             1
117         );
118         this.spinnerUnionIndexCount.setModel(spinnerCountUnionIndex);
119         this.spinnerUnionIndexCount.addMouseWheelListener(new SpinnerMouseWheelListener());
120         this.spinnerUnionIndexCount.addChangeListener(e -> panelPreferences.getActionListenerSave().actionPerformed(null));
121 
122         this.radioIsDiosStrategy.setToolTipText(
123             "<html>Mode Dump In One Shot injects a single query that gets all the data at once."
124             + "<br>Faster than default mode for Union and Error strats but requires volume of data to not be huge.</html>"
125         );
126         this.radioIsZipStrategy.setToolTipText(
127             "<html>Zip mode injects small queries, useful when host rejects large URL."
128             + "<br>Downside is metadata like table or row count is not fetched.</html>"
129         );
130 
131         var labelGeneralInjection = new JLabel("<html><b>Processing</b></html>");
132         var labelParamsInjection = new JLabel("<html><br><b>URL parameters</b></html>");
133         var labelSpecial = new JLabel("<html><br><b>Special parameters</b></html>");
134         var labelQuerySize = new JLabel("<html><br><b>Reduce URL size (advanced)</b></html>");
135         var labelDns = new JLabel("<html><br><b>DNS exfiltration (advanced, working also on local database without registrar)</b></html>");
136         Arrays.asList(
137             labelGeneralInjection,
138             labelParamsInjection,
139             labelSpecial,
140             labelQuerySize,
141             labelDns
142         ).forEach(label -> label.setBorder(PanelGeneral.MARGIN));
143 
144         ActionListener actionListenerCheckingAllParam = actionEvent -> {
145             if (actionEvent.getSource() != this.checkboxIsCheckingAllParam) {
146                 this.checkboxIsCheckingAllParam.setSelected(!this.checkboxIsCheckingAllParam.isSelected());
147             }
148             
149             this.checkboxIsCheckingAllURLParam.setSelected(this.checkboxIsCheckingAllParam.isSelected());
150             this.checkboxIsCheckingAllRequestParam.setSelected(this.checkboxIsCheckingAllParam.isSelected());
151             this.checkboxIsCheckingAllHeaderParam.setSelected(this.checkboxIsCheckingAllParam.isSelected());
152             
153             this.checkboxIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
154             this.checkboxIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
155             this.checkboxIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
156             
157             panelPreferences.getActionListenerSave().actionPerformed(null);
158         };
159         
160         this.checkboxIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
161         this.checkboxIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
162         this.checkboxIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
163 
164         this.checkboxIsCheckingAllParam.addActionListener(actionListenerCheckingAllParam);
165         
166         Stream.of(
167             this.checkboxIsNotInjectingMetadata,
168             this.checkboxIsNotSearchingCharInsertion,
169             this.checkboxIsNotShowingVulnReport,
170             this.checkboxIsParsingForm,
171             this.checkboxIsCheckingAllURLParam,
172             this.checkboxIsCheckingAllRequestParam,
173             this.checkboxIsCheckingAllHeaderParam,
174             this.checkboxIsCheckingAllJSONParam,
175             this.checkboxIsCheckingAllBase64Param,
176             this.checkboxIsCheckingAllCookieParam,
177             this.checkboxIsCheckingAllSOAPParam,
178             this.checkboxIsPerfIndexDisabled,
179             this.radioIsZipStrategy,
180             this.radioIsDiosStrategy,
181             this.radioIsDefaultStrategy,
182             this.checkboxIsUrlEncodingDisabled,
183             this.checkboxIsUrlRandomSuffixDisabled,
184             this.checkboxIsLimitingUnionIndex,
185             this.checkboxIsLimitingSleepTimeStrategy
186         )
187         .forEach(button -> button.addActionListener(panelPreferences.getActionListenerSave()));
188 
189         var panelDnsDomain = new JPanel();
190         panelDnsDomain.setLayout(new BoxLayout(panelDnsDomain, BoxLayout.X_AXIS));
191         panelDnsDomain.add(new JLabel("Domain name "));
192         panelDnsDomain.add(this.textfieldDnsDomain);
193         panelDnsDomain.add(new JLabel(" ; default custom-domain.com"));
194         panelDnsDomain.setMaximumSize(new Dimension(400, this.textfieldDnsDomain.getPreferredSize().height));
195         var panelDnsPort = new JPanel();
196         panelDnsPort.setLayout(new BoxLayout(panelDnsPort, BoxLayout.X_AXIS));
197         panelDnsPort.add(new JLabel("DNS port "));
198         panelDnsPort.add(this.textfieldDnsPort);
199         panelDnsPort.add(new JLabel(" ; default 53"));
200         panelDnsPort.setMaximumSize(new Dimension(125, this.textfieldDnsPort.getPreferredSize().height));
201 
202         DocumentListener documentListenerSave = new DocumentListenerEditing() {
203             @Override
204             public void process() {
205                 panelPreferences.getActionListenerSave().actionPerformed(null);
206             }
207         };
208 
209         Stream.of(this.textfieldDnsDomain, this.textfieldDnsPort).forEach(
210             textField -> textField.getDocument().addDocumentListener(documentListenerSave)
211         );
212 
213         this.textfieldDnsDomain.setToolTipText(
214             "<html>"
215             + "<b>This domain must redirect to your IP address that runs jSQL</b><br>"
216             + "You can run DNS exfiltration on a local database, replace your ISP box address<br>"
217             + "by your system address in your OS preferred DNS.<br>"
218             + "</html>"
219         );
220         this.textfieldDnsPort.setToolTipText("The DNS server port started by jSQL");
221 
222         var groupSpaceToComment = new ButtonGroup();
223         groupSpaceToComment.add(this.radioIsZipStrategy);
224         groupSpaceToComment.add(this.radioIsDiosStrategy);
225         groupSpaceToComment.add(this.radioIsDefaultStrategy);
226 
227         var groupLayout = new GroupLayout(this);
228         this.setLayout(groupLayout);
229 
230         groupLayout.setHorizontalGroup(
231             groupLayout
232             .createSequentialGroup()
233             .addGroup(
234                 groupLayout
235                 .createParallelGroup(GroupLayout.Alignment.LEADING, false)
236                 .addComponent(labelGeneralInjection)
237                 .addComponent(this.checkboxIsParsingForm)
238                 .addComponent(this.checkboxIsNotInjectingMetadata)
239                 .addComponent(this.checkboxIsNotSearchingCharInsertion)
240                 .addComponent(this.checkboxIsNotShowingVulnReport)
241                 .addComponent(this.checkboxIsLimitingUnionIndex)
242                 .addComponent(panelIsLimitingUnionIndex)
243                 .addComponent(this.checkboxIsLimitingSleepTimeStrategy)
244                 .addComponent(panelSleepTimeStrategy)
245 
246                 .addComponent(labelParamsInjection)
247                 .addComponent(this.checkboxIsCheckingAllParam)
248                 .addComponent(this.checkboxIsCheckingAllURLParam)
249                 .addComponent(this.checkboxIsCheckingAllRequestParam)
250                 .addComponent(this.checkboxIsCheckingAllHeaderParam)
251 
252                 .addComponent(labelSpecial)
253 //                .addComponent(this.checkboxIsCheckingAllBase64Param)
254                 .addComponent(this.checkboxIsCheckingAllJSONParam)
255                 .addComponent(this.checkboxIsCheckingAllSOAPParam)
256                 .addComponent(this.checkboxIsCheckingAllCookieParam)
257 
258                 .addComponent(labelQuerySize)
259                 .addComponent(this.radioIsDefaultStrategy)
260                 .addComponent(this.radioIsDiosStrategy)
261                 .addComponent(this.radioIsZipStrategy)
262                 .addComponent(this.checkboxIsPerfIndexDisabled)
263                 .addComponent(this.checkboxIsUrlEncodingDisabled)
264                 .addComponent(this.checkboxIsUrlRandomSuffixDisabled)
265 
266                 .addComponent(labelDns)
267                 .addComponent(panelDnsDomain)
268                 .addComponent(panelDnsPort)
269             )
270         );
271 
272         groupLayout.setVerticalGroup(
273             groupLayout
274             .createSequentialGroup()
275             .addGroup(
276                 groupLayout
277                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
278                 .addComponent(labelGeneralInjection)
279             )
280             .addGroup(
281                 groupLayout
282                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
283                 .addComponent(this.checkboxIsParsingForm)
284             )
285             .addGroup(
286                 groupLayout
287                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
288                 .addComponent(this.checkboxIsNotInjectingMetadata)
289             )
290             .addGroup(
291                 groupLayout
292                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
293                 .addComponent(this.checkboxIsNotSearchingCharInsertion)
294             )
295             .addGroup(
296                 groupLayout
297                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
298                 .addComponent(this.checkboxIsNotShowingVulnReport)
299             )
300             .addGroup(
301                 groupLayout
302                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
303                 .addComponent(this.checkboxIsLimitingUnionIndex)
304             )
305             .addGroup(
306                 groupLayout
307                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
308                 .addComponent(panelIsLimitingUnionIndex)
309             )
310             .addGroup(
311                 groupLayout
312                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
313                 .addComponent(this.checkboxIsLimitingSleepTimeStrategy)
314             )
315             .addGroup(
316                 groupLayout
317                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
318                 .addComponent(panelSleepTimeStrategy)
319             )
320 
321             .addGroup(
322                 groupLayout
323                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
324                 .addComponent(labelParamsInjection)
325             )
326             .addGroup(
327                 groupLayout
328                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
329                 .addComponent(this.checkboxIsCheckingAllParam)
330             )
331             .addGroup(
332                 groupLayout
333                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
334                 .addComponent(this.checkboxIsCheckingAllURLParam)
335             )
336             .addGroup(
337                 groupLayout
338                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
339                 .addComponent(this.checkboxIsCheckingAllRequestParam)
340             )
341             .addGroup(
342                 groupLayout
343                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
344                 .addComponent(this.checkboxIsCheckingAllHeaderParam)
345             )
346 
347             .addGroup(
348                 groupLayout
349                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
350                 .addComponent(labelSpecial)
351             )
352 //            .addGroup(
353 //                groupLayout
354 //                .createParallelGroup(GroupLayout.Alignment.BASELINE)
355 //                .addComponent(this.checkboxIsCheckingAllBase64Param)
356 //            )
357             .addGroup(
358                 groupLayout
359                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
360                 .addComponent(this.checkboxIsCheckingAllJSONParam)
361             )
362             .addGroup(
363                 groupLayout
364                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
365                 .addComponent(this.checkboxIsCheckingAllSOAPParam)
366             )
367             .addGroup(
368                 groupLayout
369                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
370                 .addComponent(this.checkboxIsCheckingAllCookieParam)
371             )
372 
373             .addGroup(
374                 groupLayout
375                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
376                 .addComponent(labelQuerySize)
377             )
378             .addGroup(
379                 groupLayout
380                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
381                 .addComponent(this.radioIsDefaultStrategy)
382             )
383             .addGroup(
384                 groupLayout
385                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
386                 .addComponent(this.radioIsDiosStrategy)
387             )
388             .addGroup(
389                 groupLayout
390                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
391                 .addComponent(this.radioIsZipStrategy)
392             )
393             .addGroup(
394                 groupLayout
395                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
396                 .addComponent(this.checkboxIsPerfIndexDisabled)
397             )
398             .addGroup(
399                 groupLayout
400                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
401                 .addComponent(this.checkboxIsUrlEncodingDisabled)
402             )
403             .addGroup(
404                 groupLayout
405                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
406                 .addComponent(this.checkboxIsUrlRandomSuffixDisabled)
407             )
408             .addGroup(
409                 groupLayout
410                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
411                 .addComponent(labelDns)
412             )
413             .addGroup(
414                 groupLayout
415                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
416                 .addComponent(panelDnsDomain)
417             )
418             .addGroup(
419                 groupLayout
420                 .createParallelGroup(GroupLayout.Alignment.BASELINE)
421                 .addComponent(panelDnsPort)
422             )
423         );
424     }
425 
426     
427     // Getter and setter
428     
429     public JCheckBox getCheckboxIsNotInjectingMetadata() {
430         return this.checkboxIsNotInjectingMetadata;
431     }
432     
433     public JCheckBox getCheckboxIsNotSearchingCharInsertion() {
434         return this.checkboxIsNotSearchingCharInsertion;
435     }
436 
437     public JCheckBox getCheckboxIsNotShowingVulnReport() {
438         return this.checkboxIsNotShowingVulnReport;
439     }
440 
441     public JCheckBox getCheckboxIsCheckingAllParam() {
442         return this.checkboxIsCheckingAllParam;
443     }
444     
445     public JCheckBox getCheckboxIsCheckingAllURLParam() {
446         return this.checkboxIsCheckingAllURLParam;
447     }
448     
449     public JCheckBox getCheckboxIsCheckingAllRequestParam() {
450         return this.checkboxIsCheckingAllRequestParam;
451     }
452     
453     public JCheckBox getCheckboxIsCheckingAllHeaderParam() {
454         return this.checkboxIsCheckingAllHeaderParam;
455     }
456     
457     public JCheckBox getCheckboxIsCheckingAllBase64Param() {
458         return this.checkboxIsCheckingAllBase64Param;
459     }
460     
461     public JCheckBox getCheckboxIsCheckingAllJsonParam() {
462         return this.checkboxIsCheckingAllJSONParam;
463     }
464     
465     public JCheckBox getCheckboxIsCheckingAllCookieParam() {
466         return this.checkboxIsCheckingAllCookieParam;
467     }
468     
469     public JCheckBox getCheckboxIsCheckingAllSoapParam() {
470         return this.checkboxIsCheckingAllSOAPParam;
471     }
472     
473     public JCheckBox getCheckboxIsParsingForm() {
474         return this.checkboxIsParsingForm;
475     }
476 
477     public JCheckBox getCheckboxIsPerfIndexDisabled() {
478         return this.checkboxIsPerfIndexDisabled;
479     }
480 
481     public JRadioButton getRadioIsZipStrategy() {
482         return this.radioIsZipStrategy;
483     }
484     
485     public JRadioButton getRadioIsDiosStrategy() {
486         return this.radioIsDiosStrategy;
487     }
488     
489     public JRadioButton getRadioIsDefaultStrategy() {
490         return this.radioIsDefaultStrategy;
491     }
492     
493     public JCheckBox getCheckboxIsUrlEncodingDisabled() {
494         return this.checkboxIsUrlEncodingDisabled;
495     }
496     
497     public JCheckBox getCheckboxIsUrlRandomSuffixDisabled() {
498         return this.checkboxIsUrlRandomSuffixDisabled;
499     }
500 
501     public JCheckBox getCheckboxIsLimitingUnionIndex() {
502         return this.checkboxIsLimitingUnionIndex;
503     }
504     
505     public JSpinner getSpinnerUnionIndexCount() {
506         return this.spinnerUnionIndexCount;
507     }
508     
509     public JCheckBox getCheckboxIsLimitingSleepTimeStrategy() {
510         return this.checkboxIsLimitingSleepTimeStrategy;
511     }
512     
513     public JSpinner getSpinnerSleepTimeStrategy() {
514         return this.spinnerSleepTimeStrategyCount;
515     }
516 
517     public JTextField getTextfieldDnsDomain() {
518         return this.textfieldDnsDomain;
519     }
520 
521     public JTextField getTextfieldDnsPort() {
522         return this.textfieldDnsPort;
523     }
524 }