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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
web3-decoder — Web3 JSON-RPC 트래픽을 디코딩하기 위한 Burp Suite 확장 프로그램으로, 스마트 계약 함수 호출, 응답, ABI 해석을 포함하며 프록시 계약 인식 및 멀티콜(multicall) 지원을 제공합니다. | Kitploit
도구/GitHubGitHub/nccgroup/web3-decoder
Vulnerability AnalysisReverse EngineeringInformation GatheringWeb SecurityPenetration TestingAPI Security
GitHubnccgroup/web3-decoder

web3-decoder

Web3 JSON-RPC 트래픽을 디코딩하기 위한 Burp Suite 확장 프로그램으로, 스마트 계약 함수 호출, 응답, ABI 해석을 포함하며 프록시 계약 인식 및 멀티콜(multicall) 지원을 제공합니다.

저장소 보기
115182개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Web3 Decoder

Web3 Decoder는 web3 스마트 계약과 관련된 작업에서 어떤 일이 일어나고 있는지 분석하는 데 도움을 주는 Burp Suite 확장 프로그램입니다. 주로 이더리움 노드 및 기타 호환 네트워크(Polygon, Arbitrum, BSC 등)의 노드에 대한 JSON-RPC 호출을 분석합니다.

다운로드 및 설치

최신 확장 프로그램 JAR를 다운로드하세요 — 이 링크는 항상 최신 릴리스를 제공합니다:

⬇ web3-decoder.jar (최신)

이전 버전은 릴리스 페이지에서 확인할 수 있습니다.

그런 다음 Burp Suite에서 로드하세요:

  1. Extensions → Installed → Add로 이동합니다.
  2. Extension type을 Java로 설정하고 다운로드한 web3-decoder.jar를 선택합니다.
  3. Next를 클릭합니다 — 로드되면 Web3 탭과 Web3 Request/Web3 Response 편집기 탭이 나타납니다.

JRE 21이 포함된 Burp 릴리스(현재 Burp Suite 버전)가 필요합니다. JAR는 자체 포함형입니다 — 모든 종속성(web3j 등)이 포함되어 있습니다.

소스에서 빌드하기

root@kitploit:~
./gradlew jar

확장 프로그램 JAR는 버전과 관계없이 항상 고정 경로(web3-decoder/build/libs/web3-decoder.jar)에 기록되므로 Burp에서 한 번만 지정하면 재빌드 시 자동으로 다시 로드할 수 있습니다. 릴리스 방법은 docs/RELEASING.md에 문서화되어 있습니다.

스크린샷

JSON-RPC 요청 및 응답을 성공적으로 디코딩한 후 개선된 Web3 편집기 탭의 모습은 다음과 같습니다:

Web3 decoded requests and responses

아래는 모든 설정, 감지된 ABI 등이 포함된 재설계된 Web3 탭입니다! (Claude Design 감사합니다!)

Web3 Tab

문서

자세한 문서는 docs/ 폴더에 있습니다:

  • Architecture — 레이어, 구성 요소 및 핵심 디코드/인코드 흐름(다이어그램 포함).
  • Project Structure — 디렉터리 구조 및 패키지별 역할.
  • Tech Stack — 종속성, 빌드/패키징, 런타임 및 CLI 모드.
  • Features — 구현 포인터가 포함된 전체 기능 목록.

블록 탐색기 API 키

etherscan.io와 같이 지원되는 대부분의 블록 탐색기는 5초에 1회 이상의 요청을 허용하려면 API 키가 필요합니다.

새 인터페이스에서는 체인, 블록 탐색기 및 API 키를 관리할 수 있습니다.

계약 ABI 수동 추가

확장 프로그램은 etherscan과 같은 블록 탐색기에서 다운로드한 ABI를 캐시합니다. Web3 탭에서 직접 추가하거나, 블록 탐색기에서 자동으로 가져오거나, 수동으로 추가할 수도 있습니다.

구현된 기능

  • Burp 통합
    • JSON-RPC 요청용 Web3 Request 편집기 탭(eth_call / eth_sendRawTransaction이 없는 트래픽에서는 숨겨짐).
    • 일치하는 JSON-RPC 응답용 Web3 Response 편집기 탭.
    • 체인/ABI/calldata 도구가 포함된 전용 Web3 스위트 탭.
    • 메모에 디코딩된 함수 시그니처가 주석으로 표시된 프록시 기록 행(별도 스레드에서 디코딩, 라이브 기록 행에 유지).
  • 디코딩된 편집기 환경
    • 두 편집기 탭 모두 기본적으로 구조화된 트리 뷰를 제공하며, JSON 뷰는 토글 하나로 전환할 수 있습니다 — JSON은 재인코딩의 기준으로 유지됩니다.
    • JSON 뷰는 구문 + 의미론적 하이라이팅, 줄 번호, 괄호 짝 맞추기, 실시간 유효성 검사 및 검색 바를 유지합니다.
  • JSON-RPC 요청 디코딩
    • eth_call calldata를 function + 타입이 지정된 args로 디코딩합니다.
    • 단일 요청 및 배치 JSON-RPC 페이로드를 지원합니다.
    • 배치 페이로드의 경우 각 항목은 상태(decoded, skipped, error)와 함께 보고되며, 건너뛰거나 실패한 경우 이유도 보고됩니다.
  • JSON-RPC 응답 디코딩
    • 이전에 디코딩된 eth_call 요청에 대한 를 디코딩합니다.

