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
Jrohy-trojan-unauth-poc — CVE-2024-55215 | Kitploit
Outils/GitHubGitHub/ainrm/jrohy-trojan-unauth-poc
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed Teaming
GitHubainrm/jrohy-trojan-unauth-poc

Jrohy-trojan-unauth-poc

CVE-2024-55215

Voir le dépôt
223il y a 1 anPas 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

Jrohy/trojan Modification non autorisée du mot de passe administrateur

Jrohy/trojan est un projet open source basé sur Go pour le déploiement automatisé du service trojan. L'interface d'initialisation web /auth/register n'est pas correctement fermée après la configuration utilisateur, ce qui permet à un visiteur non autorisé de modifier directement le mot de passe administrateur.

Adresse du projet :

  • https://github.com/Jrohy/trojan

Versions concernées :

  • v2.0.0 - v2.15.3

Principe de la vulnérabilité

Route d'enregistrement, utilisation de la fonction updateUser pour traiter la requête /auth/register

root@kitploit:~
// https://github.com/Jrohy/trojan/tree/v2.15.3/web/auth.go#L155

func Auth(r *gin.Engine, timeout int) *jwt.GinJWTMiddleware {
	jwtInit(timeout)

	newInstall := gin.H{"code": 201, "message": "No administrator account found inside the database", "data": nil}
	r.NoRoute(authMiddleware.MiddlewareFunc(), func(c *gin.Context) {
		claims := jwt.ExtractClaims(c)
		fmt.Printf("NoRoute claims: %#v\n", claims)
		c.JSON(404, gin.H{"code": 404, "message": "Page not found"})
	})
	...
	r.POST("/auth/register", updateUser)

Extraction du password de la requête, transmission à SetValue

root@kitploit:~
// https://github.com/Jrohy/trojan/tree/v2.15.3/web/auth.go#L113

func updateUser(c *gin.Context) {
	responseBody := controller.ResponseBody{Msg: "success"}
	defer controller.TimeCost(time.Now(), &responseBody)
	username := c.DefaultPostForm("username", "admin")
	pass := c.PostForm("password")
	err := core.SetValue(fmt.Sprintf("%s_pass", username), pass)
	if err != nil {
		responseBody.Msg = err.Error()
	}
	c.JSON(200, responseBody)
}

Mise à jour de la base de données, écriture du nouveau mot de passe

root@kitploit:~
// https://github.com/Jrohy/trojan/tree/v2.15.3/core/leveldb.go#L30

func SetValue(key string, value string) error {
	db, err := leveldb.OpenFile(dbPath, nil)
	if err != nil {
		return err
	}
	defer db.Close()
	return db.Put([]byte(key), []byte(value), nil)
}

Preuve de la vulnérabilité

20241127170540

Télécharger l’outil