Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
skipfish — lcamtuf가 Google을 위해 만든 웹 애플리케이션 보안 스캐너 - 비공식 미러 | Kitploit
도구/GitHubGitHub/spinkham/skipfish
ReconnaissanceVulnerability ScannersWeb Vulnerability ScannersDynamic Analysis (Sandboxing)Web Application ExploitationInformation GatheringWeb SecurityFuzzingPenetration TestingCrawler
GitHub
8721666913년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
spinkham/skipfish

skipfish

lcamtuf가 Google을 위해 만든 웹 애플리케이션 보안 스캐너 - 비공식 미러

저장소 보기웹사이트

=========================================== skipfish - 웹 애플리케이션 보안 스캐너

http://code.google.com/p/skipfish/

  • 작성 및 유지 관리:

    Michal Zalewski [email protected] Niels Heinen [email protected] Sebastian Roschke [email protected]

  • 저작권 2009 - 2012 Google Inc, 모든 권리 보유.

  • Apache License, 버전 2.0의 조건에 따라 배포됨.


  1. skipfish란 무엇인가?

Skipfish는 능동적인 웹 애플리케이션 보안 정찰 도구입니다. 재귀적 크롤링과 사전 기반 프로브를 수행하여 대상 사이트의 대화형 사이트맵을 준비합니다. 그 결과 맵은 여러 능동적(되도록 비파괴적) 보안 점검의 출력으로 주석이 추가됩니다. 도구가 생성한 최종 보고서는 전문적인 웹 애플리케이션 보안 평가의 기초로 사용됩니다.


  1. 이 특정 도구에 왜 신경을 써야 할까?

유사한 기능을 가진 여러 상용 및 오픈 소스 도구를 쉽게 사용할 수 있습니다(예: Nikto, Nessus). 자신에게 가장 적합한 도구를 사용하세요. 그래도 skipfish는 웹 보안 스캐너와 관련된 일반적인 문제 중 일부를 해결하려고 합니다. 구체적인 장점은 다음과 같습니다.

  • 높은 성능: 반응이 빠른 인터넷 대상에 대해 초당 500+ 요청, LAN/MAN 네트워크에서 초당 2000+ 요청, 로컬 인스턴스에 대해 7000+ 요청이 관찰되었으며, CPU, 네트워크 및 메모리 사용량이 매우 적습니다. 이는 다음과 같은 점에 기인합니다.

    • 단일 스레드, 완전 비동기 네트워크 I/O 및 데이터 처리 모델을 멀티플렉싱하여 일부 멀티스레드 클라이언트에 존재하는 메모리 관리, 스케줄링 및 IPC 비효율성을 제거합니다.

    • 고급 HTTP/1.1 기능(범위 요청, 콘텐츠 압축, keep-alive 연결 등)과 강제 응답 크기 제한을 사용하여 네트워크 수준 오버헤드를 제어합니다.

    • 스마트 응답 캐싱과 고급 서버 동작 휴리스틱을 사용하여 불필요한 트래픽을 최소화합니다.

    • 성능 지향적인 순수 C 구현으로 사용자 정의 HTTP 스택을 포함합니다.

  • 사용 편의성: skipfish는 적응력이 뛰어나고 신뢰할 수 있습니다. 스캐너의 특징:

    • 모호한 경로 및 쿼리 기반 매개변수 처리 방식을 휴리스틱하게 인식합니다.

    • 특정 경로가 완전히 다른 의미 체계를 따르거나 다른 필터링 규칙의 적용을 받는 다중 프레임워크 사이트를 우아하게 처리합니다.

    • 사이트 콘텐츠 분석을 기반으로 자동 단어 목록을 구축합니다.

    • 확률적 스캔 기능을 통해 임의로 복잡한 사이트에 대해 주기적이고 시간 제한적인 평가를 할 수 있습니다.

    • 잘 설계된 보안 점검: 도구는 정확하고 의미 있는 결과를 제공합니다:

      • 수작업으로 제작된 사전은 우수한 커버리지를 제공하고 합리적인 시간 내에 철저한 $keyword.$extension 테스트를 허용합니다.

      • 취약점 탐지에는 서명 점검보다 3단계 차등 프로브가 선호됩니다.

      • Ratproxy 스타일 로직을 사용하여 미묘한 보안 문제를 발견합니다: 사이트 간 요청 위조, 사이트 간 스크립트 포함, 혼합 콘텐츠, MIME 및 문자 집합 불일치, 잘못된 캐싱 지시문 등.

      • 번들된 보안 점검은 까다로운 시나리오를 처리하도록 설계되었습니다: 저장된 XSS(경로, 매개변수, 헤더), 블라인드 SQL 또는 XML 인젝션, 블라인드 셸 인젝션.

      • Snort 스타일 콘텐츠 서명으로 서버 오류, 정보 유출 또는 잠재적으로 위험한 웹 애플리케이션을 강조합니다.

      • 보고서 후처리는 반복 패턴을 식별하여 남은 오탐지 또는 서버 속임수로 인한 잡음을 크게 줄입니다.