현재 지원되는 체인

번들된 체인의 전체 현재 목록은 web3-decoder/src/main/resources/chains.json에 있습니다 — 이 확장 프로그램은 이제 Etherscan v2 멀티체인 세트(Ethereum, Sepolia, BNB Smart Chain, Polygon, Base, Arbitrum, Linea, Blast, Optimism, Avalanche, Gnosis, Scroll, Taiko, Berachain 및 테스트넷을 포함한 더 많은 체인)를 제공합니다. 인터페이스에서 런타임에 자체 체인을 추가할 수도 있습니다 — 블록 탐색기가 Etherscan 스타일 API를 노출하는 모든 체인이 작동합니다. 체인 관리 세부 정보(더 이상 사용되지 않는 체인 ID 마이그레이션 포함)는 Features를 참조하세요.

작동 방식

사용 중인 노드에 eth_chainId JSON-RPC 요청을 보내 현재 작업 중인 체인을 감지하고, 체인에 따라 chains.json 파일을 검색하여 블록 탐색기 API를 선택합니다.

함수 호출을 디코딩하려면 계약의 ABI(Application Binary Interface)가 필요합니다. ABI에는 계약에서 호출할 수 있는 모든 함수와 해당 입력 및 출력이 포함됩니다. 확장 프로그램은 다음 순서로 ABI를 해석합니다:

  1. 캐시된 ABI — 체인 + 계약 주소용(Burp 프로젝트 범위 영속성).
  2. 내장 ABI — 잘 알려진 계약(예: Multicall3)용.
  3. 블록 탐색기 조회(Etherscan 스타일 API) — 검증된 계약용.
  4. 감지된 ABI 풀 — 수동 스캐너가 dapp 프론트엔드 번들에서 추출한 ABI로, 4바이트 함수 선택자로 인덱싱됩니다. 체인에 구애받지 않습니다.
  5. 4byte 폴백 — api.4byte.sourcify.dev에 대한 선택자 → 시그니처 조회로, 일치하는 후보에서 합성 ABI가 빌드됩니다.

체인 ID를 확인할 수 없는 경우(예: 엔드포인트가 eth_chainId에 응답하지 않음) 체인 범위 단계(1~3)는 건너뛰고 디코더는 여전히 체인에 구애받지 않는 단계(4 및 5)를 시도합니다.

외부 서비스 및 데이터 소스

트래픽을 디코딩하기 위해 확장 프로그램은 몇 가지 외부 소스와 통신합니다. 이러한 소스는 선택 사항이며 Web3 탭에서 비활성화할 수 있습니다. 모든 아웃바운드 요청은 Burp 자체 HTTP 스택(api.http().sendRequest)을 통해 전송되므로 Burp의 업스트림 프록시/TLS 설정을 따르며 Burp의 트래픽에 표시됩니다.

개인정보 보호 참고: ABI 조회는 계약 주소를 구성된 블록 탐색기로 전송하고, 4byte 폴백은 함수 선택자를 api.4byte.sourcify.dev로 전송합니다. 다운로드된 ABI는 로컬에 캐시되므로 반복 디코딩 시 다시 쿼리하지 않습니다. 대부분의 탐색기(예: etherscan.io)는 약 1회 / 5초 이상의 요청에 API 키가 필요합니다 — Web3 탭에서 키를 관리하세요.

수동 ABI 감지기는 Burp가 이미 캡처한 HTTP 응답 본문을 읽고 완전히 로컬에서 실행됩니다 — 감지 자체로는 트래픽이 생성되지 않습니다.

