
Ferramenta de geração automática de payload do Jdk Xalan derivado do cve-2022-34169, que pode gerar o arquivo xslt correspondente de acordo com diferentes Jdks.
Esta é uma ferramenta de geração automatizada de payloads para a vulnerabilidade de overflow do Xalan no JDK, derivada do CVE-2022-34169. Como foi descoberto que diferentes versões do JDK requerem payloads de overflow diferentes, esta ferramenta de geração automatizada foi criada. Basta executar este projeto com diferentes versões do JDK para gerar diferentes arquivos XSLT de exploração.
Copie select.bak.xslt para select.xslt e modifique o comando que deseja executar.

Em seguida, execute java -jar AutoGenerateXalanPayload.jar. Durante o processo, alguns erros podem ser lançados; ignore-os. Após a conclusão, o arquivo select.xslt obtido será o payload para execução de comandos de overflow do Xalan compatível com essa versão do JDK.

https://mp.weixin.qq.com/s/xxAtjFvk9RxWiY-pwGf8Ow
Devido ao grande número de versões secundárias do JDK, usei o método de bissecção para comparar as versões do JDK 1.6 ao 1.8. Tomando como exemplo o teste da versão 1.7: primeiro testei a versão secundária mais alta do JDK 1.7, obtive um XSLT e defini seu conteúdo como tipo A. Depois testei a versão secundária mais baixa do JDK 1.7, obtive um XSLT; se este XSLT for exatamente igual ao conteúdo gerado pela versão mais alta, isso indica que todas as versões do JDK 1.7, da mais baixa à mais alta, utilizam um payload do tipo A. Se for diferente, então pego a versão intermediária do JDK 1.7 e testo, continuando assim com a bissecção. Esta é a maneira mais rápida que pensei para testar, sem precisar instalar todas as versões, mas ainda cobrindo todas elas. Dê um exemplo dos resultados testados abaixo: Jdk-8u301 é payload tipo A, Jdk-8u202 é payload tipo A, então Jdk-8u221 é a versão intermediária entre esses dois; não poderia ser payload tipo B, certo?
Abaixo estão os resultados que obtive nos testes, concluindo que existem seis tipos de payload entre JDK 1.6 e 1.8.
https://blog.noah.360.net/xalan-j-integer-truncation-reproduce-cve-2022-34169/
| Versão JDK | Tipo xsls |
|---|
| Jdk-8u301 | A |
| Jdk-8u202 | A |
| Jdk-8u162 | A |
| Jdk8u152 | A |
| Jdk8u151 | B |
| Jdk8u144 | B |
| Jdk8u131 | B |
| Jdk8u121 | C |
| Jdk8u111 | C |
| Jdk8u102 | D |
| Jdk8u101 | D |
| Jdk8u91 | D |
| Jdk8u60 | D |
| Jdk8u20 | D |
| Jdk7u40 | D |
| Jdk7u21 | D |
| Jdk7u10 | D |
| Jdk7u05 | D |
| Jdk7u04 | D |
| Jdk7u03 | E |
| Idk7u02 | E |
| Jdk7u0 | E |
| Jdk6u45 | E |
| Jdk6u20 | E |
| Jdk6u17 | F |
| Jdk6u15 | F |
| Jdk6u10 | F |
| Jdk6u0 | F |