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