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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
some-tweak-to-hide-jwt-payload-values — JWT 페이로드 값을 XOR 암호화와 타임스탬프 기반 키를 사용하여 난독화하는 경량 Python 라이브러리로, 사용자 ID와 같은 민감한 클레임의 일반 텍스트 디코딩을 방지합니다. | Kitploit
도구/GitHubGitHub/password123456/some-tweak-to-hide-jwt-payload-values
Encryption/Decryption ToolsAuthenticationLearning & EducationAPI Security
GitHubpassword123456/some-tweak-to-hide-jwt-payload-values

some-tweak-to-hide-jwt-payload-values

JWT 페이로드 값을 XOR 암호화와 타임스탬프 기반 키를 사용하여 난독화하는 경량 Python 라이브러리로, 사용자 ID와 같은 민감한 클레임의 일반 텍스트 디코딩을 방지합니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
1042년 전아직 검토되지 않음

some-tweak-to-hide-jwt-payload-values

made-with-python Python Versions Hits

  • JWT 페이로드를 보호하기 위한 몇 가지 조정 및 아이디어로, 값을 지속적으로 변경하여 디코딩을 무의미하게 만들고,
    디코딩된 출력이 이해 불가능하도록 보장하면서 성능 오버헤드를 최소화합니다.

JWT 토큰이란?

JSON 웹 토큰 (JWT, "jot"으로 발음)은 두 당사자 간에 JSON 메시지를 전달하는 간결하고 URL-안전한 방법입니다. RFC 7519에 정의된 표준입니다. 토큰은 점으로 구분된 여러 부분으로 나뉜 긴 문자열입니다. 각 부분은 base64 URL로 인코딩됩니다.

토큰의 부분은 JWT의 유형, 즉 JWS(서명된 토큰)인지 JWE(암호화된 토큰)인지에 따라 다릅니다. 토큰이 서명된 경우 헤더, 페이로드, 서명의 세 가지 섹션이 있습니다. 토큰이 암호화된 경우 헤더, 암호화된 키, 초기화 벡터, 암호문(페이로드), 인증 태그의 다섯 부분으로 구성됩니다. JWT의 가장 일반적인 사용 사례는 OAuth 및 OpenID Connect 흐름에서 액세스 토큰 및 ID 토큰으로 활용하는 것이지만, 다른 목적으로도 사용될 수 있습니다.

이 코드 스니펫의 주요 목적

이 코드 스니펫은 JWT 토큰을 디코딩할 때 저장된 키가 평문으로 표시되는 페이로드 부분의 보안을 강화하기 위한 조정 관점을 제공합니다. 이 코드 스니펫은 JWT 토큰을 디코딩할 때 페이로드 부분의 보안을 강화하기 위한 조정 관점을 제공합니다. 일반적으로 페이로드 부분은 JWT 토큰 (base64)에서 디코딩될 때 평문으로 나타납니다. 주요 목표는 페이로드 값을 가볍게 암호화하거나 난독화하여 그 의미를 파악하기 어렵게 만드는 것입니다. 의도는 누군가가 페이로드 값을 디코딩하려고 시도하더라도 쉽게 할 수 없도록 하는 것입니다.

userid

  • 코드 스니펫은 예시로 페이로드 섹션에 저장된 "userid"라는 키를 대상으로 합니다.
  • "userid"를 선택한 이유는 토큰의 유효성을 확인한 후 (예: 만료되지 않았는지 확인) 사용자 식별 또는 인증 목적으로 자주 사용되기 때문입니다.

"userid"라는 키의 값을 숨기려는 아이디어는 다음과 같습니다.

암호화:

  • 타임스탬프가 해시된 다음 사용자 ID와 비트 단위 XOR 연산을 수행하여 암호화됩니다.
  • XOR 연산은 대칭 키를 사용하여 수행됩니다.
  • 결과 값은 Base64를 사용하여 인코딩됩니다.