그러나 skipfish는 만능 도구가 아니며 특정 목적에 부적합할 수 있습니다. 예를 들어, WASC 웹 애플리케이션 보안 스캐너 평가 기준에 명시된 대부분의 요구 사항을 충족하지 않습니다(일부는 의도적으로, 일부는 필요에 따라). 또한 이 유형의 다른 대부분의 프로젝트와 달리 배너 유형 점검을 위한 알려진 취약점의 광범위한 데이터베이스가 함께 제공되지 않습니다.


  1. 아주 흥미롭군! 구체적으로 어떤 테스트가 구현되어 있나?

도구가 제공하는 보안 점검의 대략적인 목록은 아래에 설명되어 있습니다.

  • 높은 위험 결함(잠재적으로 시스템 손상으로 이어짐):

    • 서버 측 쿼리 인젝션(블라인드 벡터, 숫자 매개변수 포함).
    • GET 또는 POST 매개변수에서 명시적인 SQL 유사 구문.
    • 서버 측 셸 명령 인젝션(블라인드 벡터 포함).
    • 서버 측 XML / XPath 인젝션(블라인드 벡터 포함).
    • 포맷 문자열 취약점.
    • 정수 오버플로우 취약점.
    • HTTP PUT을 허용하는 위치.
  • 중간 위험 결함(잠재적으로 데이터 손상으로 이어짐):

    • 문서 본문에 저장 및 반영된 XSS 벡터(최소 JS XSS 지원).
    • HTTP 리디렉션을 통한 저장 및 반영된 XSS 벡터.
    • HTTP 헤더 분할을 통한 저장 및 반영된 XSS 벡터.
    • 디렉터리 트래버설 / LFI / RFI(제한된 벡터 포함).
    • 다양한 파일 POI(서버 측 소스, 구성 등).
    • 공격자가 제공한 스크립트 및 CSS 포함 벡터(저장 및 반영).
    • 외부 신뢰할 수 없는 스크립트 및 CSS 포함 벡터.
    • 스크립트 및 CSS 리소스의 혼합 콘텐츠 문제(선택 사항).
    • 비 SSL 페이지에서 제출하거나 비 SSL 페이지로 제출하는 암호 양식(선택 사항).
    • 렌더링 가능 항목에 대한 MIME 유형이 잘못되었거나 누락됨.
    • 렌더링 가능 항목에 대한 일반 MIME 유형.
    • 렌더링 가능 항목에 대한 문자 집합이 잘못되었거나 누락됨.
    • 렌더링 가능 항목에 대한 충돌하는 MIME/문자 집합 정보.
    • 쿠키 설정 응답에 대한 잘못된 캐싱 지시문.
  • 낮은 위험 문제(제한된 영향 또는 낮은 특이성):

    • 디렉터리 목록 우회 벡터.
    • 공격자가 제공한 URL로의 리디렉션(저장 및 반영).
    • 공격자가 제공한 포함된 콘텐츠(저장 및 반영).
    • 외부 신뢰할 수 없는 포함된 콘텐츠.
    • 스크립트 불가능 하위 리소스의 혼합 콘텐츠(선택 사항).
    • HTML 양식의 HTTPS -> HTTP 제출(선택 사항).
    • URL의 HTTP 자격 증명.
    • 만료되었거나 아직 유효하지 않은 SSL 인증서.
    • XSRF 보호가 없는 HTML 양식.
    • 자체 서명된 SSL 인증서.
    • SSL 인증서 호스트 이름 불일치.
    • 덜 민감한 콘텐츠에 대한 잘못된 캐싱 지시문.
  • 내부 경고:

    • 리소스 가져오기 실패 시도.
    • 크롤링 제한 초과.
    • 404 동작 확인 실패.
    • IPS 필터링 감지됨.
    • 예기치 않은 응답 변형.
    • 잘못 분류된 것으로 보이는 크롤링 노드.
  • 비특이 정보 항목:

    • 일반 SSL 인증서 정보.
    • 크게 변경되는 HTTP 쿠키.
    • 변경되는 Server, Via 또는 X-... 헤더.
    • 새로운 404 서명.
    • 액세스할 수 없는 리소스.
    • HTTP 인증이 필요한 리소스.
    • 끊어진 링크.
    • 서버 오류.
    • 그렇지 않으면 분류되지 않은 모든 외부 링크(선택 사항).
    • 모든 외부 이메일(선택 사항).
    • 모든 외부 URL 리디렉터(선택 사항).
    • 알 수 없는 프로토콜에 대한 링크.
    • 자동 완성할 수 없는 양식 필드.
    • 암호 입력 양식(외부 무차별 대입용).
    • 파일 업로드 양식.
    • 기타 HTML 양식(그렇지 않으면 분류되지 않음).
    • 숫자 파일 이름(외부 무차별 대입용).
    • 페이지에 렌더링된 사용자 제공 링크.
    • 덜 중요한 콘텐츠에 대한 MIME 유형이 잘못되었거나 누락됨.
    • 덜 중요한 콘텐츠에 대한 일반 MIME 유형.
    • 덜 중요한 콘텐츠에 대한 문자 집합이 잘못되었거나 누락됨.
    • 덜 중요한 콘텐츠에 대한 충돌하는 MIME/문자 집합 정보.
    • OGNL 유사 매개변수 전달 규칙.

