2
0
Fork 0
mirror of https://github.com/carlospolop/hacktricks synced 2024-12-29 06:23:07 +00:00
hacktricks/network-services-pentesting/pentesting-web/nodejs-express.md

90 lines
5 KiB
Markdown
Raw Normal View History

2022-05-20 11:11:49 +00:00
# NodeJS Express
2024-02-10 15:36:32 +00:00
## Cookie-Signatur
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
Das Tool [https://github.com/DigitalInterruption/cookie-monster](https://github.com/DigitalInterruption/cookie-monster) ist ein Dienstprogramm zur Automatisierung des Testens und erneuten Signierens von Express.js-Cookie-Secrets.
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
### Einzelner Cookie mit einem bestimmten Namen
2024-02-08 21:36:15 +00:00
```bash
cookie-monster -c eyJmb28iOiJiYXIifQ== -s LVMVxSNPdU_G8S3mkjlShUD78s4 -n session
2022-05-20 11:11:49 +00:00
```
2024-02-10 15:36:32 +00:00
### Benutzerdefinierte Wortliste
Eine benutzerdefinierte Wortliste ist eine Sammlung von Wörtern, die speziell für einen bestimmten Zweck erstellt wurde. In Bezug auf das Hacking bezieht sich eine benutzerdefinierte Wortliste normalerweise auf eine Liste von Wörtern, die bei einem Angriff auf Passwörter oder Benutzernamen verwendet werden. Diese Wortliste kann auf verschiedene Arten erstellt werden, einschließlich der Verwendung von Wörtern aus Wörterbüchern, gebräuchlichen Phrasen, Namen, gebräuchlichen Passwörtern und anderen relevanten Informationen.
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
Die Verwendung einer benutzerdefinierten Wortliste kann die Effektivität eines Angriffs erhöhen, da sie spezifische Informationen über das Ziel enthält. Beispielsweise kann eine benutzerdefinierte Wortliste, die auf den Namen einer Person oder auf Informationen über ihre Interessen basiert, die Wahrscheinlichkeit erhöhen, dass ein Passwort erraten wird.
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
Es ist wichtig zu beachten, dass die Verwendung einer benutzerdefinierten Wortliste ethisch fragwürdig sein kann, insbesondere wenn sie für illegale Aktivitäten verwendet wird. Es ist wichtig, die geltenden Gesetze und Vorschriften zu beachten und nur autorisierte Tests oder Penetrationstests durchzuführen.
2024-02-08 21:36:15 +00:00
```bash
cookie-monster -c eyJmb28iOiJiYXIifQ== -s LVMVxSNPdU_G8S3mkjlShUD78s4 -w custom.lst
2022-05-20 11:11:49 +00:00
```
2024-02-10 15:36:32 +00:00
### Mehrere Cookies im Batch-Modus testen
In einigen Fällen kann es erforderlich sein, mehrere Cookies gleichzeitig zu testen, um Schwachstellen in einer Node.js-Express-Anwendung zu identifizieren. Der Batch-Modus ermöglicht es Ihnen, mehrere Cookies in einem einzigen Durchlauf zu überprüfen.
Um den Batch-Modus zu verwenden, können Sie das Tool `cookie-parser` in Kombination mit einer Schleife verwenden, um verschiedene Cookies nacheinander zu testen. Hier ist ein Beispielcode, der Ihnen zeigt, wie Sie dies tun können:
```javascript
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());
const cookies = [
'cookie1=value1',
'cookie2=value2',
'cookie3=value3'
];
app.get('/', (req, res) => {
for (const cookie of cookies) {
req.cookies = {};
req.headers.cookie = cookie;
// Führen Sie hier Ihre Tests durch
// ...
}
res.send('Batch-Modus abgeschlossen');
});
app.listen(3000, () => {
console.log('Server läuft auf Port 3000');
});
```
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
In diesem Beispiel wird eine Express-Anwendung erstellt und der `cookie-parser` Middleware hinzugefügt, um die Verarbeitung von Cookies zu ermöglichen. Die zu testenden Cookies werden in einem Array namens `cookies` definiert.
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
In der Route-Handler-Funktion wird eine Schleife verwendet, um jedes Cookie nacheinander zu testen. Zuerst werden die `req.cookies` und `req.headers.cookie` Eigenschaften zurückgesetzt, um sicherzustellen, dass nur das aktuelle Cookie getestet wird. Anschließend können Sie Ihre Tests durchführen, um Schwachstellen in der Anwendung zu identifizieren.
Sobald alle Cookies getestet wurden, wird eine Antwort mit der Nachricht "Batch-Modus abgeschlossen" gesendet.
Durch die Verwendung des Batch-Modus können Sie effizient mehrere Cookies testen und potenzielle Schwachstellen in Ihrer Node.js-Express-Anwendung identifizieren.
2024-02-08 21:36:15 +00:00
```bash
cookie-monster -b -f cookies.json
2022-05-20 11:11:49 +00:00
```
2024-02-10 15:36:32 +00:00
### Testen Sie mehrere Cookies im Batch-Modus mit einer benutzerdefinierten Wortliste
Manchmal möchten Sie möglicherweise mehrere Cookies gleichzeitig testen, um Schwachstellen in einer Webanwendung zu identifizieren. Dies kann besonders nützlich sein, wenn Sie eine benutzerdefinierte Wortliste haben, die verschiedene Kombinationen von Cookies enthält.
Um mehrere Cookies im Batch-Modus zu testen, können Sie die folgenden Schritte befolgen:
1. Erstellen Sie eine benutzerdefinierte Wortliste, die verschiedene Kombinationen von Cookies enthält, die Sie testen möchten.
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
2. Verwenden Sie ein Tool wie Burp Suite oder OWASP ZAP, um die Cookies zu testen. Stellen Sie sicher, dass Sie den Batch-Modus aktivieren, um die Tests automatisch durchzuführen.
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
3. Importieren Sie Ihre benutzerdefinierte Wortliste in das Tool und starten Sie den Test.
4. Das Tool wird nun automatisch alle Kombinationen von Cookies aus Ihrer Wortliste testen und nach Schwachstellen suchen.
Durch das Testen mehrerer Cookies im Batch-Modus können Sie effizienter nach Sicherheitslücken suchen und potenzielle Schwachstellen in der Webanwendung identifizieren.
2024-02-08 21:36:15 +00:00
```bash
cookie-monster -b -f cookies.json -w custom.lst
2022-05-20 11:11:49 +00:00
```
2024-02-10 15:36:32 +00:00
### Cookie verschlüsseln und signieren
2022-05-20 11:11:49 +00:00
2024-02-10 15:36:32 +00:00
Wenn du das Geheimnis kennst, kannst du das Cookie signieren.
2024-02-08 21:36:15 +00:00
```bash
cookie-monster -e -f new_cookie.json -k secret
2022-05-20 11:11:49 +00:00
```
2024-02-10 15:36:32 +00:00