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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
leakish — 브라우저 개인정보 유출 탐지기 — 8가지 탐지 모듈, 위험 점수 산정, 계정별 기록을 모두 브라우저 안에서 제공합니다. | Kitploit
도구/GitHubGitHub/qruiqai/leakish
OSINT (Open Source Intelligence)Network MappingVulnerability AnalysisInformation GatheringWeb SecurityPrivacyLearning & EducationAPI SecurityDNS AnalysisAnomaly Detection
GitHubqruiqai/leakish

leakish

7143개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

브라우저 개인정보 유출 탐지기 — 8가지 탐지 모듈, 위험 점수 산정, 계정별 기록을 모두 브라우저 안에서 제공합니다.

저장소 보기웹사이트

Leakish

브라우저 개인정보 유출 탐지기 — 8가지 탐지 모듈, 위험 점수 평가, 그리고 계정별 기록을 모두 브라우저 안에서 제공합니다.

Built with Verdent Next.js 14 React 18 TypeScript 5 Prisma

Verdent로 제작 — 에이전트형 코딩 어시스턴트. 모든 탐지 모듈, 분석 대시보드, API 키 인증 흐름, 이중 언어 UI, 쿠버네티스 대응 Docker 이미지는 모두 Verdent가 주도한 페어 프로그래밍 세션에서 설계 및 구현되었습니다.


이 도구는 무엇인가

URL을 열고 모두 실행을 클릭하면 몇 초 안에 Leakish는 브라우저가 당신과 당신의 네트워크에 대해 무엇을 유출하는지 알려줍니다 — WebRTC, 핑거프린팅 API, DNS, 서버 측 프로브를 통해. 8개의 독립 모듈 각각은 타입화된 결과 + 위험 신호, 종합 점수(0–100), 그리고 등급(safe / warning / critical) 을 생성합니다.

로그인한 사용자는 스캔을 MySQL에 저장하고, 기록을 탐색하며, 분포 차트, 핑거프린트 해시 반복, IP / ASN 타임라인, 이상치 스캔, 쌍별 비교를 보여주는 분석 대시보드를 열 수 있습니다. 그 외의 모든 기능(탐지기 자체)은 계정 없이도 작동합니다 — 누구나 /app에 접속하여 스캔을 실행할 수 있습니다.

탐지 모듈

각 모듈은 단일 타입화된 DetectionModule<T> 인터페이스를 통해 등록되며 격리되어 실행됩니다 — 하나의 모듈에서 예외가 발생해도 다른 모듈에는 영향을 미치지 않습니다. 모듈별 활성화 상태는 버전 키와 함께 localStorage에 저장되어 새로고침 후에도 유지되며, 모두 실행 버튼은 활성화된 모듈 집합만 실행합니다.