도구 다운로드
result
  • 단일 및 배치 응답을 지원하며, JSON-RPC id(또는 인덱스 폴백)로 항목을 일치시킵니다.
  • 재인코딩 및 편집 워크플로
    • 요청 편집기에서 디코딩된 인수를 편집하고 인코딩된 calldata로 다시 기록할 수 있습니다.
    • 독립형 calldata 도구는 요청 기록 외부에서 디코딩 및 재인코딩할 수 있습니다.
  • ABI 해석 및 캐싱
    • ABI 조회 우선순위: 캐시된 ABI → 내장 → 블록 탐색기(Etherscan 호환) → 수동 감지 풀 → 4byte.
    • 다운로드된 ABI는 향후 디코딩을 위해 자동으로 캐시됩니다.
    • 디코딩된 출력에서 ABI 출처(cache, builtin, etherscan, detected 또는 4byte)가 추적됩니다.
  • 수동 ABI 감지 (신규)
    • Burp PassiveScanCheck가 HTTP 응답 본문(일반적으로 축소된 dapp JS 번들)에서 Solidity ABI를 스캔하고 발견한 모든 것을 함수 선택자별로 인덱싱된 프로젝트 범위 풀에 저장합니다.
    • 축소된 번들에서 발견되는 엄격한 JSON과 JS 객체 리터럴 형식을 모두 처리하며, Terser/esbuild/Svelte가 생성하는 !0 / !1 불리언 단축 표현도 포함합니다.
    • 기존 cache → builtin → etherscan 체인이 실패하면 디코더는 4byte로 폴백하기 전에 감지된 풀을 참조합니다. 디코딩된 출력은 decodeSource: "detected"로 태그됩니다.
    • eth_chainId를 확인할 수 없는 경우에도 작동합니다: 감지된 풀과 4byte는 체인에 구애받지 않으므로 디코더는 완전히 거부하지 않고 계속 시도합니다.
    • 각 새 ABI는 전체 메서드 목록(정식 시그니처와 4바이트 선택자를 포함한 모든 함수/이벤트/오류)과 ABI가 발견된 URL과 함께 정보성 Burp 이슈("Solidity contract ABI detected")를 발생시킵니다.
  • 4byte 폴백 디코딩
    • ABI 조회가 실패하면 api.4byte.sourcify.dev에 대해 함수 선택자 조회가 수행됩니다.
    • 후보 시그니처에서 합성 ABI 정의가 생성되어 디코드/재인코드 흐름에 사용됩니다.
  • 프록시 인식 디코딩
    • 델리게이트 프록시 패턴의 구현 계약을 감지하고 구현 ABI를 기준으로 디코딩합니다.
    • 구현된 프록시 감지기: ERC1967 슬롯 및 레거시 ZeppelinOS/OpenZeppelin 슬롯.
  • Multicall 재귀 디코딩
    • 일반적인 Multicall 변형(aggregate, tryAggregate, aggregate3, aggregate3Value, blockAndAggregate, tryBlockAndAggregate)의 중첩 호출을 디코딩합니다.
    • 깊이 제한과 노드별 상태로 중첩 호출을 재귀적으로 디코딩합니다.
  • 체인 및 탐색기 관리 UI
    • 체인 정의 추가/편집/제거(체인 ID, 이름, 탐색기).
    • 체인별 탐색기 API 키 관리.
    • 체인별 재정의가 가능한 공유 Etherscan 계열 API 키 지원.
    • chains.json에서 기본 체인을 로드하고 Burp 기본 설정에 사용자 지정을 유지합니다.
    • (유지된 구성에 대해) 더 이상 사용되지 않는 체인 ID를 최신 대체 체인으로 마이그레이션하는 기능이 포함됩니다.
  • 캐시된 ABI 관리 UI
    • 캐시된 ABI 수동 추가(JSON 붙여넣기) 또는 구성된 탐색기에서 가져오기.
    • 캐시된 ABI 항목 제거.
    • 편집기에서 캐시된 ABI 열기, JSON 검증 및 업데이트 저장.
  • 감지된 ABI 브라우저 UI (신규)
    • Web3 탭 아래의 나란한 패널로 수동 스캐너가 축적한 모든 ABI를 나열합니다.
    • 각 행에는 짧은 지문, 함수 수 및 ABI가 처음 발견된 URL이 표시됩니다.
    • 행을 클릭하면 ABI 편집기에서 ABI JSON을 읽기 전용으로 볼 수 있습니다. 원치 않는 항목은 풀에서 제거할 수 있습니다.
  • Calldata 디코드 / 재인코드 패널
    • 체인 ID + 계약 주소 컨텍스트를 사용하여 calldata를 디코딩합니다.
    • 독립형 도구에서 프록시 인식 디코딩을 위한 선택적 RPC URL 지원.
    • 해당되는 경우 중첩 multicall 디코딩 세부 정보를 표시합니다.
  • eth_sendRawTransaction JSON-RPC 호출(및 내부 함수) 디코딩
  • 서비스엔드포인트용도
    JSON-RPC 노드(트래픽에 이미 있는 엔드포인트)프록시된 RPC URL활성 체인 감지를 위한 eth_chainId, 프록시 구현 슬롯(ERC-1967 / 레거시 ZeppelinOS) 읽기를 위한 eth_getStorageAt.
    Etherscan (v2 멀티체인)https://api.etherscan.io/v2/api?chainid=…검증된 계약 ABI 가져오기. v2가 해당 체인을 지원하지 않는 경우 체인의 레거시 탐색기 호스트(/api)로 폴백.
    4byte 시그니처 데이터베이스https://api.4byte.sourcify.devABI를 사용할 수 없을 때 알 수 없는 4바이트 함수 선택자를 후보 시그니처로 해석(그런 다음 일치 항목에서 합성 ABI를 빌드).