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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
openapi_security_scanner — OpenAPI 기반 API를 위한 자동화된 인증 보안 스캐너. 다중 자격 증명 세트를 사용하여 GET 엔드포인트를 테스트하고 차등 응답 분석을 통해 권한 상승 및 손상된 접근 제어 버그를 탐지합니다. | Kitploit
도구/GitHubGitHub/ngalongc/openapi_security_scanner
Vulnerability ScannersAPI Security TestingWeb SecurityPenetration Testing
GitHubngalongc/openapi_security_scanner

openapi_security_scanner

OpenAPI 기반 API를 위한 자동화된 인증 보안 스캐너. 다중 자격 증명 세트를 사용하여 GET 엔드포인트를 테스트하고 차등 응답 분석을 통해 권한 상승 및 손상된 접근 제어 버그를 탐지합니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
173375년 전Kitploit 검토 완료

OpenAPI 보안 스캐너

프로젝트 소개

최신 웹 애플리케이션의 인가 보안 문제는 보안 스캐너로 쉽게 탐지되지 않습니다. Shopify, LINE, NordVPN의 몇 가지 예시가 있습니다. 그 이유 중 하나는 보안 스캐너가 주로 SQLi, XSS, RCE를 찾고 인가 보안 버그는 찾지 않으며, 일반적으로 웹 애플리케이션이 어떻게 동작해야 하는지에 대한 지식이 부족하기 때문입니다. 그래서 대부분의 인가 버그는 현재 주로 수동으로 발견됩니다. OpenAPI Security Scanner는 자동화와 수동 검토 모두를 통해 인가 보안 문제를 발견하는 데 도움을 주기 위해 만들어졌습니다. 이는 외부 단위 테스트 도구처럼 작동하여 모든 것이 의도한 대로 동작하는지 확인합니다.

사용된 기술

  • Schemathesis

시작하기

이 비디오를 시청하거나 계속 읽어보세요.

이 프로젝트를 포크하거나 클론하고 아래 지침을 따라 시작하세요.

이 스캐너를 사용하는 워크플로는 다음과 같습니다:

  • 대상 API의 OpenAPI yaml 파일을 준비합니다.
  • API 테스트에 사용할 대상 엔드포인트와 변수를 정의합니다.
  • 다양한 사용자로부터 여러 자격 증명 세트를 생성하여 API 테스트 시 다양한 에지 케이스가 포함되도록 합니다.
  • 구성 후 러너를 시작하면 스캔 결과를 아티팩트에서 찾을 수 있습니다.
  • 러너를 정기적으로 실행하도록 예약하고 스캔 결과에 변화가 있을 때 알림을 받는 방식을 사용자 지정합니다.

장점

개발자의 경우, 이 도구를 사용하면 API가 내부 및 외부에서 예상대로 동작한다는 추가적인 확신을 얻을 수 있습니다. 또한 코드 배포 시마다 파이프라인을 트리거하여 스캐너를 실행할 수 있습니다.

버그 바운티 헌터의 경우, 이 도구를 사용하면 대상 API에 대한 최신 상태를 항상 유지할 수 있습니다. 특정 엔드포인트가 이전에는 취약하지 않았더라도 다양한 이유로 나중에 취약해질 수 있기 때문입니다. 따라서 이 도구를 사용하여 수동 버그 헌팅 부분을 자동화하는 것이 더 쉽습니다.

사용 전 경고

대상 API를 스캔할 권한이 있는지 확인하세요.

전제 조건

웹 애플리케이션의 OpenAPI yaml 파일이 필요하며, 이를 리포지토리의 api.yaml 내용과 교체하세요.

사용법

api.yaml의 내용을 대상의 OpenAPI yaml 파일로 교체하고, GitLab 프로젝트의 Settings -> CI/CD -> Variables 확장으로 이동하여 아래 형식으로 변수를 입력하세요.

OPENAPI_CREDS

