Skip to content

Commit c7dc753

Browse files
committed
Refactoring
1 parent 881f1ca commit c7dc753

File tree

2 files changed

+90
-189
lines changed

2 files changed

+90
-189
lines changed

app.js

Lines changed: 90 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -199,29 +199,6 @@ class SQLMapGenerator {
199199
"versionedmorekeywords",
200200
"xforwardedfor"
201201
];
202-
203-
this.templates = {
204-
basic_get: {
205-
name: "tbd",
206-
description: "tbd",
207-
options: {url: "", batch: true, dbs: true}
208-
},
209-
post_form: {
210-
name: "tbd",
211-
description: "tbd",
212-
options: {url: "", data: "", batch: true}
213-
},
214-
burp_request: {
215-
name: "Burp Request",
216-
description: "tbd",
217-
options: {requestFile: "", batch: true}
218-
},
219-
advanced: {
220-
name: "tbd",
221-
description: "tbd",
222-
options: {url: "", level: 3, risk: 2, randomAgent: true, batch: true}
223-
}
224-
};
225202

226203
this.init();
227204
}
@@ -234,7 +211,7 @@ class SQLMapGenerator {
234211
this.updateCommand();
235212
}
236213

237-
setStandardConfigItem_Input(config, confkey) {
214+
setStandardConfigItem(config, confkey) {
238215
var id = this.paramMapping[confkey];
239216
var elem = document.getElementById(id);
240217
var value = null;
@@ -257,11 +234,11 @@ class SQLMapGenerator {
257234
const config = {};
258235

259236
// # TARGET TAB
260-
this.setStandardConfigItem_Input(config, '-u');
261-
this.setStandardConfigItem_Input(config, '-d');
262-
this.setStandardConfigItem_Input(config, '-g');
263-
this.setStandardConfigItem_Input(config, '-m');
264-
this.setStandardConfigItem_Input(config, '-l');
237+
this.setStandardConfigItem(config, '-u');
238+
this.setStandardConfigItem(config, '-d');
239+
this.setStandardConfigItem(config, '-g');
240+
this.setStandardConfigItem(config, '-m');
241+
this.setStandardConfigItem(config, '-l');
265242

266243
const burpFileScope = document.getElementById('burpFileScope').value.trim();
267244
if (burpFileScope) config['--scope'] = burpFileScope;
@@ -278,24 +255,24 @@ class SQLMapGenerator {
278255
const threads = document.getElementById('threads').value;
279256
if (threads && threads > 1) config['--threads'] = threads;
280257

281-
this.setStandardConfigItem_Input(config, '--force-ssl');
282-
this.setStandardConfigItem_Input(config, '--keep-alive');
283-
this.setStandardConfigItem_Input(config, '--null-connection');
284-
this.setStandardConfigItem_Input(config, '--http2');
258+
this.setStandardConfigItem(config, '--force-ssl');
259+
this.setStandardConfigItem(config, '--keep-alive');
260+
this.setStandardConfigItem(config, '--null-connection');
261+
this.setStandardConfigItem(config, '--http2');
285262

286263
// ## Proxy Options
287-
this.setStandardConfigItem_Input(config, '--proxy');
288-
this.setStandardConfigItem_Input(config, '--proxy-cred');
289-
this.setStandardConfigItem_Input(config, '--proxy-file');
264+
this.setStandardConfigItem(config, '--proxy');
265+
this.setStandardConfigItem(config, '--proxy-cred');
266+
this.setStandardConfigItem(config, '--proxy-file');
290267

291268
const proxyFreq = document.getElementById('proxyFreq').value.trim();
292269
if (proxyFreq && proxyFreq >= 1) config['--proxy-freq'] = proxyFreq;
293270

294-
this.setStandardConfigItem_Input(config, '--http2');
295-
this.setStandardConfigItem_Input(config, '--ignore-proxy');
296-
this.setStandardConfigItem_Input(config, '--tor');
297-
this.setStandardConfigItem_Input(config, '--check-tor');
298-
this.setStandardConfigItem_Input(config, '--tor-port');
271+
this.setStandardConfigItem(config, '--http2');
272+
this.setStandardConfigItem(config, '--ignore-proxy');
273+
this.setStandardConfigItem(config, '--tor');
274+
this.setStandardConfigItem(config, '--check-tor');
275+
this.setStandardConfigItem(config, '--tor-port');
299276

300277
const torType = document.getElementById('torType').value.trim();
301278
if (torType && torType !== "SOCKS5") config['--tor-type'] = torType;
@@ -313,11 +290,11 @@ class SQLMapGenerator {
313290
const paramDel = document.getElementById('paramDel').value.trim();
314291
if (paramDel && paramDel !== "&") config['--param-del'] = paramDel;
315292

316-
this.setStandardConfigItem_Input(config, '-r');
317-
this.setStandardConfigItem_Input(config, '--data');
293+
this.setStandardConfigItem(config, '-r');
294+
this.setStandardConfigItem(config, '--data');
318295

319296
// ## Request Headers
320-
this.setStandardConfigItem_Input(config, '--host');
297+
this.setStandardConfigItem(config, '--host');
321298

322299
const userAgent = document.getElementById('userAgent').value;
323300
if (userAgent && userAgent === 'random') {
@@ -334,16 +311,16 @@ class SQLMapGenerator {
334311
config['-A'] = userAgent;
335312
}
336313

337-
this.setStandardConfigItem_Input(config, '--referer');
338-
this.setStandardConfigItem_Input(config, '-H');
314+
this.setStandardConfigItem(config, '--referer');
315+
this.setStandardConfigItem(config, '-H');
339316

340317
// ## Authentication
341-
this.setStandardConfigItem_Input(config, '--cookie');
342-
this.setStandardConfigItem_Input(config, '--cookie-del');
343-
this.setStandardConfigItem_Input(config, '--live-cookies');
344-
this.setStandardConfigItem_Input(config, '--load-cookies');
318+
this.setStandardConfigItem(config, '--cookie');
319+
this.setStandardConfigItem(config, '--cookie-del');
320+
this.setStandardConfigItem(config, '--live-cookies');
321+
this.setStandardConfigItem(config, '--load-cookies');
345322

346-
this.setStandardConfigItem_Input(config, '--drop-set-cookie');
323+
this.setStandardConfigItem(config, '--drop-set-cookie');
347324

348325
const authType = document.getElementById('authType').value;
349326
const authCred = document.getElementById('authCred').value.trim();
@@ -352,11 +329,11 @@ class SQLMapGenerator {
352329
config['--auth-cred'] = authCred;
353330
}
354331

355-
this.setStandardConfigItem_Input(config, '--auth-file');
332+
this.setStandardConfigItem(config, '--auth-file');
356333

357334
// ## CSRF Tokens Control
358-
this.setStandardConfigItem_Input(config, '--csrf-token');
359-
this.setStandardConfigItem_Input(config, '--csrf-url');
335+
this.setStandardConfigItem(config, '--csrf-token');
336+
this.setStandardConfigItem(config, '--csrf-url');
360337

361338
const csrfMethod = document.getElementById('csrfMethod').value;
362339
if (csrfMethod && csrfMethod !== 'custom') {
@@ -371,23 +348,23 @@ class SQLMapGenerator {
371348

372349
// # INJECTION TAB
373350
// ## Parameters
374-
this.setStandardConfigItem_Input(config, '-p');
375-
this.setStandardConfigItem_Input(config, '--skip');
376-
this.setStandardConfigItem_Input(config, '--param-exclude');
377-
this.setStandardConfigItem_Input(config, '--param-filter');
378-
this.setStandardConfigItem_Input(config, '--prefix');
379-
this.setStandardConfigItem_Input(config, '--suffix');
351+
this.setStandardConfigItem(config, '-p');
352+
this.setStandardConfigItem(config, '--skip');
353+
this.setStandardConfigItem(config, '--param-exclude');
354+
this.setStandardConfigItem(config, '--param-filter');
355+
this.setStandardConfigItem(config, '--prefix');
356+
this.setStandardConfigItem(config, '--suffix');
380357

381358
// ## Detection
382-
this.setStandardConfigItem_Input(config, '--string');
383-
this.setStandardConfigItem_Input(config, '--regexp');
384-
this.setStandardConfigItem_Input(config, '--not-string');
359+
this.setStandardConfigItem(config, '--string');
360+
this.setStandardConfigItem(config, '--regexp');
361+
this.setStandardConfigItem(config, '--not-string');
385362

386363
const code = document.getElementById('code').value.trim();
387364
if (code && code >= 100 && code <= 599) config['--code'] = code;
388365

389-
this.setStandardConfigItem_Input(config, '--text-only');
390-
this.setStandardConfigItem_Input(config, '--titles');
366+
this.setStandardConfigItem(config, '--text-only');
367+
this.setStandardConfigItem(config, '--titles');
391368

392369
// ## Attack Optimalization
393370
const level = document.getElementById('level').value;
@@ -396,10 +373,10 @@ class SQLMapGenerator {
396373
const risk = document.getElementById('risk').value;
397374
if (risk > 1) config['--risk'] = risk;
398375

399-
this.setStandardConfigItem_Input(config, '--dbms');
400-
this.setStandardConfigItem_Input(config, '--os');
401-
this.setStandardConfigItem_Input(config, '--second-url');
402-
this.setStandardConfigItem_Input(config, '--second-req');
376+
this.setStandardConfigItem(config, '--dbms');
377+
this.setStandardConfigItem(config, '--os');
378+
this.setStandardConfigItem(config, '--second-url');
379+
this.setStandardConfigItem(config, '--second-req');
403380

404381
const techniques = [];
405382
if (document.getElementById('techB').checked) techniques.push('B');
@@ -410,51 +387,51 @@ class SQLMapGenerator {
410387
if (document.getElementById('techQ').checked) techniques.push('Q');
411388
if (techniques.length > 0) config['--technique'] = techniques.join('');
412389

413-
this.setStandardConfigItem_Input(config, '--invalid-bignum');
414-
this.setStandardConfigItem_Input(config, '--invalid-logical');
415-
this.setStandardConfigItem_Input(config, '--invalid-string');
416-
this.setStandardConfigItem_Input(config, '--no-cast');
417-
this.setStandardConfigItem_Input(config, '--no-escape');
418-
this.setStandardConfigItem_Input(config, '--predict-output');
390+
this.setStandardConfigItem(config, '--invalid-bignum');
391+
this.setStandardConfigItem(config, '--invalid-logical');
392+
this.setStandardConfigItem(config, '--invalid-string');
393+
this.setStandardConfigItem(config, '--no-cast');
394+
this.setStandardConfigItem(config, '--no-escape');
395+
this.setStandardConfigItem(config, '--predict-output');
419396

420397
// # EXPLOITATION TAB
421398
// ## Enumeration and Data Exfiltraion
422-
this.setStandardConfigItem_Input(config, '--all');
423-
this.setStandardConfigItem_Input(config, '--banner');
424-
this.setStandardConfigItem_Input(config, '--columns');
425-
this.setStandardConfigItem_Input(config, '--comments');
426-
this.setStandardConfigItem_Input(config, '--count');
427-
this.setStandardConfigItem_Input(config, '--current-user');
428-
this.setStandardConfigItem_Input(config, '--current-db');
429-
this.setStandardConfigItem_Input(config, '--dbs');
430-
this.setStandardConfigItem_Input(config, '--dump');
431-
this.setStandardConfigItem_Input(config, '--dump-all');
432-
this.setStandardConfigItem_Input(config, '--hostname');
433-
this.setStandardConfigItem_Input(config, '--is-dba');
434-
this.setStandardConfigItem_Input(config, '--exclude-sysdbs');
435-
this.setStandardConfigItem_Input(config, '--passwords');
436-
this.setStandardConfigItem_Input(config, '--privileges');
437-
this.setStandardConfigItem_Input(config, '--roles');
438-
this.setStandardConfigItem_Input(config, '--schema');
439-
this.setStandardConfigItem_Input(config, '--search');
440-
this.setStandardConfigItem_Input(config, '--statements');
441-
this.setStandardConfigItem_Input(config, '--tables');
442-
this.setStandardConfigItem_Input(config, '--users');
399+
this.setStandardConfigItem(config, '--all');
400+
this.setStandardConfigItem(config, '--banner');
401+
this.setStandardConfigItem(config, '--columns');
402+
this.setStandardConfigItem(config, '--comments');
403+
this.setStandardConfigItem(config, '--count');
404+
this.setStandardConfigItem(config, '--current-user');
405+
this.setStandardConfigItem(config, '--current-db');
406+
this.setStandardConfigItem(config, '--dbs');
407+
this.setStandardConfigItem(config, '--dump');
408+
this.setStandardConfigItem(config, '--dump-all');
409+
this.setStandardConfigItem(config, '--hostname');
410+
this.setStandardConfigItem(config, '--is-dba');
411+
this.setStandardConfigItem(config, '--exclude-sysdbs');
412+
this.setStandardConfigItem(config, '--passwords');
413+
this.setStandardConfigItem(config, '--privileges');
414+
this.setStandardConfigItem(config, '--roles');
415+
this.setStandardConfigItem(config, '--schema');
416+
this.setStandardConfigItem(config, '--search');
417+
this.setStandardConfigItem(config, '--statements');
418+
this.setStandardConfigItem(config, '--tables');
419+
this.setStandardConfigItem(config, '--users');
443420

444421
// ## Other Exploitation Options
445-
this.setStandardConfigItem_Input(config, '-D');
446-
this.setStandardConfigItem_Input(config, '-T');
447-
this.setStandardConfigItem_Input(config, '-C');
448-
this.setStandardConfigItem_Input(config, '-X');
449-
this.setStandardConfigItem_Input(config, '-U');
450-
this.setStandardConfigItem_Input(config, '--pivot-column');
451-
this.setStandardConfigItem_Input(config, '--where');
452-
this.setStandardConfigItem_Input(config, '--start');
453-
this.setStandardConfigItem_Input(config, '--stop');
454-
this.setStandardConfigItem_Input(config, '--first');
455-
this.setStandardConfigItem_Input(config, '--last');
456-
this.setStandardConfigItem_Input(config, '--sql-query');
457-
this.setStandardConfigItem_Input(config, '--sql-file');
422+
this.setStandardConfigItem(config, '-D');
423+
this.setStandardConfigItem(config, '-T');
424+
this.setStandardConfigItem(config, '-C');
425+
this.setStandardConfigItem(config, '-X');
426+
this.setStandardConfigItem(config, '-U');
427+
this.setStandardConfigItem(config, '--pivot-column');
428+
this.setStandardConfigItem(config, '--where');
429+
this.setStandardConfigItem(config, '--start');
430+
this.setStandardConfigItem(config, '--stop');
431+
this.setStandardConfigItem(config, '--first');
432+
this.setStandardConfigItem(config, '--last');
433+
this.setStandardConfigItem(config, '--sql-query');
434+
this.setStandardConfigItem(config, '--sql-file');
458435

459436
// # TAMPERING TAB
460437
const tamperScripts = [];
@@ -470,10 +447,10 @@ class SQLMapGenerator {
470447
const verbose = document.getElementById('verbose').value;
471448
if (verbose != 1) config['-v'] = verbose;
472449

473-
this.setStandardConfigItem_Input(config, '-t');
474-
this.setStandardConfigItem_Input(config, '-c');
475-
this.setStandardConfigItem_Input(config, '--batch');
476-
this.setStandardConfigItem_Input(config, '--parse-errors');
450+
this.setStandardConfigItem(config, '-t');
451+
this.setStandardConfigItem(config, '-c');
452+
this.setStandardConfigItem(config, '--batch');
453+
this.setStandardConfigItem(config, '--parse-errors');
477454

478455
return config;
479456
}
@@ -730,58 +707,6 @@ class SQLMapGenerator {
730707
}
731708
}
732709

733-
loadTemplate(templateName) {
734-
const template = this.templates[templateName];
735-
if (!template) return;
736-
737-
// Reset all form fields first
738-
this.resetConfiguration();
739-
740-
// Apply template options
741-
Object.entries(template.options).forEach(([key, value]) => {
742-
let elementId = key;
743-
744-
// Map template keys to form element IDs
745-
const keyMapping = {
746-
'url': 'url',
747-
'data': 'data',
748-
'requestFile': 'requestFile',
749-
'burpFile': 'burpFile',
750-
'level': 'level',
751-
'risk': 'risk',
752-
'randomAgent': 'userAgent',
753-
'batch': 'batch',
754-
'dbs': 'dbs'
755-
};
756-
757-
if (keyMapping[key]) {
758-
elementId = keyMapping[key];
759-
}
760-
761-
const element = document.getElementById(elementId);
762-
if (element) {
763-
if (element.type === 'checkbox') {
764-
element.checked = value;
765-
} else if (element.type === 'range') {
766-
element.value = value;
767-
// Update slider display
768-
const displayElement = document.getElementById(elementId + 'Value');
769-
if (displayElement) {
770-
displayElement.textContent = value;
771-
}
772-
} else {
773-
element.value = value;
774-
}
775-
}
776-
});
777-
778-
// Update command after loading template
779-
this.updateCommand();
780-
781-
// Show success message
782-
this.showMessage(`Template "${template.name}" loaded`, 'success');
783-
}
784-
785710
saveConfiguration() {
786711
const config = this.getCurrentConfig();
787712
const configStr = JSON.stringify(config, null, 2);

sql-command-builder.html

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,30 +37,6 @@ <h1><a href="?">SQLMap Command Builder</a></h1>
3737
</div>
3838
</section>
3939

40-
<!-- Templates Section -->
41-
<!-- TODO
42-
<section class="templates-section">
43-
<h3>Templates</h3>
44-
<div class="templates-grid">
45-
<button class="template-btn" data-template="basic_get">
46-
<strong>Basic GET Test</strong>
47-
<span>Basic http request</span>
48-
</button>
49-
<button class="template-btn" data-template="post_form">
50-
<strong>POST Form Test</strong>
51-
<span>Basic http request</span>
52-
</button>
53-
<button class="template-btn" data-template="burp_request">
54-
<strong>Burp Request</strong>
55-
<span>Use request saved into file (i.e. via Burp)</span>
56-
</button>
57-
<button class="template-btn" data-template="advanced">
58-
<strong>Advanced Test</strong>
59-
<span>Advanced test with high risk</span>
60-
</button>
61-
</div>
62-
</section>
63-
-->
6440
<!-- Options Tabs -->
6541
<section class="options-section">
6642
<div class="tabs">

0 commit comments

Comments
 (0)