이는 URL 및 웹페이지/HTTP 응답에서 JavaScript 소스를 추출하는 강력한 도구입니다. 간단한 URL 처리를 위한 명령줄 인터페이스(CLI)와 사용자 정의 통합을 위한 패키지 인터페이스를 제공하므로 JS 소스를 효율적으로 추출해야 하는 침투 테스터, 버그 현상금 사냥꾼 및 개발자에게 이상적입니다.
설치
CLI 사용법
옵션
예
패키지 사용법
추출기 가져오기
예
버전 정보
기여
특허
getJS
설치하려면 다음 명령을 사용하십시오.
go install github.com/003random/getJS/v2@latest
getJS
동작을 사용자 정의하기 위한 여러 명령줄 옵션을 제공합니다.
-url string
: JavaScript 소스를 추출해야 하는 URL입니다.
-input string
: 선택적 URL 입력 파일입니다. 각 URL은 일반 텍스트 형식으로 새 줄에 입력되어야 합니다. 여러 번 사용할 수 있습니다.
-output string
: 결과가 기록되는 선택적 출력 파일입니다. 여러 번 사용할 수 있습니다.
-complete
: 현재 출처를 추가하여 상대 URL을 완성/자동 완성합니다.
-resolve
: JavaScript 파일을 해결합니다. --complete
와 조합해서만 사용할 수 있습니다.
-threads int
: 생성할 처리 스레드 수(기본값: 2).
-verbose
: 자세한 런타임 정보 및 오류를 인쇄합니다.
-method string
: 원격 콘텐츠를 가져오는 데 사용되는 요청 방법(기본값: "GET").
-header string
: 요청에 추가할 선택적 요청 헤더입니다. 여러 번 사용할 수 있습니다.
-timeout duration
: 원격 콘텐츠를 가져오는 동안 요청 시간 초과(기본값: 5초).
getJS -url https://destroy.ai
또는
curl https://destroy.ai | getJS
getJS -url "http://example.com" -header "User-Agent: foo bar" -method POST --timeout=15s
getJS -input foo.txt -input bar.txt
getJS -url "http://example.com" -output results.txt
getJS
패키지로 사용하려면 extractor
패키지를 가져와 해당 기능을 직접 활용해야 합니다.
package mainimport ("fmt""log""net/http""net/url""github.com/003random/getJS/extractor")func main() {baseURL, err := url.Parse("https:// google.com")if (err != nil) {log.Fatalf("기본 URL 구문 분석 오류: %v", err) }resp, err := extractor.FetchResponse(baseURL.String(), "GET", http.Header{})if (err != nil) {log.Fatalf("응답 가져오기 오류: %v", err) }defer resp.Body.Close()// 사용자 정의 추출 지점(선택 사항).extractionPoints := map[string][]string{"script": {"src", "data-src"},"a": { "href"}, }sources, err := extractor.ExtractSources(resp.Body, extractPoints)if (err != nil) {log.Fatalf("소스 추출 오류: %v", err) }// 추출된 소스 필터링 및 확장.filtered, err := extractor.Filter(sources, extractor.WithComplete(baseURL), extractor.WithResolve())if (err != nil) {log.Fatalf("오류 필터링 소스: %v", 오류) }소스 := 필터링된 범위 {fmt.Println(source.String()) } }
이것은 getJS
의 v2 버전입니다. 원본 버전은 v1 태그에서 찾을 수 있습니다.
기여를 환영합니다! 버그, 기능 요청 또는 개선 사항에 대해서는 문제를 열거나 끌어오기 요청을 제출하세요.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.