Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Jrohy-trojan-unauth-poc — CVE-2024-55215 | Kitploit
도구/GitHubGitHub/ainrm/jrohy-trojan-unauth-poc
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubainrm/jrohy-trojan-unauth-poc

Jrohy-trojan-unauth-poc

CVE-2024-55215

저장소 보기
221년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Jrohy/trojan 관리자 비밀번호 무단 변경 취약점

Jrohy/trojan은 Go로 개발된 trojan 서비스 자동 배포 오픈소스 프로젝트입니다. 웹 초기화 인터페이스 /auth/register가 사용자 설정 후 정상적으로 종료되지 않아, 인증되지 않은 방문자가 직접 관리자 비밀번호를 변경할 수 있습니다.

프로젝트 주소:

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

영향 버전:

  • v2.0.0 - v2.15.3

취약점 원리

등록 라우트로서, updateUser 함수가 /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)

요청에서 password를 추출하여 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)
}

데이터베이스를 업데이트하여 새 비밀번호를 기록합니다.

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)
}

취약점 증명

20241127170540

도구 다운로드