복호화:

  • 암호화된 데이터는 Base64를 사용하여 디코딩됩니다.
  • 대칭 키와의 XOR 연산을 통해 복호화가 수행됩니다.
  • 원래 사용자 ID와 해시된 타임스탬프가 평문으로 드러납니다.
  • 관련 용도 및 목적을 위해 "|" 구분자로 분할하여 사용자 ID 부분을 추출합니다.

XOR 인코딩을 위한 대칭 키:

  • 이 키에는 다양한 자료를 사용할 수 있습니다.
  • 기존 비밀번호 해싱에 사용되는 솔트, 임의의 랜덤 문자열, 생성된 UUID 또는 기타 적절한 자료가 될 수 있습니다.
  • 그러나 이 키는 데이터베이스 관리 시스템(DBMS)에 안전하게 저장되어야 합니다.

그리고..^^

root@kitploit:~
예제에서는 키가 { 'userid': 'random_value' }로 표시되어
사용자 ID를 나타냄을 명확히 알 수 있습니다.

그러나 이는 단지 설명을 위한 것입니다.

실제로는 미리 정해지고 공개되지 않은 이름이 일반적으로 사용됩니다.
예를 들어, 'a': 'changing_random_value'

참고 사항

  • 이 코드 스니펫은 교육 목적으로 생성되었으며, 본질적으로 안전하기보다는 아이디어의 출발점 역할을 합니다.
  • 평문 가시성 이상의 보안 수준을 제공하지만 절대적인 안전을 보장하지는 않습니다.

이 방법을 사용하여 생성된 JWT 토큰을 변조하려면 JWT 비밀 키와 UserID를 생성하는 데 사용된 XOR 대칭 키에 모두 접근해야 합니다.

그리고...

  • 도움이 되셨다면 추가 개선을 위해 "star"🌟를 눌러 주세요.

미리보기

root@kitploit:~
# python3 main.py

- Current Unix Timestamp: 1709160368
- Current Unix Timestamp to Human Readable: 2024-02-29 07:46:08

- userid: 23243232
- XOR Symmetric key: b'generally_user_salt_or_hash_or_random_uuid_this_value_must_be_in_dbms'
- JWT Secret key: yes_your_service_jwt_secret_key

- Encoded UserID and Timestamp: VVZcUUFTX14FOkdEUUFpEVZfTWwKEGkLUxUKawtHOkAAW1RXDGYWQAo=
- Decoded UserID and Hashed Timestamp: 23243232|e27436b7393eb6c2fb4d5e2a508a9c5c

- JWT Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aW1lc3RhbXAiOiIyMDI0LTAyLTI5IDA3OjQ2OjA4IiwidXNlcmlkIjoiVlZaY1VVRlRYMTRGT2tkRVVVRnBFVlpmVFd3S0VHa0xVeFVLYXd0SE9rQUFXMVJYREdZV1FBbz0ifQ.bM_6cBZHdXhMZjyefr6YO5n5X51SzXjyBUEzFiBaZ7Q
- Decoded JWT: {'timestamp': '2024-02-29 07:46:08', 'userid': 'VVZcUUFTX14FOkdEUUFpEVZfTWwKEGkLUxUKawtHOkAAW1RXDGYWQAo='}


# run again
- Decoded JWT: {'timestamp': '2024-02-29 08:16:36', 'userid': 'VVZcUUFTX14FaRNAVBRpRQcORmtWRGleVUtRZlYXaBZZCgYOWGlDR10='}
- Decoded JWT: {'timestamp': '2024-02-29 08:16:51', 'userid': 'VVZcUUFTX14FZxMRVUdnEgJZEmxfRztRVUBabAsRZkdVVlJWWztGQVA='}
- Decoded JWT: {'timestamp': '2024-02-29 08:17:01', 'userid': 'VVZcUUFTX14FbxYQUkM8RVRZEmkLRWsNUBYNb1sQPREFDFYKDmYRQV4='}
- Decoded JWT: {'timestamp': '2024-02-29 08:17:09', 'userid': 'VVZcUUFTX14FbUNEVEVqEFlaTGoKQjxZBRULOlpGPUtSClALWD5GRAs='}

img

도구 다운로드