여기에 제공된 자격 증명은 Authorization: Bearer 헤더 형식으로 API 호출에 전달됩니다. 적어도 두 개의 다른 권한을 가진 사용자 계정의 액세스 토큰을 준비하는 것이 좋으며, 각 사용자 계정에 대해 하나 이상의 액세스 토큰을 생성하여 다양한 범위의 액세스 토큰에 대한 올바른 동작을 테스트할 수 있습니다.

root@kitploit:~
{
   "<user_a>":[
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      },
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      }
   ],
   "<user_b>":[
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      }
   ]
}

OPENAPI_ENDPOINTS

여기에 제공된 엔드포인트는 GET 기반 API 호출이어야 하며, JSON 본문에 쿼리를 포함할 수도 있습니다. 아래 예시에서 엔드포인트는 /org/{orgs}/repos이고 쿼리는 type=all입니다. /repos/{owner}/{repo} 엔드포인트의 경우 쿼리가 없습니다.

root@kitploit:~
{
   "/orgs/{org}/repos":{
      "type":"all"
   },
   "/repos/{owner}/{repo}":{
      
   }
}

OPENAPI_PATHS

경로 변수는 여기에 제공할 수 있으며, 스캐너는 경로 변수의 값에서 모든 조합을 생성합니다.

root@kitploit:~
{
   "org":[
      "test-org"
   ],
   "owner":[
      "ngalongc",
      "reconless"
   ],
   "repo":[
      "public-repo",
      "private-repo"
   ]
}

이 경우 다음과 같은 조합의 API 호출이 생성되며, 이들은 OPENAPI_CREDS에 제공된 다양한 자격 증명 세트에 의해 모두 호출됩니다.

root@kitploit:~
/orgs/test-org/repos?type=all
/repos/ngalongc/public-repo
/repos/ngalongc/private-repo
/repos/reconless/public-repo
/repos/reconless/private-repo

PRIVATE_TOKEN

https://gitlab.com/-/profile/personal_access_tokens로 이동하여 api 액세스 토큰을 생성하고 여기 값을 교체하세요. 이 GitLab 액세스 토큰은 GitLab 러너에서 스캔 결과를 다운로드하는 데 사용됩니다.

root@kitploit:~
<YOU_GITLAB_API_ACCESS_TOKEN>

OPENAPI_BASE_URL

이 값은 API 서버의 기본 URL 값이어야 합니다.

root@kitploit:~
https://example.com/api/v3

데모: GitHub API에서 간단한 권한 테스트 실행

API 변경 감지 시 슬랙 알림 스크린샷

API 변경 감지 시 슬랙 알림 스크린샷

아티팩트 내 스캔 결과 스크린샷

아티팩트 내 스캔 결과 스크린샷

샘플 보고서: https://ngalog-gitlab.gitlab.io/-/openapi_security_scanner/-/jobs/966841401/artifacts/sample.html

제한 사항

  • GET 기반 엔드포인트만 테스트할 수 있습니다.
  • /users/{user_id}/activities와 같은 일부 API 엔드포인트는 호출할 때마다 응답이 달라지므로 이러한 유형의 API 변경을 감지하는 것은 의미가 없습니다.

기여하기

기여는 오픈 소스 커뮤니티를 배우고, 영감을 얻고, 창조하는 놀라운 장소로 만드는 요소입니다. 여러분의 모든 기여는 매우 감사히 여겨집니다.

  1. 프로젝트 포크
  2. 기능 브랜치 생성 (git checkout -b feature/AmazingFeature)
  3. 변경 사항 커밋 (git commit -m 'Add some AmazingFeature')
  4. 브랜치에 푸시 (git push origin feature/AmazingFeature)
  5. 머지 리퀘스트 열기

라이선스

MIT 라이선스에 따라 배포됩니다. 자세한 정보는 LICENSE를 참조하세요.

연락처

Ron Chan - @ngalongc

프로젝트 링크: https://gitlab.com/ngalog-gitlab/openapi_security_scanner

도구 다운로드