Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
padding-oracle-attacker — 🔓 CLI-Tool und Bibliothek zur einfachen Durchführung von Padding-Oracle-Angriffen, mit Unterstützung für gleichzeitige Netzwerkanfragen und einer eleganten Benutzeroberfläche. | Kitploit
Tools/GitHubGitHub/kishanbagaria/padding-oracle-attacker
Verschlüsselungs-/EntschlüsselungstoolsExploitationWebanwendungs-ExploitationKryptographie
GitHubkishanbagaria/padding-oracle-attacker

padding-oracle-attacker

🔓 CLI-Tool und Bibliothek zur einfachen Durchführung von Padding-Oracle-Angriffen, mit Unterstützung für gleichzeitige Netzwerkanfragen und einer eleganten Benutzeroberfläche.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
21632vor 4 JahrenVon Kitploit geprüft

padding-oracle-attacker

CLI-Tool und Bibliothek zur einfachen Durchführung von Padding-Oracle-Angriffen, mit Unterstützung für gleichzeitige Netzwerkanfragen und einer eleganten Benutzeroberfläche.

poattack Entschlüsselungs-Demo

Build Status

Installation

Stelle sicher, dass Node.js installiert ist, und führe dann Folgendes aus

root@kitploit:~
$ npm install --global padding-oracle-attacker

oder

root@kitploit:~
$ yarn global add padding-oracle-attacker

CLI-Verwendung

root@kitploit:~
Verwendung
  $ padding-oracle-attacker decrypt <url> hex:<ciphertext_hex> <block_size> <error> [options]
  $ padding-oracle-attacker decrypt <url> b64:<ciphertext_b64> <block_size> <error> [options]

  $ padding-oracle-attacker encrypt <url> <plaintext>          <block_size> <error> [options]
  $ padding-oracle-attacker encrypt <url> hex:<plaintext_hex>  <block_size> <error> [options]

  $ padding-oracle-attacker analyze <url> [<block_size>] [options]

Befehle
  decrypt                  Findet den Klartext (foobar) für den gegebenen Geheimtext (hex:0123abcd)
  encrypt                  Findet den Geheimtext (hex:abcd1234) für den gegebenen Klartext (foo=bar)
  analyze                  Hilft herauszufinden, ob die URL anfällig ist oder nicht, und
                           wie sich die Antwort unterscheidet, wenn ein Entschlüsselungsfehler auftritt
                           (für das <error>-Argument)

Argumente
  <url>                    URL für den Angriff. Die Nutzlast wird standardmäßig am Ende eingefügt. Um eine
                           benutzerdefinierte Injektionsstelle anzugeben, füge {POPAYLOAD} in einen Header (-H),
                           den Anforderungstext (-d) oder die URL ein.
  <block_size>             Blockgröße des vom Server verwendeten Verschlüsselungsalgorithmus.
  <error>                  Die Zeichenfolge, die in der Antwort erscheint, wenn die Entschlüsselung auf dem Server fehlschlägt.
                           Gib eine Zeichenfolge aus dem HTTP-Antworttext (wie PaddingException) oder
                           den Statuscode der HTTP-Antwort (wie 400) an.

Optionen
  -c, --concurrency        Gleichzeitig gesendete Anfragen                              [Standard: 128]
      --disable-cache      Netzwerk-Cache deaktivieren. Gespeichert unter                 [Standard: false]
                           poattack-cache.json.gz.txt.
  -X, --method             Für die Anfrage zu verwendende HTTP-Methode                   [Standard: GET]
  -H, --header             Mit der Anfrage zu sendende Header.
                             -H 'Cookie: cookie1' -H 'User-Agent: Googlebot/2.1'
  -d, --data               Anforderungstext
                             JSON-String: {"id": 101, "foo": "bar"}
                             URL-codiert: id=101&foo=bar
                           Stelle sicher, dass der Content-Type-Header gesetzt ist.

  -e, --payload-encoding   Codierung der Geheimtext-Nutzlast für {POPAYLOAD}             [Standard: hex]
                             base64          FooBar+/=
                             base64-urlsafe  FooBar-_
                             hex             deadbeef
                             hex-uppercase   DEADBEEF
                             base64(xyz)     Benutzerdefiniertes base64 ('xyz' stehen für Zeichen '+/=')

  --dont-urlencode-payload {POPAYLOAD} nicht URL-codieren                               [Standard: false]

  --start-from-1st-block   Verarbeitung ab dem ersten Block beginnen statt               [Standard: false]
                           dem letzten (funktioniert nur im decrypt-Modus)

Beispiele
  $ poattack decrypt http://localhost:2020/decrypt?ciphertext=
      hex:e3e70d8599206647dbc96952aaa209d75b4e3c494842aa1aa8931f51505df2a8a184e99501914312e2c50320835404e9
      16 400
  $ poattack encrypt http://localhost:2020/decrypt?ciphertext= "foo bar 🦄" 16 400
  $ poattack encrypt http://localhost:2020/decrypt?ciphertext= hex:666f6f2062617220f09fa684 16 400
  $ poattack analyze http://localhost:2020/decrypt?ciphertext=

Aliase
  poattack
  padding-oracle-attack

Bibliotheks-API

root@kitploit:~
const { decrypt, encrypt } = require('padding-oracle-attacker')
// or
import { decrypt, encrypt } from 'padding-oracle-attacker'

