
CVE-2023-51467 POC
exp.py modifié pour l'exécution de commandes
Exploitation de la vulnérabilité de désérialisation
Test de contournement de l'authentification
En raison de l'utilisation incorrecte de null lors de la vérification d'identité, cette méthode n'a eu aucun effet, ce qui a permis de contourner l'authentification.
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");
Certains ont analysé une exécution directe de commandes, mais cela nécessite de contourner le filtrage Groovy. Ou existe-t-il un meilleur point d'entrée d'exécution. rce.txt
def process = cmd.execute()
process.waitFor()
println "Exit code: ${process.exitValue()}"
println "Output:\n${process.text}"```
## Références
https://github.com/apache/ofbiz-framework/commit/47e7959065b82b170da5c330ed5c17af16415ede#diff-68decfd4946b8ef0adcc4c7f18b938aec4a07ff7ce64609a2691ba88a4688607
https://mp.weixin.qq.com/s/vdyqfm0FkbKp5W2LilhbXA
Ne pas utiliser à des fins illégales.