Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
padding-oracle-attacker — 🔓 CLI工具和库,用于轻松执行填充预言机攻击,支持并发网络请求和优雅的用户界面。 | Kitploit
工具/GitHubGitHub/kishanbagaria/padding-oracle-attacker
加密/解密工具漏洞利用Web应用程序漏洞利用密码学
GitHubkishanbagaria/padding-oracle-attacker

padding-oracle-attacker

🔓 CLI工具和库,用于轻松执行填充预言机攻击,支持并发网络请求和优雅的用户界面。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
216323年前Kitploit 审核通过

padding-oracle-attacker

CLI 工具和库,用于轻松执行 填充预言攻击,支持并发网络请求并拥有优雅的 UI。

poattack 解密演示

构建状态

安装

确保已安装 Node.js,然后运行

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

或

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

CLI 用法

root@kitploit:~
用法
  $ padding-oracle-attacker decrypt <url> hex:<ciphertext_hex> <block_size> <error> [选项]
  $ padding-oracle-attacker decrypt <url> b64:<ciphertext_b64> <block_size> <error> [选项]

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

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

命令
  decrypt                  对给定密文(hex:0123abcd)查找明文(foobar)
  encrypt                  对给定明文(foo=bar)查找密文(hex:abcd1234)
  analyze                  帮助判断 URL 是否易受攻击,以及当解密错误发生时响应的差异
                           (用于 <error> 参数)

参数
  <url>                    要攻击的 URL。默认情况下负载会附加在末尾。要指定自定义注入点,
                           请在头部(-H)、请求体(-d)或 URL 中包含 {POPAYLOAD}
  <block_size>             服务器上加密算法使用的块大小
  <error>                  当服务器解密失败时响应中出现的字符串。
                           指定 HTTP 响应体中的字符串(如 PaddingException)
                           或 HTTP 响应的状态码(如 400)

选项
  -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 不对 {POPAYLOAD} 进行 URL 编码                 [默认: false]

  --start-from-1st-block   从第一个块而不是最后一个块开始处理             [默认: false]
                           (仅适用于 decrypt 模式)

示例
  $ 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=

别名
  poattack
  padding-oracle-attack

库 API

root@kitploit:~
const { decrypt, encrypt } = require('padding-oracle-attacker')
// 或
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。默认情况下负载会附加在末尾。要指定自定义注入点,请在 URL、头部(requestOptions.headers)或请求体(requestOptions.data)中包含 {POPAYLOAD}

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 以十六进制编码并插入注入点(除非存在 {POPAYLOAD},否则为 URL 末尾)。


可选选项(仅 decrypt)
alreadyFound: Buffer

已知/已找到的明文字节(从末尾开始),可以跳过。如果提供十个字节的 Buffer,则跳过最后十个字节。

initFirstPayloadBlockWithOrigBytes: boolean = false

使用原始 ciphertext 字节而不是零来初始化第一个负载块。
示例:abcdef12345678ff 1111111111111111 而不是 00000000000000ff 1111111111111111

startFromFirstBlock: boolean = false

从第一个块而不是最后一个块开始处理。

makeInitialRequest: boolean = true

使用提供的原始 ciphertext 发起一个初始请求,并将服务器响应输出到控制台,以便用户确认网络请求发送正确。


可选选项(仅 encrypt)
makeFinalRequest: boolean = true

在找到新 plaintext 的 ciphertext 字节后,使用找到的字节发起最终请求,并将服务器响应输出到控制台。

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

将 src 目录中的 TypeScript 文件编译为 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

下载工具