yaklang avatar

Expression Language Injection

This is a deep playbook for exploiting expression language injection in Java frameworks, covering SpEL in Spring, OGNL in Struts2, and Java EL in JSP/JSF. It walks through sandbox bypasses like `_memberAccess` manipulation, includes CVE-specific exploits like Spring Cloud Gateway's CVE-2022-22947 via actuator abuse, and provides polyglot probes to distinguish between different EL engines. The distinction from SSTI is clear: you're targeting expression evaluators, not template engines, though detection often starts with the same `${7*7}` probe. If you're pentesting Java apps or dealing with legacy Struts2 deployments, this gives you ready-to-use payloads and the methodology to adapt them when sandboxes block the obvious paths.

skills.sh installs
3.8K
GitHub stars
2.6K
last updated
Aug 21, 2026

Install

$ npx -y skills add yaklang/hack-skills --skill expression-language-injection --agent claude-code

Installs into .claude/skills of the current project.

Files

SKILL: Expression Language Injection — Expert Attack Playbook

AI LOAD INSTRUCTION: Expert EL injection techniques covering SpEL (Spring), OGNL (Struts2), and Java EL (JSP/JSF). Distinct from SSTI — EL injection targets expression evaluators in Java frameworks, not template engines. Covers sandbox bypass, _memberAccess manipulation, actuator abuse, and real-world CVE chains.

0. RELATED ROUTING

Key distinction: SSTI targets template rendering engines; EL injection targets expression evaluators embedded in Java frameworks. They share detection probes (${7*7}) but diverge in exploitation.


1. DETECTION — POLYGLOT PROBES

${7*7}              → 49 = SpEL, OGNL, or Java EL
#{7*7}              → 49 = SpEL (alternative syntax) or JSF EL
%{7*7}              → 49 = OGNL (Struts2)
${T(java.lang.Math).random()}  → random float = SpEL confirmed
%{#context}         → object dump = OGNL confirmed

Sponsors

Details

Repository
github.com/yaklang/hack-skills
Categories
Java & JVM, Office & Documents
First seen
May 16, 2026

More from yaklang/hack-skills

All 102

Recommended

More Java & JVM
1yaklang avatarjndi-injectionyaklang/hack-skillsJNDI injection playbook. Use when Java applications perform JNDI lookups with attacker-controlled names, especially via Log4j2, Spring, or any code path reachin3.8Kskills.sh installs
2giuseppe-trisciuoglio avatargraalvm-native-imagegiuseppe-trisciuoglio/developer-kitProvides expert guidance for building GraalVM Native Image executables from Java applications. Use when converting JVM applications to native binaries, optimizi3.6Kskills.sh installs
3yaklang avatarghost-bits-cast-attackyaklang/hack-skillsJava "Ghost Bits" / Cast Attack playbook (Black Hat Asia 2026). Use when attacking Java services where 16-bit char is silently narrowed to 8-bit byte to bypass 3.5Kskills.sh installs
4dynatrace avatardt-obs-servicesdynatrace/dynatrace-for-aiService performance monitoring with RED metrics (Rate, Errors, Duration) and runtime-specific telemetry for Java, .NET, Node.js, Python, PHP, and Go. Use when a2.9Kskills.sh installs
5getsentry avatarsentry-android-sdkgetsentry/sentry-for-aiFull Sentry SDK setup for Android. Use when asked to "add Sentry to Android", "install sentry-android", "setup Sentry in Android", or configure error monitoring2.4Kskills.sh installs
6capawesome-team avatarcapacitor-plugin-upgradescapawesome-team/skillsGuides the agent through upgrading a Capacitor plugin to a newer major version. Supports upgrades from Capacitor 4 through 8, including multi-version jumps. Cov1.2Kskills.sh installs