Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
padding-oracle-attacker — 🔓 Инструмент командной строки и библиотека для простого выполнения атак на оракул набивки (padding oracle), с поддержкой параллельных сетевых запросов и элегантным интерфейсом. | Kitploit
Инструменты/GitHubGitHub/kishanbagaria/padding-oracle-attacker
Инструменты шифрования/дешифрованияЭксплуатацияЭксплуатация веб-приложенийКриптография
GitHubkishanbagaria/padding-oracle-attacker

padding-oracle-attacker

🔓 Инструмент командной строки и библиотека для простого выполнения атак на оракул набивки (padding oracle), с поддержкой параллельных сетевых запросов и элегантным интерфейсом.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
216324 лет назадПроверено Kitploit

padding-oracle-attacker

Инструмент командной строки и библиотека для простого выполнения атак на оракул дополнения (padding oracle attacks) с поддержкой параллельных сетевых запросов и элегантным интерфейсом.

демонстрация расшифровки poattack

Build Status

Установка

Убедитесь, что установлен Node.js, затем выполните

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

или

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

Использование CLI

root@kitploit:~
Usage
  $ 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]

Commands
  decrypt                  Находит открытый текст (foobar) для заданного шифротекста (hex:0123abcd)
  encrypt                  Находит шифротекст (hex:abcd1234) для заданного открытого текста (foo=bar)
  analyze                  Помогает определить, уязвим ли URL, и чем отличается ответ при ошибке дешифрования
                           (для аргумента <error>)

Arguments
  <url>                    URL для атаки. Полезная нагрузка по умолчанию добавляется в конец. Чтобы указать
                           пользовательскую точку внедрения, включите {POPAYLOAD} в заголовок (-H),
                           тело запроса (-d) или URL
  <block_size>             Размер блока, используемый алгоритмом шифрования на сервере
  <error>                  Строка, присутствующая в ответе, если на сервере не удалось выполнить дешифрование.
                           Укажите строку из тела HTTP-ответа (например, PaddingException)
                           или код состояния HTTP-ответа (например, 400)

Options
  -c, --concurrency        Количество одновременно отправляемых запросов             [по умолчанию: 128]
      --disable-cache      Отключить сетевой кеш. Сохраняется в файле                [по умолчанию: false]
                           poattack-cache.json.gz.txt
  -X, --method             HTTP-метод, используемый при выполнении запроса           [по умолчанию: GET]
  -H, --header             Заголовки, отправляемые с запросом.
                             -H 'Cookie: cookie1' -H 'User-Agent: Googlebot/2.1'
  -d, --data               Тело запроса
                             Строка JSON: {"id": 101, "foo": "bar"}
                             URL-кодировка: id=101&foo=bar
                           Убедитесь, что указали заголовок Content-Type.

  -e, --payload-encoding   Кодировка полезной нагрузки шифротекста для {POPAYLOAD}  [по умолчанию: hex]
                             base64          FooBar+/=
                             base64-urlsafe  FooBar-_
                             hex             deadbeef
                             hex-uppercase   DEADBEEF
                             base64(xyz)     Пользовательская base64 ('xyz' обозначает символы для '+/=')

  --dont-urlencode-payload Не URL-кодировать {POPAYLOAD}                            [по умолчанию: false]

  --start-from-1st-block   Начать обработку с первого блока вместо последнего       [по умолчанию: false]
                           (работает только в режиме decrypt)

Examples
  $ 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=

Aliases
  poattack
  padding-oracle-attack

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

Обязательные параметры
url: string

URL для атаки. Полезная нагрузка по умолчанию добавляется в конец. Чтобы указать пользовательскую точку внедрения, включите {POPAYLOAD} в URL, заголовок (requestOptions.headers) или тело запроса (requestOptions.data)

blockSize: number

Размер блока, используемый алгоритмом шифрования на сервере.

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

Функция, которая возвращает true, если ответ сервера указывает на успешное дешифрование.

ciphertext: Buffer (только для decrypt)

Шифротекст для дешифрования.

plaintext: Buffer (только для encrypt)

Открытый текст для шифрования. Дополнение будет добавлено автоматически. Пример: Buffer.from('foo bar', 'utf8')


Необязательные параметры
concurrency: number = 128

Количество одновременно отправляемых сетевых запросов.

isCacheEnabled: boolean = true

Ответы кешируются по умолчанию и сохраняются в файл poattack-cache.json.gz.txt. Установите false, чтобы отключить кеширование.

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

HTTP-метод, используемый при выполнении запроса. По умолчанию GET. Допустимые значения: POST, PUT, DELETE и т. д.

requestOptions.headers: { string: string }

Заголовки, отправляемые с запросом. Пример: { 'Content-Type': 'application/x-www-form-urlencoded' }

requestOptions.body: string

Тело запроса. Может быть строкой JSON, URL-кодированными параметрами и т. д. Заголовок Content-Type нужно устанавливать вручную.

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

full: Вывод в консоль всех данных (по умолчанию)
minimal: Вывод в консоль только после начала и завершения
none: Ничего не выводить в консоль

transformPayload: (ciphertext: Buffer) => string

Функция для преобразования ciphertext в строку при выполнении запроса. По умолчанию ciphertext кодируется в hex и вставляется в точку внедрения (конец URL, если не указан {POPAYLOAD}).


Необязательные параметры (только для decrypt)
alreadyFound: Buffer

Уже известные найденные байты открытого текста, которые можно пропустить (начиная с конца). Если вы укажете Buffer длиной десять байт, последние десять байтов будут пропущены.

initFirstPayloadBlockWithOrigBytes: boolean = false

Инициализировать первый блок полезной нагрузки байтами исходного ciphertext вместо нулей.
Пример: abcdef12345678ff 1111111111111111 вместо 00000000000000ff 1111111111111111

startFromFirstBlock: boolean = false

Начать обработку с первого блока вместо последнего.

makeInitialRequest: boolean = true

Выполнить начальный запрос с исходным ciphertext и вывести ответ сервера в консоль, чтобы пользователь убедился, что сетевые запросы отправляются корректно.


Необязательные параметры (только для encrypt)
makeFinalRequest: boolean = true

После нахождения байтов ciphertext для нового plaintext выполнить финальный запрос с найденными байтами и вывести ответ сервера в консоль.

lastCiphertextBlock: Buffer

Пользовательский шифротекст для последнего блока. По умолчанию последний блок состоит из нулей (000000000000000).

Разработка

padding-oracle-attacker написан на TypeScript. Если вы хотите изменить исходные файлы и запустить их, вы можете сначала скомпилировать файлы в JS и запустить их с помощью node, или использовать ts-node.
Пример: yarn build затем node dist/cli ... или просто ts-node src/cli ...

yarn build или npm run build

Компилирует файлы TypeScript из каталога src в файлы JS и помещает их в каталог dist.

yarn clean или npm run clean

Удаляет каталог dist.

yarn lint или npm run lint

Проверяет файлы с помощью eslint.

yarn test или npm run test

Проверяет и запускает тесты с помощью ava.

node test/helpers/vulnerable-server.js

Запускает тестовый сервер, уязвимый для атак на оракул дополнения, по адресу http://localhost:2020

Связанные проекты

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

Лицензия

MIT © Kishan Bagaria

Скачать инструмент