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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
authcov — 웹 애플리케이션 권한 부여 범위 스캐닝 | Kitploit
도구/GitHubGitHub/authcov/authcov
Authentication & AuthorizationVulnerability ScannersAPI Security TestingWeb SecurityPenetration TestingCrawlerArchived
GitHubauthcov/authcov

authcov

웹 애플리케이션 권한 부여 범위 스캐닝

저장소 보기
234273년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

AuthCov

npm version

웹 애플리케이션 권한 부여 범위 스캐닝.

소개

AuthCov는 미리 정의된 사용자로 로그인한 상태에서 Chrome 헤드리스 브라우저를 사용하여 웹 애플리케이션을 크롤링합니다. 크롤링 단계에서 로드된 페이지뿐만 아니라 API 요청을 가로채서 기록합니다. 다음 단계에서는 다른 사용자 계정(침입자)으로 로그인하여 이전에 발견된 각 API 요청이나 페이지에 접근을 시도합니다. 정의된 각 침입자 사용자에 대해 이 단계를 반복합니다. 마지막으로 발견된 리소스와 침입자 사용자가 해당 리소스에 접근할 수 있는지 여부를 나열하는 상세 보고서를 생성합니다.

로컬 Wordpress 인스턴스를 스캔하여 생성된 예제 보고서:

기능

  • 단일 페이지 애플리케이션(SPA) 및 전통적인 다중 페이지 애플리케이션(MPA)에서 작동
  • 토큰 기반 및 쿠키 기반 인증 메커니즘 처리
  • HTML 형식의 심층 보고서 생성
  • 크롤링된 각 페이지의 스크린샷을 보고서에서 볼 수 있음

설치

최신 Node 버전을 설치하세요. 그런 다음 실행:

root@kitploit:~
$ npm install -g authcov

사용법

  1. 스캔하려는 사이트에 대한 설정 파일을 생성합니다 [참고: 확장자가 .mjs로 끝나야 합니다]:
root@kitploit:~
$ authcov new myconfig.mjs
  1. myconfig.mjs의 값을 업데이트하세요.
  2. 다음 명령을 실행하여 브라우저가 성공적으로 로그인하는지 설정 값을 테스트하세요.
root@kitploit:~
$ authcov test-login myconfig.mjs --headless=false
  1. 사이트를 크롤링하세요:
root@kitploit:~
$ authcov crawl myconfig.mjs
  1. 크롤링 단계에서 발견된 리소스에 대해 침입을 시도하세요:
root@kitploit:~
$ authcov intrude myconfig.mjs
  1. 생성된 보고서를 ./tmp/report/index.html에서 확인하세요.

설정

설정 파일에서 다음 옵션을 설정할 수 있습니다:

로그인 구성

설정 파일에서 로그인을 구성하는 두 가지 방법이 있습니다:

  1. Puppeteer를 사용하여 지정된 입력 필드에 사용자 이름과 비밀번호를 입력하고 지정된 제출 버튼을 클릭하는 기본 로그인 메커니즘을 사용합니다. 설정 파일에서 loginConfig 옵션을 다음과 같이 설정하여 구성할 수 있습니다. 이 예제도 참조하세요.
root@kitploit:~
"loginConfig": {
  "url": "http://localhost/login",
  "usernameXpath": "input[name=email]",
  "passwordXpath": "input[name=password]",
  "submitXpath": "#login-button"
}
  1. 로그인 폼이 더 복잡하고 더 많은 사용자 상호작용을 포함하는 경우 설정 파일에서 자체 Puppeteer 함수를 다음과 같이 정의할 수 있습니다. 이 예제도 참조하세요.
root@kitploit:~
  "loginFunction": async function(page, username, password){
    await page.goto('http://localhost:3001/users/sign_in');
    await page.waitForSelector('input[type=email]');
    await page.waitForSelector('input[type=password]');

    await page.type('input[type=email]', username);
    await page.type('input[type=password]', password);

    await page.tap('input[type=submit]');
    await page.waitFor(500);

    return;
  }

브라우저가 성공적으로 로그인하는지 확인하려면 헤드풀 모드에서 authcov test-login 명령을 실행하는 것을 잊지 마세요.

기여

저장소를 클론하고 npm install을 실행하세요. Node 버전 17.1.0을 사용하는 것이 좋습니다.

단위 테스트

단위 테스트:

root@kitploit:~
$ npm test test/unit

종단간 테스트:

먼저 예제 앱을 다운로드하여 실행하세요. 그런 다음 테스트를 실행합니다:

root@kitploit:~
$ npm test test/e2e
도구 다운로드
옵션유형설명
baseUrlstring사이트의 기본 URL입니다. 크롤러가 여기서부터 시작합니다.
crawlUserobject사이트를 크롤링할 사용자입니다. 예: {"username": "admin", "password": "1234"}
intrudersarray크롤링 단계에서 발견된 API 엔드포인트와 페이지에 침입할 사용자들입니다. 일반적으로 crawlUser와 동일하거나 낮은 권한을 가진 사용자입니다. 로그인하지 않은 사용자로 침입하려면 사용자 이름이 "Public"이고 암호가 null인 사용자를 추가하세요. 예: [{"username": "john", "password": "4321"}, {"username": "Public", "password": null}]
typestring단일 페이지 애플리케이션(즉, API 백엔드를 쿼리하는 자바스크립트 프론트엔드)인지 아니면 보다 '전통적인' 다중 페이지 애플리케이션인지 여부입니다. ("mpa" 또는 "spa" 선택).
authenticationTypestring사이트가 브라우저에서 보낸 쿠키를 사용하여 사용자를 인증합니까, 아니면 요청 헤더에 전송된 토큰을 사용합니까? MPA의 경우 거의 항상 "cookie"로 설정됩니다. SPA의 경우 "cookie" 또는 "token" 중 하나일 수 있습니다.
authorisationHeadersarray사용자를 인증하기 위해 전송해야 하는 요청 헤더는 무엇입니까? authenticationType=cookie인 경우 ["cookie"]로 설정해야 합니다. authenticationType=token인 경우 ["X-Auth-Token"]과 같은 형태입니다.
maxDepthinteger사이트를 크롤링할 최대 깊이입니다. 1부터 시작하여 더 높은 깊이로 크롤링을 시도하여 크롤러가 충분히 빠르게 완료할 수 있는지 확인하는 것이 좋습니다.
verboseOutputboolean상세 수준으로 로깅하며 디버깅에 유용합니다.
saveResponsesbooleanAPI 엔드포인트의 응답 본문을 저장하여 보고서에서 볼 수 있습니다.
saveScreenshotsboolean크롤링된 페이지의 브라우저 스크린샷을 저장하여 보고서에서 볼 수 있습니다.
clickButtonsboolean(실험적 기능) 크롤링된 각 페이지에서 해당 페이지의 모든 버튼을 클릭하고 발생한 API 요청을 기록합니다. 모달, 팝업 등을 통해 많은 사용자 상호작용이 있는 사이트에서 유용할 수 있습니다.
xhrTimeoutinteger각 페이지를 크롤링하는 동안 XHR 요청이 완료될 때까지 대기할 시간(초)입니다.
pageTimeoutinteger크롤링하는 동안 페이지 로드를 기다릴 시간(초)입니다.
headlessboolean크롤러가 Chrome 브라우저를 열어 크롤링이 실시간으로 진행되는 것을 볼 수 있도록 false로 설정하세요.
unAuthorizedStatusCodesarray요청하는 사용자에 대해 API 엔드포인트 또는 페이지가 권한이 있는지 여부를 결정하는 HTTP 응답 상태 코드입니다. 선택적으로 responseIsAuthorised 함수를 정의하여 요청이 승인되었는지 확인할 수 있습니다. 예: [401, 403, 404]
ignoreLinksIncludingarray이 배열의 문자열을 포함하는 URL은 크롤링하지 마십시오. 예를 들어 ["/logout"]으로 설정하면 http://localhost:3000/logout URL이 크롤링되지 않습니다. 선택적으로 아래에 ignoreLink(url) 함수를 정의하여 URL을 크롤링할지 여부를 결정할 수 있습니다.
ignoreAPIrequestsIncludingarray이 배열의 문자열을 포함하는 URL에 대한 API 요청을 기록하지 마십시오. 선택적으로 ignoreApiRequest(url) 함수를 정의하여 요청을 기록할지 여부를 결정할 수 있습니다.
ignoreButtonsIncludingarrayclickButtons가 true로 설정된 경우, 외부 HTML에 이 배열의 문자열을 포함하는 버튼은 클릭하지 마십시오. 선택적으로 아래에 ignoreButton(url) 함수를 정의하십시오.
loginConfigobject브라우저가 웹 앱에 로그인하는 방법을 구성합니다. 선택적으로 비동기 함수 loginFunction(page, username, password)을 정의하십시오. (자세한 내용은 아래 참조).
cookiesTriggeringPagestring(선택 사항) authenticationType=cookie인 경우, 침입자가 이 페이지를 탐색한 다음 브라우저에서 쿠키를 캡처하도록 페이지를 설정합니다. 사이트가 쿠키의 경로 필드를 설정하는 경우 유용할 수 있습니다. 기본값은 options.baseUrl입니다.
tokenTriggeringPagestring(선택 사항) authenticationType=token인 경우, 침입자가 이 페이지를 탐색한 다음 가로챈 API 요청에서 authorisationHeaders를 캡처하도록 페이지를 설정합니다. 사이트의 baseUrl이 API 요청을 수행하지 않아 해당 페이지에서 인증 헤더를 캡처할 수 없는 경우 유용할 수 있습니다. 기본값은 options.baseUrl입니다.