
CVE-2023-51467 POC
exp.py alterado para execução de comandos
Exploração de vulnerabilidade de serialização
Teste de bypass de autenticação
Devido ao uso incorreto de nulo na verificação de autenticação, essa abordagem não funcionou, resultando em bypass de autenticação.
if (username == null) username = (String) session.getAttribute("USERNAME");
if (password == null) password = (String) session.getAttribute("PASSWORD");
if (token == null) token = (String) session.getAttribute("TOKEN");
if (UtilValidate.isEmpty(username)) username = (String) session.getAttribute("USERNAME");
if (UtilValidate.isEmpty(password)) password = (String) session.getAttribute("PASSWORD");
if (UtilValidate.isEmpty(token)) token = (String) session.getAttribute("TOKEN");
Alguns analisaram a execução direta de comandos, mas isso requer contornar o filtro Groovy. Ou existe uma melhor entrada para execução. rce.txt
def process = cmd.execute()
process.waitFor()
println "Exit code: ${process.exitValue()}"
println "Output:\n${process.text}"```
## Referências
https://github.com/apache/ofbiz-framework/commit/47e7959065b82b170da5c330ed5c17af16415ede#diff-68decfd4946b8ef0adcc4c7f18b938aec4a07ff7ce64609a2691ba88a4688607
https://mp.weixin.qq.com/s/vdyqfm0FkbKp5W2LilhbXA
Não use para fins ilegais