Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/yoraexe-ctf-crypto-modern
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: finance
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ctf-crypto-modern
What's inside
- Skill name
ctf-crypto-modern- Description
- CTF modern cipher attacks. AES padding oracle, CBC bitflipping, ECB image oracle, AES-CFB-8 IV state forging, GCM key recovery, LFSR attacks, hash length extension, CRIME compression oracle, CBC-MAC forgery. Triggers: 'aes attack', 'padding oracle', 'cbc bitflip', 'ecb oracle', 'gcm attack', 'lfsr', 'hash length extension', 'compression oracle', 'cbc-mac forgery', 'modern cipher'.
- License
- MIT
- Instructions
- 278 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# CTF Crypto — Modern Cipher Attacks
Padding oracle, CBC bitflip, ECB oracle, AES-GCM, LFSR, hash length extension.
---
## Phase 1: AES-ECB Detection & Oracle
```python
# ECB: same 16-byte plaintext block → same ciphertext
# Detect: submit 48 'A' bytes → 3 identical ciphertext blocks = ECB
import requests
TARGET = "https://TARGET/encrypt"
# Detect ECB:
ct = bytes.fromhex(requests.post(TARGET, data={"plaintext": "A"*48}).json()["ct"])
blocks = [ct[i:i+16] for i in range(0, len(ct), 16)]
if blocks[0] == blocks[1] == blocks[2]:
print("ECB mode confirmed")
# ECB byte-at-a-time oracle:
def oracle(payload: bytes) -> bytes:
ct = requests.post(TARGET, data={"plaintext": payload.hex()}).json()["ct"]
return bytes.fromhex(ct)
# Recover secret: SECRET appended to payload → encrypt
def recover_secret():
secret = b""
for pos in range(256):
pad_len = 15 - (pos % 16)
block = pos // 16
# Known block:
known = b"A" * pad_len
target = oracle(known)[block*16:(block+1)*16]
# Try each byte:
for b in range(256):
test = b"A" * pad_len + secret + bytes([b])
ct = oracle(test)[block*16:(block+1)*16]
if ct == target:
secret += bytes([b])
break
return secret
```
---
## Phase 2: CBC Padding Oracle
```python
from pwn import xor
def padding_oracle(ciphertext: bytes) -> bool:
"""Return True if padding is valid."""
import requests
r = requests.post("https://TARGET/decrypt", data={"ct": ciphertext.hex()})
return "valid" in r.text.lower() or r.status_code == 200
def cbc_decrypt_block(prev_block: bytes, cipher_block: bytes) -> bytes:
"""Decrypt one 16-byte AES-CBC block using padding oracle."""
intermediate = bytearray(16)
for i in range(15, -1, -1):
pad_byte = 16 - i
# Craft previous block to produce desired padding:
prev = bytearray(16)
for j in range(i+1, 16):
prev[j] = intermediate[j] ^ pad_byte
# Brute-force current byte:
for b in range(256):
prev[i] = b
test_iv = bytes(prev)
if padding_oracle(test_iv + cipher_block):
# Edge case: valid padding might be longer than expected
if i == 15:
prev[i] = b ^ 1
if not padding_oracle(bytes(prev) + cipher_block):
continue
intermediate[i] = b ^ pad_byte
break
return xor(intermediate, prev_block)
```
---
## Phase 3: CBC Bitflipping
```python
# Target: change specific byte in decrypted plaintext
# By XORing the previous ciphertext block at same position
def flip_byte(ciphertext: bytes, block_num: int, byte_pos: int,
from_byte: int, to_byte: int) -> bytes:
"""Flip byte in CBC decryption without key."""
ct = bytearray(ciphertext)
# Modify byte in PREVIOUS block (affects current block decryption):
target_pos = (block_num - 1) * 16 + byte_pos
ct[target_pos] ^= from_byte ^ to_byte
return bytes(ct)
# Example: change 'user' to 'root' in cookie:
# cookie = IV + E("|role=user|name=bob|")
# position 6 in block 1 is 'u' in 'user'
# ct = flip_byte(ct, block_num=1, byte_pos=6, from_byte=ord('u'), to_byte=ord('r'))
# ... continue for all bytes of 'user' → 'admi' etc.
```
---
## Phase 4: Hash Length Extension
```python
# Vulnerability: HMAC-like but using H(secret || message)
# Extend message without knowing secretFrom Yoraexe/ceobe, MIT.
More from Yoraexe/ceobe
- 0.502score
codex-qa
Yoraexe
QA the omo Codex Light edition (lazycodex / packages/omop-codex) itself, in strict isolation so ONLY our plugin is exercised, never the user's real ~/.codex.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-android
Yoraexe
CTF Android challenge analysis.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-advanced-math
Yoraexe
CTF advanced math crypto.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-classic
Yoraexe
CTF classic cipher attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-ecc
Yoraexe
CTF ECC attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-prng
Yoraexe
CTF PRNG attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-rsa
Yoraexe
CTF RSA cryptography attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ad-attacks
Yoraexe
Active Directory credential attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-exotic
Yoraexe
CTF exotic cryptography attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
blue-ir
Yoraexe
Blue team incident response skill.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
blue-detect
Yoraexe
Blue team detection skill.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
blue-forensics
Yoraexe
Blue team forensics skill.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jul 17, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Yoraexe/ceobe
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Yoraexe
- 0.502score
codex-qa
Yoraexe
QA the omo Codex Light edition (lazycodex / packages/omop-codex) itself, in strict isolation so ONLY our plugin is exercised, never the user's real ~/.codex.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-classic
Yoraexe
CTF classic cipher attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-advanced-math
Yoraexe
CTF advanced math crypto.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-android
Yoraexe
CTF Android challenge analysis.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ad-attacks
Yoraexe
Active Directory credential attacks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ctf-crypto-ecc
Yoraexe
CTF ECC attacks.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
ctf-crypto-modern skill. Agent Mart. https://agentmart.dev/skills/yoraexe-ctf-crypto-modern (last updated 2026-10-24)