Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
AutoGenerateXalanPayload — cve-2022-34169 延伸出的Jdk Xalan的payload自动生成工具,可根据不同的Jdk生成出其所对应的xslt文件 | Kitploit
Tools/GitHubGitHub/flowerwind/autogeneratexalanpayload
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationBinary Exploitation
GitHubflowerwind/autogeneratexalanpayload

AutoGenerateXalanPayload

cve-2022-34169 延伸出的Jdk Xalan的payload自动生成工具,可根据不同的Jdk生成出其所对应的xslt文件

View Repository

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
9463 years agoReviewed by Kitploit

AutoGenerateXalanPayload

Introduction

This is an automated payload generation tool for the JDK Xalan overflow vulnerability (CVE-2022-34169). It was created because different JDK versions require different overflow payloads. Running this tool with different JDK versions will generate different XSLT exploit files.

Usage

Copy select.bak.xslt to select.xslt and modify the command to be executed.

image-20230117143738105

Then run java -jar AutoGenerateXalanPayload.jar. Some errors may be thrown during the process; ignore them. After execution, the generated select.xslt will be the Xalan overflow command execution payload for that JDK version.

image-20230117144434703

Adaptation Approach

https://mp.weixin.qq.com/s/xxAtjFvk9RxWiY-pwGf8Ow

JDK Version Comparison

Due to the large number of JDK minor versions, I used a binary search method to compare versions from JDK 1.6 to JDK 1.8. Using JDK 1.7 as an example: first test the highest minor version of JDK 1.7 to obtain an XSLT, and define its content as type A. Then test the lowest minor version of JDK 1.7 to obtain another XSLT. If the two XSLTs are identical, it means all versions between the lowest and highest JDK 1.7 use the same type A payload. If they differ, I test the middle version of JDK 1.7 and continue the binary search. This is the fastest method I could think of – it avoids installing every single version while still covering all possibilities. For example, from the tested results below: Jdk-8u301 uses type A, Jdk-8u202 uses type A, so is it possible that Jdk-8u221 (the midpoint between them) uses type B? No.

Below are my test results, showing six different payload types between JDK 1.6 and JDK 1.8.

References

https://blog.noah.360.net/xalan-j-integer-truncation-reproduce-cve-2022-34169/

Download Tool
JDK versionXSLS type
Jdk-8u301A
Jdk-8u202A
Jdk-8u162A
Jdk8u152A
Jdk8u151B
Jdk8u144B
Jdk8u131B
Jdk8u121C
Jdk8u111C
Jdk8u102D
Jdk8u101D
Jdk8u91D
Jdk8u60D
Jdk8u20D
Jdk7u40D
Jdk7u21D
Jdk7u10D
Jdk7u05D
Jdk7u04D
Jdk7u03E
Idk7u02E
Jdk7u0E
Jdk6u45E
Jdk6u20E
Jdk6u17F
Jdk6u15F
Jdk6u10F
Jdk6u0F