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