const { blockCount, totalSize, foundBytes, interBytes } = await decrypt(options)

const { blockCount, totalSize, foundBytes, interBytes, finalRequest } = await encrypt(options)

decrypt(options: Object): Promise

encrypt(options: Object): Promise

Erforderliche Optionen
url: string

URL für den Angriff. Die Nutzlast wird standardmäßig am Ende angehängt. Um eine benutzerdefinierte Injektionsstelle anzugeben, füge {POPAYLOAD} in die URL, einen Header (requestOptions.headers) oder den Anforderungstext (requestOptions.data) ein.

blockSize: number

Blockgröße des vom Server verwendeten Verschlüsselungsalgorithmus.

isDecryptionSuccess: ({ statusCode, headers, body }) => boolean

Funktion, die true zurückgibt, wenn die Serverantwort eine erfolgreiche Entschlüsselung anzeigt.

ciphertext: Buffer (nur decrypt)

Zu entschlüsselnder Geheimtext.

plaintext: Buffer (nur encrypt)

Zu verschlüsselnder Klartext. Padding wird automatisch hinzugefügt. Beispiel: Buffer.from('foo bar', 'utf8')


Optionale Optionen
concurrency: number = 128

Gleichzeitig zu sendende Netzwerkanfragen.

isCacheEnabled: boolean = true

Antworten werden standardmäßig zwischengespeichert und in poattack-cache.json.gz.txt gespeichert. Setze auf false, um Caching zu deaktivieren.

requestOptions: { method, headers, data }
requestOptions.method: string

HTTP-Methode für die Anfrage. Standardmäßig GET. POST, PUT, DELETE sind gültige Optionen.

requestOptions.headers: { string: string }

Mit der Anfrage zu sendende Header. Beispiel: { 'Content-Type': 'application/x-www-form-urlencoded' }

requestOptions.body: string

Anforderungstext. Kann ein JSON-String, URL-codierte Parameter usw. sein. Der Content-Type-Header muss manuell gesetzt werden.

logMode: 'full'|'minimal'|'none' = 'full'

full: Alles auf der Konsole protokollieren (Standard)
minimal: Nur nach Start und Abschluss auf der Konsole protokollieren
none: Nichts auf der Konsole protokollieren

transformPayload: (ciphertext: Buffer) => string

Funktion, um den ciphertext beim Senden einer Anfrage in einen String umzuwandeln. Standardmäßig wird ciphertext hex-kodiert und an der Injektionsstelle eingefügt (URL-Ende, sofern nicht {POPAYLOAD} vorhanden).


Optionale Optionen (nur decrypt)
alreadyFound: Buffer

Bereits bekannte/gefundene Klartext-Bytes (vom Ende), die übersprungen werden können. Wenn du einen Buffer von zehn Bytes bereitstellst, werden die letzten zehn Bytes übersprungen.

initFirstPayloadBlockWithOrigBytes: boolean = false

Initialisiere den ersten Nutzlastblock mit den ursprünglichen ciphertext-Bytes anstelle von Nullen.
Beispiel: abcdef12345678ff 1111111111111111 statt 00000000000000ff 1111111111111111

startFromFirstBlock: boolean = false

Beginne die Verarbeitung mit dem ersten Block statt dem letzten.

makeInitialRequest: boolean = true

Sende eine erste Anfrage mit dem ursprünglichen ciphertext und protokolliere die Serverantwort auf der Konsole, damit der Benutzer überprüfen kann, ob die Netzwerkanfragen korrekt gesendet werden.


Optionale Optionen (nur encrypt)
makeFinalRequest: boolean = true

Sende nach dem Finden der ciphertext-Bytes für den neuen Klartext eine abschließende Anfrage mit den gefundenen Bytes und protokolliere die Serverantwort auf der Konsole.

lastCiphertextBlock: Buffer

Benutzerdefinierter Geheimtext für den letzten Block. Letzter Block ist standardmäßig nur Nullen (000000000000000).

Entwicklung

padding-oracle-attacker ist in TypeScript geschrieben. Wenn du die Quelldateien ändern und ausführen möchtest, kannst du die Dateien zuerst in JS kompilieren und mit node ausführen oder ts-node verwenden.
Beispiel: yarn build dann node dist/cli ... oder einfach ts-node src/cli ...

yarn build oder npm run build

Kompiliert die TypeScript-Dateien im src-Verzeichnis zu JS-Dateien und gibt sie im dist-Verzeichnis aus.

yarn clean oder npm run clean

Löscht das dist-Verzeichnis.

yarn lint oder npm run lint

Überprüft die Dateien mit eslint.

yarn test oder npm run test

Führt Lint und Tests mit ava aus.

node test/helpers/vulnerable-server.js

Startet den Testserver, der unter http://localhost:2020 anfällig für Padding-Oracle-Angriffe ist.

Verwandtes

  • PadBuster (Perl)
  • Padding Oracle Attack (Python)
  • python-paddingoracle (Python)
  • Poracle (Ruby)
  • GoPaddy (Go)
  • pax (Go)
  • padre (Go)
  • Padantic (Rust)
  • Padoracle (JavaScript)

Lizenz

MIT © Kishan Bagaria

Tool herunterladen