INNER CODE UNIT · TypeScript

isDecryptionSuccess

KishanBagaria/padding-oracle-attacker · src/cli.ts:169

  const isDecryptionSuccess = ({ statusCode, body }: OracleResult) => {
    if (!isNaN(paddingError as number)) return statusCode !== +paddingError
    return !body.includes(paddingError as unknown as string)
  }
  const transformPayload = (payload: Buffer) => {
    const urlencode = dontURLEncodePayload ? (i: string) => i : encodeURIComponent
    if (payloadEncoding === 'hex-uppercase') return payload.toString('hex').toUpperCase()
    if (payloadEncoding === 'base64') return urlencode(payload.toString('base64'))
    if (payloadEncoding === 'base64-urlsafe') return urlencode(toBase64Custom(payload, '-_'))
    if (payloadEncoding.startsWith('base64(')) {
      // base64 with custom alphabet. like "base64(-!~)"
      const chars = payloadEncoding.slice('base64('.length).split('')
      return urlencode(toBase64Custom(payload, chars))
    }
    return payload.toString('hex')
  }
  const isCacheEnabled = !disableCache && cache !== false
  const commonArgs = { url, blockSize, isDecryptionSuccess, transformPayload, concurrency, requestOptions, isCacheEnabled }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…