
Vulners 데이터베이스에서 공개 익스플로잇을 검색하고 다운로드하세요 — 온라인, 또는 로컬 SQLite FTS5 인덱스에서 완전히 오프라인으로.
Vulners 데이터베이스에서 공개 익스플로잇을 검색하고 다운로드하세요 — 온라인으로, 또는 로컬 인덱스에서 완전히 오프라인으로.
API 키 받기 · Vulners 검색 · 변경 로그 · 아키텍처 · 보안 정책

--update로 전체 익스플로잇 말뭉치의
로컬 SQLite FTS5 인덱스를 구축하며, 이후의 모든 검색은 로컬 쿼리입니다.wordpress 4.7, CVE-2024-3094, ms17-010은
문자 그대로 매칭되고, 의도적인 전문(full-text) 표현식은 완전한 FTS5 구문을 그대로 사용합니다.--mirror는 각 익스플로잇 본문을 개별 파일로 저장합니다.Getsploit은 Python 3.11 이상이 필요합니다.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
Vulners 계정에서 키를 생성한 다음, 환경 변수로 노출하세요:
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
getsploit --set-key는 숨겨진 확인 프롬프트를 통해 키를 입력받아 Getsploit 홈 디렉터리 아래의 개인 파일에 저장합니다. 환경 변수는 해당 파일보다 우선하며, 자동화에는 환경 변수가 더 나은 선택입니다. --api-key 옵션은 없습니다. 명령줄에 전달된 키는 셸 히스토리와 프로세스 목록에 남게 되기 때문입니다.
온라인 검색과 --update에는 키가 필요합니다. --local과 --status에는 필요하지 않습니다.
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
쿼리는 변경 없이 Vulners에 전달되므로 Lucene 구문이 문서화된 대로 동작합니다:
$ getsploit 'title:wordpress AND description:"code execution"'
100을 초과하는 --count는 투명하게 페이지네이션됩니다. 단일 API 응답이 100개 이상의 문서를 담는 일은 없습니다.
$ getsploit --update # download the archive and build the FTS5 index
$ getsploit --status # where it is, how big, how many documents
$ getsploit --local wordpress 4.7
일반 검색어는 문자 그대로 매칭되므로 식별자와 버전 번호가 입력한 그대로 동작합니다: wordpress 4.7, CVE-2024-3094, ms17-010. 열 필터, 불리언 연산자, 따옴표, 괄호, * 또는 ^를 사용하는 쿼리는 SQLite FTS5 표현식으로 처리되며, 형식이 잘못된 경우 자체 오류를 보고합니다:
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
검색 가능한 열은 id, title, published, description, source_data입니다. 이전 버전의 sourceData: 표기법도 여전히 허용됩니다.
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
파일은 쿼리에서 파생된 디렉터리에 익스플로잇당 하나의 파일로 저장되며, 심볼릭 링크를 따르지 않고 생성되고, 기존에 존재하는 파일을 절대 덮어쓰지 않습니다.
[!WARNING] 미러링된 파일은 신뢰할 수 없는 타사 코드입니다. 실행하기 전에 반드시 읽어보세요.
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # redirected output is tab-separated
--json은 --format json의 별칭으로 계속 제공됩니다.
$ getsploit --color always query | less -R
$ getsploit --color never query
색상은 기본적으로 auto입니다. 넓은 터미널에는 테이블이, 좁은 터미널에는 세로로 쌓인 레코드가, 리다이렉트된 스트림에는 탭으로 구분된 값이 표시됩니다. 세 경우 모두 동일한 데이터입니다.
전체 옵션 목록은 getsploit --help를 실행하세요.
업데이트는 8개의 병렬 범위 연결로 아카이브를 다운로드하고, 대상 위치 옆에서 압축을 풀고 변환한 다음 검증한 후에야 커밋합니다. 메모리 사용량은 아카이브 크기와 무관합니다. 이전 데이터베이스를 대상으로 이미 실행 중인 검색은 방해받지 않고 해당 데이터베이스에서 계속 완료됩니다.
Getsploit 2.x로 구축된 데이터베이스도 계속 검색할 수 있으며, 다음 --update에서 FTS4에서 FTS5로 마이그레이션됩니다. one NEAR/5 two와 같은 FTS4 근접(proximity) 표현식은 FTS5의 NEAR(...) 형식으로 다시 작성해야 합니다.
| Python | 3.11, 3.12, 3.13, 3.14 |
| 운영 체제 | Linux, macOS, Windows |
| Vulners SDK | 4.1 이상 4.x |
| 런타임 의존성 | click, , |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
CONTRIBUTING.md에 기여 규칙이, ARCHITECTURE.md에 모듈 경계와 데이터베이스 불변식(invariants)이 설명되어 있습니다.
릴리스는 푸시된 v<version> 태그입니다. 이후 릴리스 워크플로우가 태그된 커밋에서 전체 게이트를 다시 실행하고, 신뢰된 게시(trusted publishing)를 통해 PyPI에 게시하며, 변경 로그를 기반으로 GitHub 릴리스를 작성합니다. 유출될 PyPI 토큰은 존재하지 않습니다.
익스플로잇 소스 파일은 신뢰할 수 없는 콘텐츠입니다. 열거나 실행하기 전에 검토하세요. Getsploit 자체는 다운로드한 내용을 절대 실행하지 않습니다.
릴리스는 GitHub Actions에서 PyPI 신뢰된 게시를 통해 게시되므로 유출될 장기 API 토큰이 존재하지 않으며, 모든 아티팩트에는 빌드 출처(provenance) 증명이 포함됩니다. Getsploit의 취약점을 보고하려면 SECURITY.md를 따르세요.
MIT © Vulners 팀 및 기여자.
| 위치 |
~/.getsploit/getsploit.db, 또는 $GETSPLOIT_HOME |
| 형식 | 외부 콘텐츠 FTS5 인덱스를 사용하는 SQLite |
| 토크나이저 | unicode61 remove_diacritics 2 |
| 크기 | 전체 말뭉치 기준 약 1.7 GB |
| 업데이트 | 원자적: 새 데이터베이스가 단일 작업으로 이전 데이터베이스를 교체 |
richvulners| 명령 | 용도 |
|---|
make format | 소스 파일 포맷 및 자동 수정 |
make lint | 포맷, 린트, 타입 검사 |
make test | 테스트를 병렬로 실행 |
make coverage | 100% 문장 및 브랜치 커버리지 강제 |
make leaks | 추적 중인 파일에서 비밀정보 스캔 |
make build | 휠(wheel) 및 소스 배포판 빌드 |
make release | 모든 게이트 실행 및 두 배포판 검증 |
make check | 병합을 허용하는 위의 모든 항목 실행 |