aboutsummaryrefslogtreecommitdiff
path: root/_www
diff options
context:
space:
mode:
Diffstat (limited to '_www')
-rw-r--r--_www/functions.js21
-rw-r--r--_www/functions.ts23
-rw-r--r--_www/gorankusu.js3
-rw-r--r--_www/gorankusu.ts3
-rw-r--r--_www/interface.ts1
-rw-r--r--_www/nav_links.ts1
-rw-r--r--_www/target.js17
-rw-r--r--_www/target.ts21
8 files changed, 89 insertions, 1 deletions
diff --git a/_www/functions.js b/_www/functions.js
index 4b677d4..762a8cc 100644
--- a/_www/functions.js
+++ b/_www/functions.js
@@ -175,6 +175,24 @@ function saveTargetOptTimeout(target) {
const storageKey = `${target.ID}.opt.Timeout`;
window.localStorage.setItem(storageKey, "" + target.Opts.Timeout);
}
+// loadTargetHeader get target header from local storage or return the
+// original value.
+export function loadTargetHeader(target, key) {
+ const storageKey = `${target.ID}.header.${key}`;
+ const val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return val;
+ }
+ const tvar = target.Headers[key];
+ if (tvar) {
+ return tvar.value;
+ }
+ return "";
+}
+function saveTargetHeader(target, key, value) {
+ const storageKey = `${target.ID}.header.${key}`;
+ window.localStorage.setItem(storageKey, value);
+}
//
// loadTargetVar get target variable from local storage or return the original
// value.
@@ -242,6 +260,9 @@ export function save(target, httpTarget, wsTarget) {
saveTargetOptDuration(target);
saveTargetOptRatePerSecond(target);
saveTargetOptTimeout(target);
+ for (const [k, fi] of Object.entries(target.Headers)) {
+ saveTargetHeader(target, k, fi.value);
+ }
for (const [k, fi] of Object.entries(target.Vars)) {
saveTargetVar(target, k, fi.value);
}
diff --git a/_www/functions.ts b/_www/functions.ts
index 48d916c..b570cc4 100644
--- a/_www/functions.ts
+++ b/_www/functions.ts
@@ -226,6 +226,26 @@ function saveTargetOptTimeout(target: TargetInterface) {
window.localStorage.setItem(storageKey, "" + target.Opts.Timeout);
}
+// loadTargetHeader get target header from local storage or return the
+// original value.
+export function loadTargetHeader(target: TargetInterface, key: string): string {
+ const storageKey = `${target.ID}.header.${key}`;
+ const val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return val;
+ }
+ const tvar = target.Headers[key];
+ if (tvar) {
+ return tvar.value;
+ }
+ return "";
+}
+
+function saveTargetHeader(target: TargetInterface, key: string, value: string) {
+ const storageKey = `${target.ID}.header.${key}`;
+ window.localStorage.setItem(storageKey, value);
+}
+
//
// loadTargetVar get target variable from local storage or return the original
// value.
@@ -322,6 +342,9 @@ export function save(
saveTargetOptRatePerSecond(target);
saveTargetOptTimeout(target);
+ for (const [k, fi] of Object.entries(target.Headers)) {
+ saveTargetHeader(target, k, fi.value);
+ }
for (const [k, fi] of Object.entries(target.Vars)) {
saveTargetVar(target, k, fi.value);
}
diff --git a/_www/gorankusu.js b/_www/gorankusu.js
index 02b972d..fd49ddf 100644
--- a/_www/gorankusu.js
+++ b/_www/gorankusu.js
@@ -219,6 +219,7 @@ export class Gorankusu {
Target: {
ID: target.ID,
Opts: target.Opts,
+ Headers: target.Headers,
Vars: target.Vars,
Name: target.Name,
BaseURL: target.BaseURL,
@@ -303,6 +304,7 @@ export class Gorankusu {
Target: {
ID: target.ID,
Opts: target.Opts,
+ Headers: target.Headers,
Vars: target.Vars,
Name: "",
BaseURL: "",
@@ -339,6 +341,7 @@ export class Gorankusu {
Target: {
ID: target.ID,
Opts: target.Opts,
+ Headers: target.Headers,
Vars: target.Vars,
Name: "",
BaseURL: "",
diff --git a/_www/gorankusu.ts b/_www/gorankusu.ts
index 671e427..bf04d42 100644
--- a/_www/gorankusu.ts
+++ b/_www/gorankusu.ts
@@ -295,6 +295,7 @@ export class Gorankusu {
Target: {
ID: target.ID,
Opts: target.Opts,
+ Headers: target.Headers,
Vars: target.Vars,
Name: target.Name,
BaseURL: target.BaseURL,
@@ -396,6 +397,7 @@ export class Gorankusu {
Target: {
ID: target.ID,
Opts: target.Opts,
+ Headers: target.Headers,
Vars: target.Vars,
Name: "",
BaseURL: "",
@@ -441,6 +443,7 @@ export class Gorankusu {
Target: {
ID: target.ID,
Opts: target.Opts,
+ Headers: target.Headers,
Vars: target.Vars,
Name: "",
BaseURL: "",
diff --git a/_www/interface.ts b/_www/interface.ts
index 5447951..9c4d487 100644
--- a/_www/interface.ts
+++ b/_www/interface.ts
@@ -112,6 +112,7 @@ export interface TargetInterface {
Hint?: string;
BaseURL: string;
Opts: AttackOptionsInterface;
+ Headers: KeyFormInput;
Vars: KeyFormInput;
HTTPTargets: HTTPTargetInterface[];
WebSocketTargets: WebSocketTargetInterface[];
diff --git a/_www/nav_links.ts b/_www/nav_links.ts
index f577607..ea9c01a 100644
--- a/_www/nav_links.ts
+++ b/_www/nav_links.ts
@@ -70,6 +70,7 @@ export class NavLinks {
Name: "",
BaseURL: "",
Opts: {} as AttackOptionsInterface,
+ Headers: {} as KeyFormInput,
Vars: {} as KeyFormInput,
HTTPTargets: [],
WebSocketTargets: [],
diff --git a/_www/target.js b/_www/target.js
index caa6ec8..c7aaf29 100644
--- a/_www/target.js
+++ b/_www/target.js
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-3.0-or-later
import { WuiInputNumber } from "./wui/input/number.js";
import { WuiInputString } from "./wui/input/string.js";
-import { generateFormInput, loadTargetOptDuration, loadTargetOptRatePerSecond, loadTargetOptTimeout, loadTargetVar, } from "./functions.js";
+import { generateFormInput, loadTargetOptDuration, loadTargetOptRatePerSecond, loadTargetOptTimeout, loadTargetHeader, loadTargetVar, } from "./functions.js";
import { CLASS_INPUT, CLASS_INPUT_LABEL, CLASS_NAV_TARGET, } from "./interface.js";
import { HTTPTarget } from "./http_target.js";
import { WebSocketTarget } from "./ws_target.js";
@@ -55,6 +55,7 @@ export class Target {
generateContent(gorankusu) {
this.generateContentBaseURL();
this.generateContentAttackOptions();
+ this.generateContentHeaders();
this.generateContentVars();
this.generateHTTPTargets(gorankusu);
this.generateWebSocketTargets(gorankusu);
@@ -133,6 +134,20 @@ export class Target {
wrapper.appendChild(comInputTimeout.el);
this.elContent.appendChild(wrapper);
}
+ generateContentHeaders() {
+ if (!this.opts.Headers) {
+ return;
+ }
+ const wrapper = document.createElement("fieldset");
+ const legend = document.createElement("legend");
+ legend.innerText = "Headers";
+ wrapper.appendChild(legend);
+ for (const [key, fi] of Object.entries(this.opts.Headers)) {
+ fi.value = loadTargetHeader(this.opts, key);
+ generateFormInput(wrapper, fi);
+ }
+ this.elContent.appendChild(wrapper);
+ }
generateContentVars() {
if (!this.opts.Vars) {
return;
diff --git a/_www/target.ts b/_www/target.ts
index 26c15b2..9e637cc 100644
--- a/_www/target.ts
+++ b/_www/target.ts
@@ -9,6 +9,7 @@ import {
loadTargetOptDuration,
loadTargetOptRatePerSecond,
loadTargetOptTimeout,
+ loadTargetHeader,
loadTargetVar,
} from "./functions.js";
import {
@@ -90,6 +91,7 @@ export class Target {
private generateContent(gorankusu: GorankusuInterface) {
this.generateContentBaseURL();
this.generateContentAttackOptions();
+ this.generateContentHeaders();
this.generateContentVars();
this.generateHTTPTargets(gorankusu);
this.generateWebSocketTargets(gorankusu);
@@ -179,6 +181,25 @@ export class Target {
this.elContent.appendChild(wrapper);
}
+ private generateContentHeaders() {
+ if (!this.opts.Headers) {
+ return;
+ }
+
+ const wrapper = document.createElement("fieldset");
+
+ const legend = document.createElement("legend");
+ legend.innerText = "Headers";
+ wrapper.appendChild(legend);
+
+ for (const [key, fi] of Object.entries(this.opts.Headers)) {
+ fi.value = loadTargetHeader(this.opts, key);
+ generateFormInput(wrapper, fi);
+ }
+
+ this.elContent.appendChild(wrapper);
+ }
+
private generateContentVars() {
if (!this.opts.Vars) {
return;