기능

  • 브라우저 내 탐지 — 모든 모듈이 사용자의 탭에서 실행됩니다. 서버는 (a) 사용자가 로그인하여 스캔을 저장할 때, (b) network-probe 모듈이 서버 관측 IP를 읽기 위해 /api/detect/network를 호출할 때, (c) DNS 모듈이 https://dns.google/resolve와 통신할 때만 관여합니다.
  • 이중 언어 UI — 영어 / 중국어 완전 동등 지원. 로케일은 leakish.locale 쿠키에 저장되며 <html lang>, 페이지 메타데이터, 모든 화면, 모든 API 오류 응답, 매직 링크 로그인 이메일을 제어합니다.
  • 인증 — Google OAuth + 매직 링크 이메일(Mailgun)을 사용하는 NextAuth; MySQL 기반 Prisma 어댑터. 개발 환경에서는 이메일이 선택 사항입니다 — Mailgun이 구성되지 않으면 링크가 서버 로그에 출력됩니다.
  • 프로그래밍 방식 접근 — 사용자는 Integrations 페이지에서 det_… API 키를 발급할 수 있습니다(SHA-256으로 저장, 평문은 한 번만 표시). 모든 /api/detect/* 엔드포인트는 세션 쿠키 또는 Bearer 키를 허용하므로 CLI / CI 작업에서도 동일한 스캔을 저장할 수 있습니다.
  • /scans/analytics의 분석 대시보드 — 시간대 / 플랫폼 / 언어 / 화면 / WebGL / ASN / 국가 / 글꼴 수 분포 차트, 종류별 위험 등급이 포함된 핑거프린트 해시 반복, IP / ASN 타임라인, 다축 이상치 탐지기, 0–100 유사도 점수의 쌍별 비교.
  • 신호별 추적이 가능한 위험 모델 — lib/risk/assess.ts는 안정적인 ID(예: webrtc.public-ip-leak)를 가진 타입화된 RiskSignal을 생성하고, 모듈별 요약과 단일 종합 점수를 제공합니다. 주입을 통해 로케일을 인식합니다.

빠른 시작

사전 요구 사항: Node 22+(로컬 개발에는 20+이면 충분), Yarn 1.x, 실행 중인 MySQL 인스턴스, (선택 사항) Google OAuth 클라이언트.

root@kitploit:~
yarn install
cp env.example .env.local      # fill in DATABASE_URL, NEXTAUTH_SECRET, IP_HASH_SALT at minimum
yarn prisma:generate
yarn db:push                   # provision tables on a fresh DB
yarn dev                       # http://localhost:3000

로그인이 동작하기 위한 최소 환경 변수:

  • DATABASE_URL — 예: mysql://root:[email protected]:3306/detect
  • NEXTAUTH_SECRET — openssl rand -base64 32
  • NEXTAUTH_URL — 개발 환경에서는 http://localhost:3000
  • IP_HASH_SALT — openssl rand -base64 32

선택 사항:

  • GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET — Google 로그인용
  • MAILGUN_API_KEY / MAILGUN_DOMAIN / EMAIL_FROM — 실제 매직 링크 전송용 (이 값이 없으면 링크가 개발 서버 콘솔에 출력됩니다)
  • IPINFO_TOKEN — 네트워크 프로브에 ASN / VPN / 프록시 데이터를 추가하기 위한 토큰

전체 주석 목록은 env.example을 참조하세요.

라우트

프로젝트 구조

root@kitploit:~
app/
├── (marketing)/         # / — Landing (server-resolved auth state + client UI)
├── app/                 # /app — the detector page
├── login/               # /login
├── scans/               # /scans, /scans/[id], /scans/analytics
├── integrations/        # /integrations — API key management
├── api/
│   ├── auth/            # NextAuth route + apiKey-login + tests
│   ├── detect/
│   │   ├── analytics/   # aggregate + pairwise-diff
│   │   ├── network/     # server-side egress probe
│   │   ├── scans/       # save / list / get / delete
│   │   └── uniqueness/  # how many users share this fingerprint hash
│   ├── integration/keys # create / revoke / list API keys
│   └── health/          # liveness probe for k8s
├── opengraph-image.tsx  # dynamic OG (per-locale)
├── apple-icon.tsx       # dynamic apple-touch icon
├── icon.svg             # shield gradient
└── layout.tsx           # metadata + theme-init script + LocaleProvider

components/
├── modular-detector.tsx          # top-level shell (header + module list + result/overview)
├── detector/                     # module-list, result-panel, category filter, state hook
├── result-details/               # one detail view per module (typed switch)
├── overview/                     # overview panel + diagnostics export
├── auth/                         # AuthGateProvider, login dialog, login form
├── providers/                    # SessionProvider wrapper
└── ui/                           # shadcn-style primitives + theme/locale toggles

lib/
├── detection-modules/            # 8 module impls + ModuleManager + IP utils + tests
├── risk/                         # assess.ts — RiskSignal/score aggregation
├── i18n/                         # en.ts / zh.ts + Messages type + locale client/server
├── api/                          # withDetectAuth wrapper, scan-payload Zod schema
├── client/                       # browser-side scan-api (extractFingerprintInputs, saveScan, lookupUniqueness)
├── server/                       # network-probe, IP-hash salt, fingerprint hashing, rate-limit, send-email, analytics
├── persistence/                  # SSR-safe localStorage wrappers
├── env.ts                        # runtime env validation
├── logger.ts                     # dev-only diagnostic logger
└── prisma.ts                     # singleton client targeted at .prisma/detect-client

prisma/schema.prisma              # User / Account / Session / DetectScan / ApiKey / DetectFingerprintHash

스캔 왕복 과정

  1. 사용자가 /app에서 모두 실행을 클릭합니다. 탐지기는 ModuleManager.runAllEnabledModules를 통해 활성화된 모듈을 순회합니다 — 각 모듈의 실패는 포착되어 격리되므로 다른 결과는 계속 표시됩니다.
  2. 모든 모듈은 타입화된 DetectionResult<T>(success | failure 태그와 모듈별 data 포함)를 반환합니다. 결과 패널은 타입 안전한 switch를 통해 모듈별 상세 컴포넌트를 렌더링합니다.
  3. lib/risk/assess.ts는 각 결과를 순회하며 안정적인 ID를 가진 RiskSignal을 생성하고 OverallAssessment(점수 + 등급 + 개수)를 산출합니다.
  4. 이 스캔 저장 시 클라이언트는 구조화된 페이로드 + 핑거프린트 해시 (canvas2d / webgl / audio / fontset / UA)를 추출하여 /api/detect/scans에 POST합니다. 서버는 Zod로 검증하고, 서버 관측 IP / ASN / VPN 플래그를 기록하기 위해 자체 네트워크 프로브를 실행하며, DetectScan 행과 DetectFingerprintHash 행을 작성합니다.

기술 스택

테스트

단위 테스트는 대상 코드와 함께 __tests__/ 디렉터리에 있습니다:

root@kitploit:~
yarn test                    # full suite
yarn test path/to/file       # single file
yarn test -t "name pattern"  # by test-name regex

주요 테스트:

  • lib/detection-modules/__tests__/ — IP 분류 + mDNS 추출, 모듈 매니저 등록 및 실패 격리, WebRTC 모듈용 모의 RTCPeerConnection, browser-fingerprint 모듈의 jsdom 형태 테스트, CDP/자동화 신호 생성.
  • lib/server/__tests__/analytics.test.ts — 분포 버케팅, 반복 그룹화, 이상치 점수화, 쌍별 유사도 계산.
  • app/api/detect/scans/__tests__ — POST 저장(검증, 속도 제한, 멱등성, 정리) + GET 목록 + DELETE 단일.
  • app/api/integration/keys/__tests__ — 모드 게이팅을 포함한 생성 / 폐기 / 목록 (API 키 세션은 다른 API 키를 발급할 수 없음).
  • app/api/auth/__tests__ — apiKey-login 라우트 (CSRF, 형식 검사, 폐기 / 만료 처리, 마지막 사용 시각 갱신).

Lint + 타입 검사:

root@kitploit:~
yarn lint
npx tsc --noEmit

배포

포함된 Dockerfile은 node:22-alpine에서 Next.js standalone 이미지를 생성합니다. 프로덕션 환경 변수는 Kubernetes Secret을 통해 주입됩니다 — 플레이스홀더 값이 빌드 시점에 포함되므로 런타임에 SKIP_ENV_VALIDATION이 필요 없습니다. prisma db push Job이 롤아웃 전에 스키마를 실행합니다. 전체 이미지 빌드 → 마이그레이션 → 롤아웃 파이프라인은 .github/workflows/deploy-tke.yml을 참조하세요.

요금 및 구독

이 오픈소스 빌드에는 페이월이 없습니다. 저장은 오직 lib/server/rate-limit.ts의 프로세스 내 사용자별 속도 제한기(시간당 10회 저장)에 의해서만 제어되며, 기록 보존에는 제한이 없습니다.

감사의 말

  • Verdent — 이 프로젝트를 처음부터 끝까지 구축하는 데 사용된 에이전트형 코딩 어시스턴트.
  • NextAuth — 인증 기반 레이어.
  • Prisma — 스키마, 마이그레이션, 생성된 클라이언트.
  • shadcn/ui + Radix UI — 이 UI가 기반으로 하는 접근성 있는 프리미티브.
  • Tailwind CSS — 스타일링 시스템.
  • ipinfo.io — 네트워크 프로브가 사용하는 무료 ASN / VPN 데이터.
  • Mailgun — 프로덕션에서 매직 링크 이메일 전송.

라이선스

LICENSE를 참조하세요.

도구 다운로드
ID모듈검사 내용
network-probe네트워크 이그레스 프로브서버가 관측한 공인 IP, ASN, 국가/지역/도시, VPN/프록시/Tor/호스팅 플래그, TLS/HTTP
webrtcWebRTCSTUN을 통한 공인 IPv4 + IPv6, RFC1918 유출, mDNS로 난독화된 .local 후보
browser-fingerprint브라우저 핑거프린트UA, 화면, 시간대, 플러그인, CPU 코어, 기기 메모리, 언어 목록, DNT, 쿠키
canvas-fingerprintCanvas / WebGL2D + WebGL 렌더러/벤더 문자열, 텍스트 렌더링 특이점, 지원 이미지 형식
audio-fingerprint오디오AudioContext 샘플레이트, 채널, 지연 시간, 오실레이터 출력 해시
font-detection글꼴Canvas 너비 차이 감지를 통한 40개 이상의 명명된 글꼴 프로브
dnsDNSDoH 연결 가능성, DNSSEC 신호, 리졸버 지리 정보, DNS 유출 휴리스틱
cdp-detection자동화 / 헤드리스navigator.webdriver, CDP 타이밍, Chromium 전용 API 표면, 포트 프로브 — 신뢰도 0–1
Messages
  • 멱등 저장 + 사용자별 정리 — POST /api/detect/scans는 Idempotency-Key 헤더를 허용하고, 사용자당 200개 스캔으로 제한하며, 저장을 시간당 10회로 속도 제한합니다.
  • 프로덕션 등급 Docker 이미지 — node:22-alpine 기반 멀티스테이지 빌드, Next.js standalone 출력, .github/workflows/ 아래 워크플로를 통해 Kubernetes에 배포.
  • 경로용도
    /마케팅 랜딩 (오로라 히어로, 기능 카드, FAQ, CTA)
    /app탐지기 — 모듈 목록 + 결과 패널 + 개요
    /login독립형 로그인 페이지 (Google / 이메일 / API 키)
    /scans로그인한 사용자의 저장된 스캔 기록
    /scans/[id]단일 저장 스캔 상세
    /scans/analytics분포 / 반복 / 타임라인 / 이상치 / 비교
    /integrationsdet_… API 키 관리 (생성 / 폐기 / 사용 방법)
  • 그런 다음 스캔은 /scans/[id]에서 볼 수 있으며, 분석 집계에 기여하고 고유성 조회에 반영됩니다.
  • 계층구성 요소
    프레임워크Next.js 14 (App Router, 전역 force-dynamic), React 18
    언어TypeScript 5, 엄격 모드
    UITailwind CSS 3, Radix 기반 shadcn/ui 프리미티브, Lucide 아이콘, Framer Motion
    인증NextAuth 4 (Google OAuth + 매직 링크 이메일) + Prisma 어댑터
    데이터Prisma 6 → MySQL (.prisma/detect-client의 사용자 지정 클라이언트 출력)
    검증Zod
    테스트Jest 29 + ts-jest + jsdom
    빌드 / 배포멀티스테이지 Dockerfile, Next.js standalone, Kubernetes 매니페스트