
놀라울 정도로 빠른 응답 크롤러로 소스 코드에서 흥미로운 것들을 찾아보세요! 😎🔥
테스트 환경: Windows, MAC, Linux 및 Linux용 Windows 하위 시스템(WSL)
이 프로젝트를 후원해 주세요. 다음은 훌륭한 스폰서입니다:
Oxylabs는 195개국 1억 개 이상의 IP를 보유한 프리미엄 프록시와 즉시 사용 가능한 Scraper API를 제공합니다. 독점 프로모션 코드 boost35를 사용하여 Residential, Mobile 프록시, Web Unblocker 및 Scraper API를 35% 할인받으세요.
요청을 보내거나 로컬 응답 파일(있는 경우)에서 숨겨진 엔드포인트를 찾기 위해 응답을 크롤링합니다.
소스에서 발견된 JavaScript 변수 목록을 생성합니다.
웹사이트에서 모든 소셜 미디어 링크를 추출하여 잠재적으로 끊어진 링크를 식별합니다.
워드리스트를 사용한 호스트 무차별 대입.
URL 목록의 상태 코드 가져오기 / 호스트 목록에서 라이브 도메인 필터링.
위에 언급된 모든 기능은 매우 빠른 속도로 실행됩니다.
SourceWolf는 requests 라이브러리의 Session 모듈을 사용하므로 TCP 연결을 재사용하여 매우 빠릅니다.
SourceWolf는 로컬에서 응답 파일을 크롤링할 수 있는 옵션을 제공하므로 이미 응답 복사본이 있는 엔드포인트에 다시 요청을 보낼 필요가 없습니다.
최종 엔드포인트는 /api/admin이 아닌 https://example.com/api/admin과 같이 호스트가 포함된 완전한 형태로 제공됩니다. 이는 호스트 목록을 스캔할 때 유용할 수 있습니다.
> python3 sourcewolf.py -h
-l LIST, --list LIST JavaScript URL 목록
-u URL, --url URL 단일 URL
-t THREADS, --threads THREADS
사용할 동시 스레드 수 (기본값 5)
-o OUTPUT_DIR, --output directory-name OUTPUT_DIR
추가 분석을 위해 URL 응답 텍스트를 디렉토리에 저장
-s STATUS_CODE_FILE, --store-status-code STATUS_CODE_FILE
상태 코드를 파일에 저장
-b BRUTE, --brute BRUTE
FUZZ 키워드로 URL 무차별 대입 (--wordlist도 함께 사용해야 함)
-w WORDLIST, --wordlist WORDLIST
URL 무차별 대입을 위한 워드리스트
-v, --verbose 상세 모드 (전송 중인 모든 요청 표시)
-c CRAWL_OUTPUT, --crawl-output CRAWL_OUTPUT
크롤링된 출력을 저장할 출력 디렉토리
-d DELAY, --delay DELAY
요청 간 지연 (초)
--timeout TIMEOUT 연결 시간 초과까지 대기할 최대 시간 (초)
--headers HEADERS 사용자 정의 헤더 추가 ({'Token': 'YOUR-TOKEN-HERE'} 형식으로 전달) --> 딕셔너리 형식
--cookies COOKIES 쿠키 추가 ({'Cookie': 'YOUR-COOKIE-HERE'} 형식으로 전달) --> 딕셔너리 형식
--only-success 2XX 응답만 출력
--local LOCAL 크롤링할 로컬 응답 파일이 있는 디렉토리
--no-colors 출력에서 색상 제거
--update-info 최신 버전 확인 및 필요시 업데이트
전체 사용법:
python3 sourcewolf.py -l domains -o output/ -c crawl_output
domains은 크롤링할 URL 목록으로, 다음과 같은 형식입니다:
https://example.com/
https://exisiting.example.com/
https://exisiting.example.com/dashboard
https://example.com/hitme
output/은 입력 파일의 응답 텍스트 파일이 저장되는 디렉토리입니다.
이들은 output/2XX, output/3XX, output/4XX, output/5XX 형식으로 저장됩니다.
예를 들어 output/2XX에는 2XX 상태 코드 응답이 저장됩니다.
-c 플래그로 지정된 crawl_output은 SourceWolf가 output/ 디렉토리 내에 저장된 HTTP 응답 파일을 크롤링하여 생성한 출력을 저장하는 디렉토리입니다 (현재는 엔드포인트만).
crawl_output/ 디렉토리에는 다음이 포함됩니다:
endpoints - 발견된 모든 엔드포인트
jsvars - 모든 JavaScript 변수
더 많은 모듈과 기능이 SourceWolf에 통합됨에 따라 디렉토리에 더 많은 파일이 추가될 예정입니다.
(또는)
단일 URL의 경우,
python3 sourcewolf.py -u example.com/api/endpoint -o output/ -c crawl_output
-l 플래그만 -u로 대체되며, 다른 모든 것은 동일합니다.
python3 sourcewolf.py -b https://hackerone.com/FUZZ -w /path/to/wordlist -s status
-w 플래그는 선택 사항입니다. 지정하지 않으면 기본 워드리스트(6124개 단어)가 사용됩니다.
SourceWolf는 -b 값의 FUZZ 키워드를 워드리스트의 단어로 대체하여 요청을 보냅니다. 이를 통해 GET 매개변수 값도 무차별 대입할 수 있습니다.
-s는 출력을 status 파일에 저장합니다.
출력이
응답 크롤링모드와 유사하므로 스크린샷은 포함되지 않았습니다.
python3 sourcewolf -l domains -s live
domains 파일에는 서브도메인, 엔드포인트, JS 파일 등 무엇이든 포함될 수 있습니다.
-s 플래그는 응답을 live 파일에 씁니다.
무차별 대입 및 프로빙 모드는 기본적으로 404를 제외한 모든 상태 코드를 출력합니다.
--only-success플래그를 사용하여 2XX 응답만 출력하도록 사용자 지정할 수 있습니다.
SourceWolf는 멀티스레딩도 활용합니다.
모든 모드의 기본 스레드 수는 5입니다. -t 플래그를 사용하여 스레드 수를 늘릴 수 있습니다.
위의 세 가지 모드 외에도, 응답 파일을 로컬에 가지고 있고 SourceWolf 호환 명명 규칙을 따르는 경우 로컬 크롤링 옵션이 있습니다.
모든 응답을 responses/ 같은 디렉토리에 저장합니다.
python3 sourcewolf.py --local responses/
이렇게 하면 로컬 디렉토리를 크롤링하여 결과를 제공합니다.
서브도메인 열거
|
|
SourceWolf
|
|
라이브 서브도메인 필터링
|
|
응답 저장 및 숨겨진 엔드포인트 찾기 / 디렉토리 무차별 대입
이 시점에서 스캔 수행 시 웹 페이지에서 실시간으로 추출된 대상의 많은 엔드포인트를 갖게 됩니다.
SourceWolf의 핵심 목적은 숨겨진 엔드포인트 발견뿐만 아니라 응답 파일을 수동으로 검색하여 수행되는 모든 작업을 자동화하는 더 넓은 비전으로 만들어졌습니다.
한 가지 예는 소스에서 유출된 키를 수동으로 검색하는 것입니다.
이 핵심 목적은 파일이 모듈식으로 작성된 방식을 설명합니다.
터미널에서 바로 SourceWolf를 업데이트할 수 있으므로 저장소를 다시 클론할 필요가 없습니다.
SourceWolf는 실행될 때마다 업데이트를 확인하고, 업데이트가 있으면 요약과 함께 사용자에게 알립니다.
다음 명령 실행:
python3 sourcewolf.py --update-info
업데이트에 대한 자세한 정보를 제공합니다.
업데이트가 있으면 update.py 파일을 SourceWolf 디렉토리 밖으로 이동한 후 다음 명령을 실행해야 합니다.
경고: 이 작업은 SourceWolf 디렉토리 내의 모든 파일과 폴더를 삭제합니다.
python3 update.py /path/to/SourceWolf
이것은 실제로 디렉토리를 제거하고 저장소를 다시 클론합니다.
현재 SourceWolf는 소스에서 숨겨진 엔드포인트만 찾는 것을 지원하지만, 향후 다른 기능이 통합될 예정입니다.
어디에 기여할 수 있나요?
주로 SourceWolf에 더 많은 모듈을 통합하는 데 기여가 필요합니다. 오타 수정이라도 자유롭게 PR을 열어주세요.
풀 리퀘스트를 보내기 전에 최신 버전인지 확인하세요.
> 새로운 기능을 추가하려면 먼저 이슈를 열어 필요한지 확인하세요! 필요하지 않은 새로운 기능을 코딩하는 데 시간을 낭비하지 마십시오.
발생하는 모든 이슈를 자유롭게 열어주세요.
이슈를 열 때는 운영 체제, 실행한 명령, 가능하면 스크린샷을 포함해 주세요. 그러면 문제를 재현하기가 더 쉽습니다.
이슈를 열어 새로운 기능을 요청하거나 기존 기능을 개선할 수도 있습니다.
로컬에서 파일을 크롤링하려면 몇 가지 명명 규칙을 따라야 합니다. 이러한 규칙은 SourceWolf가 호스트 이름을 직접 식별하고, 상대 경로를 포함한 모든 엔드포인트를 구문 분석할 수 있도록 하기 위해 마련되었습니다.
URL https://example.com/api/를 예로 들어 보겠습니다.
example.com/apiexample.com@api따라서 최종 파일은 [email protected]와 같습니다.
Murugan artworks에서 디자인한 로고
SourceWolf는 MIT 라이선스를 사용합니다.