식별된 문제 목록과 함께 skipfish는 발견된 문서 유형 및 문제 유형의 요약 개요를 제공합니다. 또한 무차별 대입을 통해 발견된 노드가 독특한 방식으로 표시된 대화형 사이트맵도 제공합니다.

참고: 의식적인 설계 결정으로 skipfish는 다음을 포함하되 이에 국한되지 않는 고도로 비특이적인 문제에 대해 중복해서 불평하지 않습니다.

  • non-httponly 또는 non-secure 쿠키,
  • 비HTTPS 또는 자동 완성 활성화된 양식,
  • 페이지에서 감지된 HTML 주석,
  • 오류 메시지의 파일 시스템 경로 공개,
  • 서버 또는 프레임워크 버전 공개,
  • TRACE 또는 OPTIONS 요청을 지원하는 서버,
  • WebDAV와 같은 특정 기술의 존재.

이러한 측면 중 대부분은 원하는 경우 보고서에서 쉽게 검사할 수 있습니다. 예를 들어 모든 HTML 양식이 별도로 나열되고 새 쿠키나 흥미로운 HTTP 헤더도 마찬가지입니다. 감사자는 적절한 경우 이 데이터를 기반으로 특정 설계 권장 사항을 내리기로 선택할 수 있습니다. 그렇지만 이러한 발생은 특정 보안 결함으로 강조 표시되지 않습니다.


  1. 좋아, 사용해보고 싶다. 무엇을 알아야 할까?

무엇보다 먼저, 악의적으로 사용하지 마십시오. skipfish는 소유한 서비스나 테스트 허가를 받은 서비스에만 사용하세요.

모든 유형의 보안 테스트는 파괴적일 수 있음을 명심하십시오. 스캐너는 악의적인 공격을 수행하지 않도록 설계되었지만 실수로 사이트 운영을 방해할 수 있습니다. 위험을 수용하고 그에 따라 계획해야 합니다. 가능하면 테스트 인스턴스에 대해 스캐너를 실행하고 문제가 발생할 경우 결과를 처리할 준비를 하십시오.

또한 이 도구는 보안 전문가가 사용하기 위한 것이며 실험적인 성격을 띱니다. 오탐지를 반환하거나 명백한 보안 문제를 놓칠 수 있습니다. 완벽하게 작동하더라도 포인트 앤 클릭 애플리케이션이 아닙니다. 결과를 액면 그대로 받아들이지 마십시오.

공급업체에서 제공한 데모 사이트에 대해 도구를 실행하는 것은 평가에 좋은 방법이 아닙니다. 일반적으로 취약점을 매우 불완전하게 근사하기 때문입니다. 이러한 경우를 수용하기 위해 어떤 노력도 하지 않았습니다.

마지막으로, 스캐너는 불량하거나 오작동하는 HTTP 서버를 처리하도록 설계되지 않았으며 안전한(또는 정상적인) 동작을 보장하지 않습니다.


  1. 스캐너를 어떻게 실행하나?

