crypto-attack

Detect, identify, and decrypt encrypted fields in web application traffic and JavaScript.

2|1|Updated Aug 28, 2026
One-click install
npx skills add https://github.com/lycheer1126/xs-bigdan --skill crypto-attack-lycheer1126
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: crypto-attack
Source: https://github.com/lycheer1126/xs-bigdan/tree/main/knowledge/skills/crypto_attack
Command: npx skills add https://github.com/lycheer1126/xs-bigdan --skill crypto-attack-lycheer1126

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pycryptodome.

What problem does it solve? During authorized penetration tests, applications often encrypt request bodies, response fields, and signatures with AES, DES, or custom encoding, blocking parameter tampering and data analysis. This Skill turns ad-hoc guessing into a systematic workflow for identifying encryption schemes, extracting keys from JavaScript, and decrypting protected data. ## Core Features & Use Cases - Encrypted Field Detection: Pattern-match Base64, Hex, and JWT candidates in response bodies and flag suspicious field names like encrypt, sign, or payload. - Key and IV Extraction from JS: Locate CryptoJS, Node crypto, Web Crypto, JSEncrypt, and sm-crypto calls in JavaScript to recover hardcoded keys, IVs, and derivation logic. - AES Attack Chain: Identify CBC/ECB/GCM modes, detect ECB via duplicate ciphertext blocks, test for Padding Oracle behavior, and brute-force keys with a three-tier dictionary built from JS literals, leaked values, and common weak keys. - Use Case: An API returns {"data":"U2FsdGVkX18..."}. You extract the AES key from the site's JS bundle, decrypt the field to reveal a user object, change role to admin, re-encrypt, and demonstrate a privilege escalation finding. ## Quick Start Analyze the target site's JavaScript and API responses to identify the encryption scheme, extract the key, and decrypt the protected fields.

Frequently Asked Questions about crypto-attack

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I extract AES keys from JavaScript files?

Search the site's JS bundles for CryptoJS.AES.encrypt or crypto.createCipheriv calls, then trace the key argument to its source: hardcoded Utf8.parse strings, MD5/PBKDF2 derivations, Base64-decoded literals, or values fetched from server responses.

How to detect ECB mode encryption without the key?

Split the ciphertext into 16-byte blocks and check for duplicates. ECB encrypts identical plaintext blocks to identical ciphertext blocks, so repeated blocks in the output confirm ECB mode without needing the key.

How do I tell if a Base64 string is encrypted or just encoded?

Decode it and inspect the result: readable text or JSON means plain encoding, while high-entropy binary output suggests encryption. Multi-layer detection recursively decodes Base64, Hex, and URL-safe variants until plaintext or JSON appears.

What is a Padding Oracle attack and how do I test for it?

A Padding Oracle exists when a server returns distinguishable errors for invalid padding versus other decryption failures. Test by tampering with the last ciphertext byte and comparing the error response to a valid request's response.

Can decrypted data be reused in other penetration test phases?

Yes. Decrypted parameters feed back into API fuzzing, extracted credentials or JWTs feed token attacks, discovered user IDs enable IDOR testing, and recovered keys are added to dictionaries for decrypting other ciphertexts.