diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx
index 3e35156..86abb64 100644
--- a/src/renderer/App.tsx
+++ b/src/renderer/App.tsx
@@ -9,7 +9,8 @@ import { ProjectLayout } from './layout/projectLayout';
import Status from './views/project/status';
import Recon from './views/project/recon';
import { ReconResults } from './views/project/results/recon-results';
-import JsLeaks from './views/project/JsLeaks.1';
+import JsLeaks from './views/project/JsLeaks';
+import Attacks from './views/project/attacks';
function Home() {
return (
@@ -31,7 +32,7 @@ export default function App() {
} />
} />
} />
- } />
+ } />
} />
diff --git a/src/renderer/components/sidebar.tsx b/src/renderer/components/sidebar.tsx
index e50e4e8..63896eb 100644
--- a/src/renderer/components/sidebar.tsx
+++ b/src/renderer/components/sidebar.tsx
@@ -30,9 +30,8 @@ const dashboardMenu: DashboardMenu[] = [
icon: ,
},
{
- href: 'attack',
- title: 'Attack',
- Disabled: true,
+ href: 'attacks',
+ title: 'Attacks',
icon: ,
},
{
diff --git a/src/renderer/views/project/JsLeaks.tsx b/src/renderer/views/project/JsLeaks.tsx
index b3ad068..0a4b824 100644
--- a/src/renderer/views/project/JsLeaks.tsx
+++ b/src/renderer/views/project/JsLeaks.tsx
@@ -5,13 +5,13 @@ import {
CardHeader,
CardTitle,
} from '../../components/ui/card';
-import Secrets from './JsLeaks Jobs/secrets';
-import EndPoints from './JsLeaks Jobs/EndPoints';
+import Secrets from './jsLeaksJob/secrets';
+import EndPoints from './jsLeaksJob/Endpoint';
export default function JsLeaks() {
return (
-
Initiate Recon Attacks
+
JsLeaks
diff --git a/src/renderer/views/project/attacks.tsx b/src/renderer/views/project/attacks.tsx
new file mode 100644
index 0000000..9291ad4
--- /dev/null
+++ b/src/renderer/views/project/attacks.tsx
@@ -0,0 +1,61 @@
+import {
+ Card,
+ CardContent,
+ CardDescription,
+ CardHeader,
+ CardTitle,
+} from '../../components/ui/card';
+import Exposures from './attacks/exposures';
+import MissingHeaders from './attacks/missingHeaders';
+import PotentialXss from './attacks/potentialXss';
+import SqlInjection from './attacks/sqlInjection';
+
+export default function Attacks() {
+ return (
+
+
Attacks
+
+
+
+
+ Scan for exposures
+ wanna find exposures ?
+
+
+
+
+
+
+
+ Scan for missing headers
+ wanna find more ?
+
+
+
+
+
+
+
+ Scan the URLs
+ wanna catch potential XSS
+
+
+
+
+
+
+
+ Scan for SQL Injection
+
+ SSTI, Open Redirect & CRLF Injection
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/renderer/views/project/attacks/exposures.tsx b/src/renderer/views/project/attacks/exposures.tsx
new file mode 100644
index 0000000..538635b
--- /dev/null
+++ b/src/renderer/views/project/attacks/exposures.tsx
@@ -0,0 +1,23 @@
+import { Loader2 } from 'lucide-react';
+import { useState } from 'react';
+import { Button } from '../../../components/ui/button';
+
+export default function Exposures() {
+ const [Loading, setLoading] = useState(false);
+ const RunExposures = async () => {
+ setLoading(true);
+ };
+ return (
+ // eslint-disable-next-line react/jsx-no-useless-fragment
+ <>
+ {!Loading ? (
+
+ ) : (
+
+ )}
+ >
+ );
+}
diff --git a/src/renderer/views/project/attacks/missingHeaders.tsx b/src/renderer/views/project/attacks/missingHeaders.tsx
new file mode 100644
index 0000000..7d9dbb8
--- /dev/null
+++ b/src/renderer/views/project/attacks/missingHeaders.tsx
@@ -0,0 +1,23 @@
+import { Loader2 } from 'lucide-react';
+import { useState } from 'react';
+import { Button } from '../../../components/ui/button';
+
+export default function MissingHeaders() {
+ const [Loading, setLoading] = useState(false);
+ const RunMissingHeaders = async () => {
+ setLoading(true);
+ };
+ return (
+ // eslint-disable-next-line react/jsx-no-useless-fragment
+ <>
+ {!Loading ? (
+
+ ) : (
+
+ )}
+ >
+ );
+}
diff --git a/src/renderer/views/project/attacks/potentialXss.tsx b/src/renderer/views/project/attacks/potentialXss.tsx
new file mode 100644
index 0000000..a4d518a
--- /dev/null
+++ b/src/renderer/views/project/attacks/potentialXss.tsx
@@ -0,0 +1,23 @@
+import { Loader2 } from 'lucide-react';
+import { useState } from 'react';
+import { Button } from '../../../components/ui/button';
+
+export default function PotentialXss() {
+ const [Loading, setLoading] = useState(false);
+ const RunPotentialXss = async () => {
+ setLoading(true);
+ };
+ return (
+ // eslint-disable-next-line react/jsx-no-useless-fragment
+ <>
+ {!Loading ? (
+
+ ) : (
+
+ )}
+ >
+ );
+}
diff --git a/src/renderer/views/project/attacks/sqlInjection.tsx b/src/renderer/views/project/attacks/sqlInjection.tsx
new file mode 100644
index 0000000..f4c9156
--- /dev/null
+++ b/src/renderer/views/project/attacks/sqlInjection.tsx
@@ -0,0 +1,23 @@
+import { Loader2 } from 'lucide-react';
+import { useState } from 'react';
+import { Button } from '../../../components/ui/button';
+
+export default function SqlInjection() {
+ const [Loading, setLoading] = useState(false);
+ const RunSqlInjection = async () => {
+ setLoading(true);
+ };
+ return (
+ // eslint-disable-next-line react/jsx-no-useless-fragment
+ <>
+ {!Loading ? (
+
+ ) : (
+
+ )}
+ >
+ );
+}