
웹 애플리케이션 내에서 엔드포인트와 자산을 쉽고 빠르게 발견하도록 설계된 간단하고 빠른 웹 크롤러
빠른 golang 웹 크롤러로, URL과 JavaScript 파일 위치를 수집합니다. 기본적으로 뛰어난 Gocolly 라이브러리의 간단한 구현입니다.
단일 URL:
echo https://google.com | hakrawler
여러 URL:
cat urls.txt | hakrawler
표준 입력의 각 줄에 대해 5초 후 타임아웃:
cat urls.txt | hakrawler -timeout 5
모든 요청을 프록시를 통해 전송:
cat urls.txt | hakrawler -proxy http://localhost:8080
서브도메인 포함:
echo https://google.com | hakrawler -subs
참고: 일반적인 문제는 도구가 URL을 반환하지 않는 경우입니다. 이는 도메인(https://example.com)이 지정되었지만 서브도메인(https://www.example.com)으로 리디렉션될 때 자주 발생합니다. 서브도메인이 범위에 포함되지 않아 URL이 출력되지 않습니다. 이를 해결하려면 리디렉션 체인의 최종 URL을 지정하거나
-subs옵션을 사용하여 서브도메인을 포함하십시오.
google의 모든 서브도메인을 가져와서 http(s)에 응답하는 서브도메인을 찾은 후 모두 크롤링합니다.
echo google.com | haktrails subdomains | httpx | hakrawler
먼저, go를 설치해야 합니다.
그런 다음 이 명령어를 실행하여 hakrawler를 다운로드 + 컴파일합니다:
go install github.com/hakluke/hakrawler@latest
이제 ~/go/bin/hakrawler를 실행할 수 있습니다. 전체 경로 없이 hakrawler만 실행하려면 export PATH="~/go/bin/:$PATH"를 설정해야 합니다. 이 설정을 유지하려면 ~/.bashrc 파일에 이 줄을 추가할 수도 있습니다.
echo https://www.google.com | docker run --rm -i hakluke/hakrawler:v2 -subs
위의 dockerhub 방법이 훨씬 쉽지만, 로컬에서 실행하려면:
git clone https://github.com/hakluke/hakrawler
cd hakrawler
sudo docker build -t hakluke/hakrawler .
sudo docker run --rm -i hakluke/hakrawler --help
참고: 이렇게 하면 모든 기능이 없는 이전 버전의 hakrawler가 설치되며 버그가 있을 수 있습니다. 다른 방법을 사용하는 것을 권장합니다.
sudo apt install hakrawler
그런 다음, hakrawler를 실행하려면:
echo https://www.google.com | docker run --rm -i hakluke/hakrawler -subs
Usage of hakrawler:
-d int
Depth to crawl. (default 2)
-dr
Disable following HTTP redirects.
-h string
Custom headers separated by two semi-colons. E.g. -h "Cookie: foo=bar;;Referer: http://example.com/"
-i Only crawl inside path
-insecure
Disable TLS verification.
-json
Output as JSON.
-proxy string
Proxy URL. E.g. -proxy http://127.0.0.1:8080
-s Show the source of URL based on where it was found. E.g. href, form, script, etc.
-size int
Page size limit, in KB. (default -1)
-subs
Include subdomains for crawling.
-t int
Number of threads to utilise. (default 8)
-timeout int
Maximum time to crawl each URL from stdin, in seconds. (default -1)
-u Show only unique urls.
-w Show at which link the URL is found.