컴파일하려면 압축을 풀고 make를 시도하십시오. 먼저 libidn을 설치해야 할 가능성이 큽니다.

다음으로 doc/dictionaries.txt에 제공된 지침을 읽고 올바른 사전 파일을 선택하고 올바르게 구성해야 합니다. 이 단계는 이후 스캔 결과의 품질에 큰 영향을 미치므로 건너뛰지 마십시오.

사전을 선택했으면 -S를 사용하여 해당 사전을 로드하고, -W를 사용하여 새로 학습된 사이트별 키워드(향후 평가에 유용함)를 위한 초기 빈 파일을 지정할 수 있습니다.

$ touch new_dict.wl $ ./skipfish -o output_dir -S existing_dictionary.wl -W new_dict.wl
http://www.example.com/some/starting/path.txt

자동 학습된 키워드를 저장하지 않으려면 -W-를 사용할 수 있습니다.

원하는 경우 둘 이상의 시작 URL을 제공할 수 있습니다. 모두 크롤링됩니다. 또한 다음 구문을 사용하여 파일에서 URL을 읽을 수 있습니다.

$ ./skipfish [...다른 옵션...] @../path/to/url_list.txt

도구는 스캔 진행 중에 유용한 통계를 표시합니다. Enter 키를 눌러 진행 중인 HTTP 요청 목록으로 전환할 수도 있습니다.

위 예제에서 skipfish는 전체 www.example.com(메인 페이지에서 링크된 경우 다른 포트의 서비스 포함)을 스캔하고 output_dir/index.html에 보고서를 작성합니다. 그런 다음 즐겨찾는 브라우저로 이 보고서를 볼 수 있습니다(JavaScript가 활성화되어 있어야 함). 최근 브라우저의 file:/// 보안 개선으로 인해 결과를 HTTP로 액세스해야 할 수도 있습니다. index.html 파일은 정적입니다. 실제 결과는 JSON 파일 계층 구조로 저장되며 필요한 경우 기계 처리 또는 다른 프리젠테이션 프론트엔드에 적합합니다. 또한 발견된 모든 URL 목록은 pivots.txt라는 단일 파일에 저장되어 쉽게 후처리할 수 있습니다.

간단한 동반 스크립트 sfscandiff를 사용하여 동일한 대상에 대해 동일한 플래그로 실행된 두 스캔의 델타를 계산할 수 있습니다. 새 보고서는 모든 새 노드나 변경된 노드에 빨간색 배경을 추가하고 발견된 모든 새 문제나 변경된 문제에 파란색 배경을 추가하여 비파괴적으로 주석이 추가됩니다.

일부 사이트는 인증이 필요할 수 있으며 이에 대한 지원은 doc/authentication.txt에 설명되어 있습니다. 대부분의 경우 끊어진 세션을 감지하여 재인증할 수 있는 폼 인증 방법을 사용하게 됩니다.

인증되면 사이트의 특정 URL이 세션을 로그아웃시킬 수 있습니다. 이를 방지하려면 -N 옵션(쿠키 설정 또는 삭제 시도를 거부)을 사용하거나 -X 매개변수(일치하는 URL을 가져오지 못하도록 방지)를 사용할 수 있습니다.

$ ./skipfish -X /logout/logout.aspx ...다른 매개변수...

-X 옵션은 /icons/, /doc/, /manuals/ 및 이와 유사한 표준적이고 평범한 위치를 제외하여 스캔 속도를 높이는 데도 유용합니다. 일반적으로 -X와 -I(하위 문자열과 일치하는 URL만 크롤링)를 사용하여 원하는 방식으로 스캔 범위를 제한할 수 있습니다. 특정 프로토콜과 포트로만 제한하는 경우도 포함됩니다.

$ ./skipfish -I http://example.com:1234/ ...다른 매개변수...

관련 기능인 -K를 사용하면 퍼징하지 않을 매개변수 이름을 지정할 수 있습니다(애플리케이션에서 URL에 세션 ID를 넣어 잡음을 최소화하는 경우 유용).

또 다른 유용한 범위 지정 옵션은 -D로, 테스트에 포함할 추가 호스트나 도메인을 지정할 수 있습니다. 기본적으로 명령줄 URL에 나타난 모든 호스트가 목록에 추가되지만 -D를 사용하여 이 규칙을 확장할 수 있습니다. 예:

$ ./skipfish -D test2.example.com -o output-dir http://test1.example.com/

...또는 도메인 와일드카드 일치의 경우:

도구 다운로드