1 package com.jsql.view.swing.panel.preferences;
2
3 import com.jsql.view.swing.panel.PanelPreferences;
4 import com.jsql.view.swing.ui.BasicColoredSpinnerUI;
5 import com.jsql.view.swing.util.MediatorHelper;
6 import org.apache.commons.lang3.StringUtils;
7
8 import javax.swing.*;
9 import java.awt.*;
10 import java.awt.event.ActionListener;
11 import java.util.stream.Stream;
12
13 public class PanelInjection extends JPanel {
14
15 private final JCheckBox checkboxIsNotShowingVulnReport = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isNotShowingVulnReport());
16 private final JCheckBox checkboxIsNotSearchingCharInsertion = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isNotSearchingCharInsertion());
17 private final JCheckBox checkboxIsNotInjectingMetadata = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isNotInjectingMetadata());
18 private final JCheckBox checkboxIsParsingForm = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isParsingForm());
19
20 private final JCheckBox checkboxIsCheckingAllParam = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllParam());
21 private final JCheckBox checkboxIsCheckingAllURLParam = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllURLParam());
22 private final JCheckBox checkboxIsCheckingAllRequestParam = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllRequestParam());
23 private final JCheckBox checkboxIsCheckingAllHeaderParam = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllHeaderParam());
24 private final JCheckBox checkboxIsCheckingAllBase64Param = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllBase64Param());
25 private final JCheckBox checkboxIsCheckingAllJSONParam = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllJsonParam());
26 private final JCheckBox checkboxIsCheckingAllCookieParam = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllCookieParam());
27 private final JCheckBox checkboxIsCheckingAllSOAPParam = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isCheckingAllSoapParam());
28
29 private final JCheckBox checkboxIsLimitingNormalIndex = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isLimitingNormalIndex());
30 private final JSpinner spinnerNormalIndexCount = new JSpinner();
31 private final JCheckBox checkboxIsLimitingSleepTimeStrategy = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isLimitingSleepTimeStrategy());
32 private final JSpinner spinnerSleepTimeStrategyCount = new JSpinner();
33
34 private final JCheckBox checkboxIsPerfIndexDisabled = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isPerfIndexDisabled());
35 private final JRadioButton radioIsZipStrategy = new JRadioButton(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isZipStrategy());
36 private final JRadioButton radioIsDefaultStrategy = new JRadioButton(StringUtils.EMPTY, true);
37 private final JRadioButton radioIsDiosStrategy = new JRadioButton(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isDiosStrategy());
38 private final JCheckBox checkboxIsUrlEncodingDisabled = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isUrlEncodingDisabled());
39 private final JCheckBox checkboxIsUrlRandomSuffixDisabled = new JCheckBox(StringUtils.EMPTY, MediatorHelper.model().getMediatorUtils().getPreferencesUtil().isUrlRandomSuffixDisabled());
40
41 public PanelInjection(PanelPreferences panelPreferences) {
42
43 this.checkboxIsNotInjectingMetadata.setName("checkboxIsNotInjectingMetadata");
44 this.checkboxIsNotSearchingCharInsertion.setName("checkboxIsNotSearchingCharInsertion");
45 this.checkboxIsNotShowingVulnReport.setName("checkboxIsNotShowingVulnReport");
46 this.checkboxIsParsingForm.setName("checkboxIsParsingForm");
47 this.checkboxIsCheckingAllURLParam.setName("checkboxIsCheckingAllURLParam");
48 this.checkboxIsCheckingAllRequestParam.setName("checkboxIsCheckingAllRequestParam");
49 this.checkboxIsCheckingAllHeaderParam.setName("checkboxIsCheckingAllHeaderParam");
50 this.checkboxIsCheckingAllJSONParam.setName("checkboxIsCheckingAllJSONParam");
51 this.checkboxIsCheckingAllBase64Param.setName("checkboxIsCheckingAllBase64Param");
52 this.checkboxIsCheckingAllCookieParam.setName("checkboxIsCheckingAllCookieParam");
53 this.checkboxIsCheckingAllSOAPParam.setName("checkboxIsCheckingAllSOAPParam");
54 this.checkboxIsPerfIndexDisabled.setName("checkboxIsPerfIndexDisabled");
55 this.radioIsZipStrategy.setName("radioIsZipStrategy");
56 this.radioIsDefaultStrategy.setName("radioIsDefaultStrategy");
57 this.radioIsDiosStrategy.setName("radioIsDiosStrategy");
58 this.checkboxIsUrlEncodingDisabled.setName("checkboxIsUrlEncodingDisabled");
59 this.checkboxIsUrlRandomSuffixDisabled.setName("checkboxIsUrlRandomSuffixDisabled");
60 this.checkboxIsLimitingNormalIndex.setName("checkboxIsLimitingNormalIndex");
61 this.checkboxIsLimitingSleepTimeStrategy.setName("checkboxIsLimitingSleepTimeStrategy");
62
63 this.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
64
65 this.checkboxIsPerfIndexDisabled.setToolTipText(
66 "<html>Reduce Normal calibration URL, useful when host rejects large URL."
67 + "<br>Should be enabled when Zip mode is activated.</html>"
68 );
69
70 var tooltipParseForm =
71 "<html>Create name=value params from HTML forms' extracted data.<br>"
72 + "Sometimes mandatory params are contained in forms.<br>"
73 + "It makes easy adding such params to requests.</html>";
74 this.checkboxIsParsingForm.setToolTipText(tooltipParseForm);
75 this.checkboxIsParsingForm.setFocusable(false);
76 var labelIsParsingForm = new JButton("Get HTML tags <input/> and add parameters to URL and Request");
77 labelIsParsingForm.setToolTipText(tooltipParseForm);
78 labelIsParsingForm.addActionListener(actionEvent -> {
79
80 this.checkboxIsParsingForm.setSelected(!this.checkboxIsParsingForm.isSelected());
81 panelPreferences.getActionListenerSave().actionPerformed(null);
82 });
83
84 var tooltipIsNotInjectingMetadata = "Not injecting metadata saves time, particularly for Blind and Time strategies";
85 this.checkboxIsNotInjectingMetadata.setToolTipText(tooltipIsNotInjectingMetadata);
86 this.checkboxIsNotInjectingMetadata.setFocusable(false);
87 var labelIsNotInjectingMetadata = new JButton("Disable search of database name, version and user metadata");
88 labelIsNotInjectingMetadata.setToolTipText(tooltipIsNotInjectingMetadata);
89 labelIsNotInjectingMetadata.addActionListener(actionEvent -> {
90
91 this.checkboxIsNotInjectingMetadata.setSelected(!this.checkboxIsNotInjectingMetadata.isSelected());
92 panelPreferences.getActionListenerSave().actionPerformed(null);
93 });
94
95 var tooltipIsNotSearchingCharInsertion = "<html>Injection query starts usually with prefix like <b>quote</b> or <b>parenthesis</b>:<br>" +
96 "- ...&injectMe=' union select...<br>" +
97 "- ...&injectMe=) union select...<br>" +
98 "Default is searching for the prefix but can be disabled to save time when prefix is already set by the user.</html>";
99 this.checkboxIsNotSearchingCharInsertion.setToolTipText(tooltipIsNotSearchingCharInsertion);
100 this.checkboxIsNotSearchingCharInsertion.setFocusable(false);
101 var labelIsNotSearchingCharInsertion = new JButton("Disable search for character insertion");
102 labelIsNotSearchingCharInsertion.setToolTipText(tooltipIsNotSearchingCharInsertion);
103 labelIsNotSearchingCharInsertion.addActionListener(actionEvent -> {
104
105 this.checkboxIsNotSearchingCharInsertion.setSelected(!this.checkboxIsNotSearchingCharInsertion.isSelected());
106 panelPreferences.getActionListenerSave().actionPerformed(null);
107 });
108
109 this.checkboxIsNotShowingVulnReport.setFocusable(false);
110 var labelIsNotShowingVulnReport = new JButton("Disable showing vulnerability report");
111 labelIsNotShowingVulnReport.addActionListener(actionEvent -> {
112
113 this.checkboxIsNotShowingVulnReport.setSelected(!this.checkboxIsNotShowingVulnReport.isSelected());
114 panelPreferences.getActionListenerSave().actionPerformed(null);
115 });
116
117 var tooltipIsSleepTimeStrategy = "<html>Time strategy waits an arbitrary number of seconds for a page to respond.<br>Amount of seconds can be lowered on a stable environment like local tests in order to save time.</html>";
118 this.checkboxIsLimitingSleepTimeStrategy.setToolTipText(tooltipIsSleepTimeStrategy);
119 this.checkboxIsLimitingSleepTimeStrategy.setFocusable(false);
120 var labelIsLimitingSleepTimeStrategy = new JButton("Delay Time strategy for");
121 labelIsLimitingSleepTimeStrategy.setToolTipText(tooltipIsSleepTimeStrategy);
122 labelIsLimitingSleepTimeStrategy.addActionListener(actionEvent -> {
123
124 this.checkboxIsLimitingSleepTimeStrategy.setSelected(!this.checkboxIsLimitingSleepTimeStrategy.isSelected());
125 panelPreferences.getActionListenerSave().actionPerformed(null);
126 });
127
128 var panelSleepTimeStrategy = new JPanel(new BorderLayout());
129 panelSleepTimeStrategy.add(labelIsLimitingSleepTimeStrategy, BorderLayout.WEST);
130 panelSleepTimeStrategy.add(this.spinnerSleepTimeStrategyCount, BorderLayout.CENTER);
131 panelSleepTimeStrategy.add(new JLabel(" s ; default 5s"), BorderLayout.EAST);
132 panelSleepTimeStrategy.setMaximumSize(new Dimension(125, this.spinnerSleepTimeStrategyCount.getPreferredSize().height));
133 this.spinnerSleepTimeStrategyCount.addChangeListener(e -> panelPreferences.getActionListenerSave().actionPerformed(null));
134
135 int countSleepTimeStrategy = MediatorHelper.model().getMediatorUtils().getPreferencesUtil().countSleepTimeStrategy();
136 var spinnerSleepTimeStrategy = new SpinnerNumberModel(
137 countSleepTimeStrategy <= 0 ? 15 : countSleepTimeStrategy,
138 1,
139 30,
140 1
141 );
142 this.spinnerSleepTimeStrategyCount.setModel(spinnerSleepTimeStrategy);
143 this.spinnerSleepTimeStrategyCount.setUI(new BasicColoredSpinnerUI());
144 this.spinnerSleepTimeStrategyCount.addMouseWheelListener(new SpinnerMouseWheelListener());
145
146 var tooltipIsLimitingNormalIndex = "Maximum number of columns to check on UNION based queries";
147 this.checkboxIsLimitingNormalIndex.setToolTipText(tooltipIsLimitingNormalIndex);
148 this.checkboxIsLimitingNormalIndex.setFocusable(false);
149 var labelIsLimitingNormalIndex = new JButton("Limit Normal UNION strategy to");
150 labelIsLimitingNormalIndex.setToolTipText(tooltipIsLimitingNormalIndex);
151 labelIsLimitingNormalIndex.addActionListener(actionEvent -> {
152
153 this.checkboxIsLimitingNormalIndex.setSelected(!this.checkboxIsLimitingNormalIndex.isSelected());
154 panelPreferences.getActionListenerSave().actionPerformed(null);
155 });
156
157 var panelIsLimitingNormalIndex = new JPanel(new BorderLayout());
158 panelIsLimitingNormalIndex.add(labelIsLimitingNormalIndex, BorderLayout.WEST);
159 panelIsLimitingNormalIndex.add(this.spinnerNormalIndexCount, BorderLayout.CENTER);
160 panelIsLimitingNormalIndex.add(new JLabel(" column(s) ; default 50 columns"), BorderLayout.EAST);
161 panelIsLimitingNormalIndex.setMaximumSize(new Dimension(250, this.spinnerNormalIndexCount.getPreferredSize().height));
162 this.spinnerNormalIndexCount.addChangeListener(e -> panelPreferences.getActionListenerSave().actionPerformed(null));
163
164 int countNormalIndex = MediatorHelper.model().getMediatorUtils().getPreferencesUtil().countNormalIndex();
165 var spinnerCountNormalIndex = new SpinnerNumberModel(
166 countNormalIndex <= 0 ? 50 : countNormalIndex,
167 1,
168 200,
169 1
170 );
171 this.spinnerNormalIndexCount.setModel(spinnerCountNormalIndex);
172 this.spinnerNormalIndexCount.setUI(new BasicColoredSpinnerUI());
173 this.spinnerNormalIndexCount.addMouseWheelListener(new SpinnerMouseWheelListener());
174
175 var labelIsCheckingAllParam = new JButton("Inject every parameters (ignore user's selection)");
176 var labelIsCheckingAllURLParam = new JButton("Inject every URL parameters when URL method is selected");
177 var labelIsCheckingAllRequestParam = new JButton("Inject every Request parameters when Request method is selected");
178 var labelIsCheckingAllHeaderParam = new JButton("Inject every Header parameters when Header method is selected");
179 var labelIsCheckingAllCookieParam = new JButton("Inject every cookie parameters");
180 var labelIsCheckingAllJSONParam = new JButton("Inject every JSON parameters");
181 var labelIsCheckingAllBase64Param = new JButton("Inject Base64 parameters");
182 var labelIsCheckingAllSOAPParam = new JButton("Inject SOAP parameters in Request body");
183
184 var labelIsDefaultStrategy = new JButton("Use Default mode (use this ; no change to URL or processing)");
185 var labelIsDiosStrategy = new JButton("Use Dios mode (less queries ; do not use with Error strategies)");
186 labelIsDiosStrategy.setToolTipText(
187 "<html>Mode Dump In One Shot injects a single query that gets all the data at once."
188 + "<br>Faster than default mode for Normal and Error strats but requires volume of data to not be huge.</html>"
189 );
190 var labelIsZipStrategy = new JButton("Use Zip mode (smaller SQL queries ; reduce URL size but less efficient)");
191 labelIsZipStrategy.setToolTipText(
192 "<html>Zip mode injects small queries, useful when host rejects large URL."
193 + "<br>Downside is metadata like table or row count is not fetched.</html>"
194 );
195 var labelIsUrlEncodingDisabled = new JButton("Disable URL encoding (smaller URL)");
196 var labelIsUrlRandomSuffixDisabled = new JButton("Disable URL random suffix (strategy Time special use case)");
197 var labelIsPerfIndexDisabled = new JButton("Disable calibration (smaller SQL query during Normal index selection only)");
198
199 var emptyLabelGeneralInjection = new JLabel();
200 var labelGeneralInjection = new JLabel("<html><b>Processing</b></html>");
201 var emptyLabelParamsInjection = new JLabel();
202 var labelParamsInjection = new JLabel("<html><br /><b>URL parameters</b></html>");
203 var emptyLabelSpecial = new JLabel();
204 var labelSpecial = new JLabel("<html><br /><b>Special parameters</b></html>");
205 var emptyLabelQuerySize = new JLabel();
206 var labelQuerySize = new JLabel("<html><br /><b>Reduce URL size (advanced)</b></html>");
207
208 ActionListener actionListenerCheckingAllParam = actionEvent -> {
209
210 if (actionEvent.getSource() != this.checkboxIsCheckingAllParam) {
211 this.checkboxIsCheckingAllParam.setSelected(!this.checkboxIsCheckingAllParam.isSelected());
212 }
213
214 this.checkboxIsCheckingAllURLParam.setSelected(this.checkboxIsCheckingAllParam.isSelected());
215 this.checkboxIsCheckingAllRequestParam.setSelected(this.checkboxIsCheckingAllParam.isSelected());
216 this.checkboxIsCheckingAllHeaderParam.setSelected(this.checkboxIsCheckingAllParam.isSelected());
217
218 this.checkboxIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
219 this.checkboxIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
220 this.checkboxIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
221
222 labelIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
223 labelIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
224 labelIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
225
226 panelPreferences.getActionListenerSave().actionPerformed(null);
227 };
228
229 this.checkboxIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
230 this.checkboxIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
231 this.checkboxIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
232
233 labelIsCheckingAllURLParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
234 labelIsCheckingAllRequestParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
235 labelIsCheckingAllHeaderParam.setEnabled(!this.checkboxIsCheckingAllParam.isSelected());
236
237 labelIsCheckingAllParam.addActionListener(actionListenerCheckingAllParam);
238 labelIsCheckingAllURLParam.addActionListener(actionEvent -> {
239
240 this.checkboxIsCheckingAllURLParam.setSelected(!this.checkboxIsCheckingAllURLParam.isSelected());
241 panelPreferences.getActionListenerSave().actionPerformed(null);
242 });
243 labelIsCheckingAllRequestParam.addActionListener(actionEvent -> {
244
245 this.checkboxIsCheckingAllRequestParam.setSelected(!this.checkboxIsCheckingAllRequestParam.isSelected());
246 panelPreferences.getActionListenerSave().actionPerformed(null);
247 });
248 labelIsCheckingAllHeaderParam.addActionListener(actionEvent -> {
249
250 this.checkboxIsCheckingAllHeaderParam.setSelected(!this.checkboxIsCheckingAllHeaderParam.isSelected());
251 panelPreferences.getActionListenerSave().actionPerformed(null);
252 });
253 labelIsCheckingAllJSONParam.addActionListener(actionEvent -> {
254
255 this.checkboxIsCheckingAllJSONParam.setSelected(!this.checkboxIsCheckingAllJSONParam.isSelected());
256 panelPreferences.getActionListenerSave().actionPerformed(null);
257 });
258 labelIsCheckingAllBase64Param.addActionListener(actionEvent -> {
259
260 this.checkboxIsCheckingAllBase64Param.setSelected(!this.checkboxIsCheckingAllBase64Param.isSelected());
261 panelPreferences.getActionListenerSave().actionPerformed(null);
262 });
263 labelIsCheckingAllCookieParam.addActionListener(actionEvent -> {
264
265 this.checkboxIsCheckingAllCookieParam.setSelected(!this.checkboxIsCheckingAllCookieParam.isSelected());
266 panelPreferences.getActionListenerSave().actionPerformed(null);
267 });
268 labelIsCheckingAllSOAPParam.addActionListener(actionEvent -> {
269
270 this.checkboxIsCheckingAllSOAPParam.setSelected(!this.checkboxIsCheckingAllSOAPParam.isSelected());
271 panelPreferences.getActionListenerSave().actionPerformed(null);
272 });
273 labelIsPerfIndexDisabled.addActionListener(actionEvent -> {
274
275 this.checkboxIsPerfIndexDisabled.setSelected(!this.checkboxIsPerfIndexDisabled.isSelected());
276 panelPreferences.getActionListenerSave().actionPerformed(null);
277 });
278 labelIsZipStrategy.addActionListener(actionEvent -> {
279
280 this.radioIsZipStrategy.setSelected(!this.radioIsZipStrategy.isSelected());
281 panelPreferences.getActionListenerSave().actionPerformed(null);
282 });
283 labelIsDiosStrategy.addActionListener(actionEvent -> {
284
285 this.radioIsDiosStrategy.setSelected(!this.radioIsDiosStrategy.isSelected());
286 panelPreferences.getActionListenerSave().actionPerformed(null);
287 });
288 labelIsDefaultStrategy.addActionListener(actionEvent -> {
289
290 this.radioIsDefaultStrategy.setSelected(!this.radioIsDefaultStrategy.isSelected());
291 panelPreferences.getActionListenerSave().actionPerformed(null);
292 });
293 labelIsUrlEncodingDisabled.addActionListener(actionEvent -> {
294
295 this.checkboxIsUrlEncodingDisabled.setSelected(!this.checkboxIsUrlEncodingDisabled.isSelected());
296 panelPreferences.getActionListenerSave().actionPerformed(null);
297 });
298 labelIsUrlRandomSuffixDisabled.addActionListener(actionEvent -> {
299
300 this.checkboxIsUrlRandomSuffixDisabled.setSelected(!this.checkboxIsUrlRandomSuffixDisabled.isSelected());
301 panelPreferences.getActionListenerSave().actionPerformed(null);
302 });
303
304 this.checkboxIsCheckingAllParam.addActionListener(actionListenerCheckingAllParam);
305
306 Stream.of(
307 this.checkboxIsNotInjectingMetadata,
308 this.checkboxIsNotSearchingCharInsertion,
309 this.checkboxIsNotShowingVulnReport,
310 this.checkboxIsParsingForm,
311 this.checkboxIsCheckingAllURLParam,
312 this.checkboxIsCheckingAllRequestParam,
313 this.checkboxIsCheckingAllHeaderParam,
314 this.checkboxIsCheckingAllJSONParam,
315 this.checkboxIsCheckingAllBase64Param,
316 this.checkboxIsCheckingAllCookieParam,
317 this.checkboxIsCheckingAllSOAPParam,
318 this.checkboxIsPerfIndexDisabled,
319 this.radioIsZipStrategy,
320 this.radioIsDiosStrategy,
321 this.radioIsDefaultStrategy,
322 this.checkboxIsUrlEncodingDisabled,
323 this.checkboxIsUrlRandomSuffixDisabled,
324 this.checkboxIsLimitingNormalIndex,
325 this.checkboxIsLimitingSleepTimeStrategy
326 )
327 .forEach(button -> button.addActionListener(panelPreferences.getActionListenerSave()));
328
329 Stream.of(
330 labelIsParsingForm,
331 labelIsNotInjectingMetadata,
332 labelIsNotSearchingCharInsertion,
333 labelIsNotShowingVulnReport,
334 labelIsCheckingAllParam,
335 labelIsCheckingAllURLParam,
336 labelIsCheckingAllRequestParam,
337 labelIsCheckingAllHeaderParam,
338 labelIsCheckingAllJSONParam,
339 labelIsCheckingAllBase64Param,
340 labelIsCheckingAllCookieParam,
341 labelIsCheckingAllSOAPParam,
342 labelIsPerfIndexDisabled,
343 labelIsZipStrategy,
344 labelIsDiosStrategy,
345 labelIsDefaultStrategy,
346 labelIsUrlEncodingDisabled,
347 labelIsUrlRandomSuffixDisabled,
348 labelIsLimitingNormalIndex,
349 labelIsLimitingSleepTimeStrategy
350 )
351 .forEach(label -> {
352
353 label.setHorizontalAlignment(SwingConstants.LEFT);
354 label.setBorderPainted(false);
355 label.setContentAreaFilled(false);
356 });
357
358 labelIsNotInjectingMetadata.setName("labelIsNotInjectingMetadata");
359 labelIsParsingForm.setName("labelIsParsingForm");
360 labelIsCheckingAllURLParam.setName("labelIsCheckingAllURLParam");
361 labelIsCheckingAllRequestParam.setName("labelIsCheckingAllRequestParam");
362 labelIsCheckingAllHeaderParam.setName("labelIsCheckingAllHeaderParam");
363 labelIsCheckingAllJSONParam.setName("labelIsCheckingAllJSONParam");
364 labelIsCheckingAllBase64Param.setName("labelIsCheckingAllBase64Param");
365 labelIsCheckingAllCookieParam.setName("labelIsCheckingAllCookieParam");
366 labelIsCheckingAllSOAPParam.setName("labelIsCheckingAllSOAPParam");
367 labelIsPerfIndexDisabled.setName("labelIsPerfIndexDisabled");
368 labelIsZipStrategy.setName("labelIsZipStrategy");
369 labelIsDefaultStrategy.setName("labelIsDefaultStrategy");
370 labelIsDiosStrategy.setName("labelIsDiosStrategy");
371 labelIsUrlEncodingDisabled.setName("labelIsUrlEncodingDisabled");
372 labelIsUrlRandomSuffixDisabled.setName("labelIsUrlRandomSuffixDisabled");
373 labelIsLimitingNormalIndex.setName("labelIsLimitingNormalIndex");
374 labelIsLimitingSleepTimeStrategy.setName("labelIsLimitingSleepTimeStrategy");
375
376 var groupSpaceToComment = new ButtonGroup();
377 groupSpaceToComment.add(this.radioIsZipStrategy);
378 groupSpaceToComment.add(this.radioIsDiosStrategy);
379 groupSpaceToComment.add(this.radioIsDefaultStrategy);
380
381 var groupLayout = new GroupLayout(this);
382 this.setLayout(groupLayout);
383
384 groupLayout
385 .setHorizontalGroup(
386 groupLayout
387 .createSequentialGroup()
388 .addGroup(
389 groupLayout
390 .createParallelGroup(GroupLayout.Alignment.TRAILING, false)
391 .addComponent(emptyLabelGeneralInjection)
392 .addComponent(this.checkboxIsParsingForm)
393 .addComponent(this.checkboxIsNotInjectingMetadata)
394 .addComponent(this.checkboxIsNotSearchingCharInsertion)
395 .addComponent(this.checkboxIsNotShowingVulnReport)
396 .addComponent(this.checkboxIsLimitingNormalIndex)
397 .addComponent(this.checkboxIsLimitingSleepTimeStrategy)
398
399 .addComponent(emptyLabelParamsInjection)
400 .addComponent(this.checkboxIsCheckingAllParam)
401 .addComponent(this.checkboxIsCheckingAllURLParam)
402 .addComponent(this.checkboxIsCheckingAllRequestParam)
403 .addComponent(this.checkboxIsCheckingAllHeaderParam)
404
405 .addComponent(emptyLabelSpecial)
406
407 .addComponent(this.checkboxIsCheckingAllJSONParam)
408 .addComponent(this.checkboxIsCheckingAllSOAPParam)
409 .addComponent(this.checkboxIsCheckingAllCookieParam)
410
411 .addComponent(emptyLabelQuerySize)
412 .addComponent(this.radioIsDefaultStrategy)
413 .addComponent(this.radioIsDiosStrategy)
414 .addComponent(this.radioIsZipStrategy)
415 .addComponent(this.checkboxIsPerfIndexDisabled)
416 .addComponent(this.checkboxIsUrlEncodingDisabled)
417 .addComponent(this.checkboxIsUrlRandomSuffixDisabled)
418 )
419 .addGroup(
420 groupLayout
421 .createParallelGroup()
422 .addComponent(labelGeneralInjection)
423 .addComponent(labelIsParsingForm)
424 .addComponent(labelIsNotInjectingMetadata)
425 .addComponent(labelIsNotSearchingCharInsertion)
426 .addComponent(labelIsNotShowingVulnReport)
427 .addComponent(panelIsLimitingNormalIndex)
428 .addComponent(panelSleepTimeStrategy)
429
430 .addComponent(labelParamsInjection)
431 .addComponent(labelIsCheckingAllParam)
432 .addComponent(labelIsCheckingAllURLParam)
433 .addComponent(labelIsCheckingAllRequestParam)
434 .addComponent(labelIsCheckingAllHeaderParam)
435
436 .addComponent(labelSpecial)
437
438 .addComponent(labelIsCheckingAllJSONParam)
439 .addComponent(labelIsCheckingAllSOAPParam)
440 .addComponent(labelIsCheckingAllCookieParam)
441
442 .addComponent(labelQuerySize)
443 .addComponent(labelIsDefaultStrategy)
444 .addComponent(labelIsDiosStrategy)
445 .addComponent(labelIsZipStrategy)
446 .addComponent(labelIsPerfIndexDisabled)
447 .addComponent(labelIsUrlEncodingDisabled)
448 .addComponent(labelIsUrlRandomSuffixDisabled)
449 )
450 );
451
452 groupLayout
453 .setVerticalGroup(
454 groupLayout
455 .createSequentialGroup()
456 .addGroup(
457 groupLayout
458 .createParallelGroup(GroupLayout.Alignment.BASELINE)
459 .addComponent(emptyLabelGeneralInjection)
460 .addComponent(labelGeneralInjection)
461 )
462 .addGroup(
463 groupLayout
464 .createParallelGroup(GroupLayout.Alignment.BASELINE)
465 .addComponent(this.checkboxIsParsingForm)
466 .addComponent(labelIsParsingForm)
467 )
468 .addGroup(
469 groupLayout
470 .createParallelGroup(GroupLayout.Alignment.BASELINE)
471 .addComponent(this.checkboxIsNotInjectingMetadata)
472 .addComponent(labelIsNotInjectingMetadata)
473 )
474 .addGroup(
475 groupLayout
476 .createParallelGroup(GroupLayout.Alignment.BASELINE)
477 .addComponent(this.checkboxIsNotSearchingCharInsertion)
478 .addComponent(labelIsNotSearchingCharInsertion)
479 )
480 .addGroup(
481 groupLayout
482 .createParallelGroup(GroupLayout.Alignment.BASELINE)
483 .addComponent(this.checkboxIsNotShowingVulnReport)
484 .addComponent(labelIsNotShowingVulnReport)
485 )
486 .addGroup(
487 groupLayout
488 .createParallelGroup(GroupLayout.Alignment.BASELINE)
489 .addComponent(this.checkboxIsLimitingNormalIndex)
490 .addComponent(panelIsLimitingNormalIndex)
491 )
492 .addGroup(
493 groupLayout
494 .createParallelGroup(GroupLayout.Alignment.BASELINE)
495 .addComponent(this.checkboxIsLimitingSleepTimeStrategy)
496 .addComponent(panelSleepTimeStrategy)
497 )
498
499 .addGroup(
500 groupLayout
501 .createParallelGroup(GroupLayout.Alignment.BASELINE)
502 .addComponent(emptyLabelParamsInjection)
503 .addComponent(labelParamsInjection)
504 )
505 .addGroup(
506 groupLayout
507 .createParallelGroup(GroupLayout.Alignment.BASELINE)
508 .addComponent(this.checkboxIsCheckingAllParam)
509 .addComponent(labelIsCheckingAllParam)
510 )
511 .addGroup(
512 groupLayout
513 .createParallelGroup(GroupLayout.Alignment.BASELINE)
514 .addComponent(this.checkboxIsCheckingAllURLParam)
515 .addComponent(labelIsCheckingAllURLParam)
516 )
517 .addGroup(
518 groupLayout
519 .createParallelGroup(GroupLayout.Alignment.BASELINE)
520 .addComponent(this.checkboxIsCheckingAllRequestParam)
521 .addComponent(labelIsCheckingAllRequestParam)
522 )
523 .addGroup(
524 groupLayout
525 .createParallelGroup(GroupLayout.Alignment.BASELINE)
526 .addComponent(this.checkboxIsCheckingAllHeaderParam)
527 .addComponent(labelIsCheckingAllHeaderParam)
528 )
529
530 .addGroup(
531 groupLayout
532 .createParallelGroup(GroupLayout.Alignment.BASELINE)
533 .addComponent(emptyLabelSpecial)
534 .addComponent(labelSpecial)
535 )
536
537
538
539
540
541
542 .addGroup(
543 groupLayout
544 .createParallelGroup(GroupLayout.Alignment.BASELINE)
545 .addComponent(this.checkboxIsCheckingAllJSONParam)
546 .addComponent(labelIsCheckingAllJSONParam)
547 )
548 .addGroup(
549 groupLayout
550 .createParallelGroup(GroupLayout.Alignment.BASELINE)
551 .addComponent(this.checkboxIsCheckingAllSOAPParam)
552 .addComponent(labelIsCheckingAllSOAPParam)
553 )
554 .addGroup(
555 groupLayout
556 .createParallelGroup(GroupLayout.Alignment.BASELINE)
557 .addComponent(this.checkboxIsCheckingAllCookieParam)
558 .addComponent(labelIsCheckingAllCookieParam)
559 )
560
561 .addGroup(
562 groupLayout
563 .createParallelGroup(GroupLayout.Alignment.BASELINE)
564 .addComponent(emptyLabelQuerySize)
565 .addComponent(labelQuerySize)
566 )
567 .addGroup(
568 groupLayout
569 .createParallelGroup(GroupLayout.Alignment.BASELINE)
570 .addComponent(this.radioIsDefaultStrategy)
571 .addComponent(labelIsDefaultStrategy)
572 )
573 .addGroup(
574 groupLayout
575 .createParallelGroup(GroupLayout.Alignment.BASELINE)
576 .addComponent(this.radioIsDiosStrategy)
577 .addComponent(labelIsDiosStrategy)
578 )
579 .addGroup(
580 groupLayout
581 .createParallelGroup(GroupLayout.Alignment.BASELINE)
582 .addComponent(this.radioIsZipStrategy)
583 .addComponent(labelIsZipStrategy)
584 )
585 .addGroup(
586 groupLayout
587 .createParallelGroup(GroupLayout.Alignment.BASELINE)
588 .addComponent(this.checkboxIsPerfIndexDisabled)
589 .addComponent(labelIsPerfIndexDisabled)
590 )
591 .addGroup(
592 groupLayout
593 .createParallelGroup(GroupLayout.Alignment.BASELINE)
594 .addComponent(this.checkboxIsUrlEncodingDisabled)
595 .addComponent(labelIsUrlEncodingDisabled)
596 )
597 .addGroup(
598 groupLayout
599 .createParallelGroup(GroupLayout.Alignment.BASELINE)
600 .addComponent(this.checkboxIsUrlRandomSuffixDisabled)
601 .addComponent(labelIsUrlRandomSuffixDisabled)
602 )
603 );
604 }
605
606
607
608
609 public JCheckBox getCheckboxIsNotInjectingMetadata() {
610 return this.checkboxIsNotInjectingMetadata;
611 }
612
613 public JCheckBox getCheckboxIsNotSearchingCharInsertion() {
614 return this.checkboxIsNotSearchingCharInsertion;
615 }
616
617 public JCheckBox getCheckboxIsNotShowingVulnReport() {
618 return this.checkboxIsNotShowingVulnReport;
619 }
620
621 public JCheckBox getCheckboxIsCheckingAllParam() {
622 return this.checkboxIsCheckingAllParam;
623 }
624
625 public JCheckBox getCheckboxIsCheckingAllURLParam() {
626 return this.checkboxIsCheckingAllURLParam;
627 }
628
629 public JCheckBox getCheckboxIsCheckingAllRequestParam() {
630 return this.checkboxIsCheckingAllRequestParam;
631 }
632
633 public JCheckBox getCheckboxIsCheckingAllHeaderParam() {
634 return this.checkboxIsCheckingAllHeaderParam;
635 }
636
637 public JCheckBox getCheckboxIsCheckingAllBase64Param() {
638 return this.checkboxIsCheckingAllBase64Param;
639 }
640
641 public JCheckBox getCheckboxIsCheckingAllJsonParam() {
642 return this.checkboxIsCheckingAllJSONParam;
643 }
644
645 public JCheckBox getCheckboxIsCheckingAllCookieParam() {
646 return this.checkboxIsCheckingAllCookieParam;
647 }
648
649 public JCheckBox getCheckboxIsCheckingAllSoapParam() {
650 return this.checkboxIsCheckingAllSOAPParam;
651 }
652
653 public JCheckBox getCheckboxIsParsingForm() {
654 return this.checkboxIsParsingForm;
655 }
656
657 public JCheckBox getCheckboxIsPerfIndexDisabled() {
658 return this.checkboxIsPerfIndexDisabled;
659 }
660
661 public JRadioButton getRadioIsZipStrategy() {
662 return this.radioIsZipStrategy;
663 }
664
665 public JRadioButton getRadioIsDiosStrategy() {
666 return this.radioIsDiosStrategy;
667 }
668
669 public JRadioButton getRadioIsDefaultStrategy() {
670 return this.radioIsDefaultStrategy;
671 }
672
673 public JCheckBox getCheckboxIsUrlEncodingDisabled() {
674 return this.checkboxIsUrlEncodingDisabled;
675 }
676
677 public JCheckBox getCheckboxIsUrlRandomSuffixDisabled() {
678 return this.checkboxIsUrlRandomSuffixDisabled;
679 }
680
681 public JCheckBox getCheckboxIsLimitingNormalIndex() {
682 return this.checkboxIsLimitingNormalIndex;
683 }
684
685 public JSpinner getSpinnerNormalIndexCount() {
686 return this.spinnerNormalIndexCount;
687 }
688
689 public JCheckBox getCheckboxIsLimitingSleepTimeStrategy() {
690 return this.checkboxIsLimitingSleepTimeStrategy;
691 }
692
693 public JSpinner getSpinnerSleepTimeStrategy() {
694 return this.spinnerSleepTimeStrategyCount;
695 }
696 }