
주어진 대상에 대해 엔드포인트, 잠재적 매개변수, 대상 특정 단어 목록 및 시크릿을 발견하는 데 사용되는 Python 도구입니다.
이 도구는 엔드포인트를 발견하고, 잠재적인 파라미터를 발견하며, 대상별 단어 목록을 생성하고, 주어진 대상에 대한 비밀을 찾는 데 사용됩니다. 다음 방법으로 찾을 수 있습니다:
waymore -mode R의 보관된 응답 파일 검색 및 waymore.txt의 URL과 waymore_index.txt의 원본 URL 요청 - waymore README.md 참조)Python 스크립트는 제 Burp 확장 프로그램 GAP의 링크 찾기 기능을 기반으로 합니다. 시작점으로 Gerben Javado의 놀라운 도구 LinkFinder를 가져와 링크를 찾기 위한 정규식을 사용했지만, 더 많은 것을 찾기 위한 추가 개선 사항을 적용했습니다.
xnLinkFinder는 Python 3을 지원합니다.
기본 (전역) Python 환경에 xnLinkFinder를 설치하세요.```bash
pip install xnLinkFinder
또는```bash
pip install git+https://github.com/xnl-h4ck3r/xnLinkFinder.git -v
다음으로 업그레이드할 수 있습니다```bash pip install --upgrade xnLinkFinder
### pipx
[pipx](https://pypa.github.io/pipx/)를 사용하여 격리된 Python 환경에서 빠른 설정```bash
pipx install git+https://github.com/xnl-h4ck3r/xnLinkFinder.git
참고: PDF 파일에서 링크를 추출하려면 시스템에 pdftotext를 설치할 수 있습니다. Linux에서는 sudo apt install -y poppler-utils, macOS에서는 brew install poppler를 사용하여 설치할 수 있습니다. pdftotext가 설치되어 있지 않은 경우, xnLinkFinder는 pypdf Python 라이브러리를 대체하여 사용합니다. 텍스트를 찾을 수 없는 경우(예: 스캔된 PDF), 설치된 경우 ocrmypdf를 사용하려고 시도합니다(예: sudo apt install -y ocrmypdf). 일반적으로 pdftotext와 ocrmypdf를 사용하면 pypdf만 사용하는 것보다 훨씬 더 나은 결과를 얻을 수 있습니다.
| ----------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | 입력: URL, URL 텍스트 파일, 검색할 파일 디렉터리, Burp XML 출력 파일, ZAP 출력 파일, Caido CSV 파일, HAR JSON 파일 또는 내용을 검색할 단일 파일. |
| -o | --output | 링크 출력을 저장할 파일 (필요 시 경로 포함, 기본값: output.txt). cli로 설정하면 출력이 STDOUT에만 기록됩니다. 파일이 이미 존재하면 -ow 옵션이 전달되지 않는 한 추가(중복 제거)됩니다. |
| -op | --output-params | 잠재적 매개변수 출력을 저장할 파일 (필요 시 경로 포함, 기본값: parameters.txt). cli로 설정하면 출력이 STDOUT에만 기록되지만(다른 프로그램으로 파이프되지 않음). 파일이 이미 존재하면 -ow 옵션이 전달되지 않는 한 추가(중복 제거)됩니다. |
| -owl | --output-wordlist | 대상 특화 워드리스트 출력을 저장할 파일 (필요 시 경로 포함, 기본값: 워드리스트 출력 없음). cli로 설정하면 출력이 STDOUT에만 기록되지만(다른 프로그램으로 파이프되지 않음). 파일이 이미 존재하면 -ow 옵션이 전달되지 않는 한 추가(중복 제거)됩니다. |
| -oo | --output-oos | 범위 외 링크 출력을 저장할 파일 (필요 시 경로 포함, 기본값: OOS 출력 없음). 로 설정하면 출력이 STDOUT에만 기록되지만(다른 프로그램으로 파이프되지 않음). 파일이 이미 존재하면 옵션이 전달되지 않는 한 추가(중복 제거)됩니다. |
| -os | --output-secrets | 응답에서 발견된 비밀 정보를 저장할 파일 (JSON 형식, 필요 시 경로 포함, 기본값: 비밀 출력 없음). 파일이 이미 존재하면 옵션이 전달되지 않는 한 비밀이 병합됩니다. 비밀은 유형과 값별로 그룹화되며 각 항목이 발견된 출처의 배열이 포함됩니다. |
| -ow | --output-overwrite | 출력 파일이 이미 존재하는 경우 추가하는 대신 덮어씁니다. |
| -sp | --scope-prefix | 로 시작하는 링크는 출력에서 원본 링크 대신 범위 도메인이 접두사로 추가됩니다. 전달된 값이 유효한 파일 이름이면 해당 파일이 사용되고, 그렇지 않으면 문자열 리터럴이 사용됩니다. |
| -spo | --scope-prefix-original | 인수가 전달된 경우, 로 시작하는 원래 링크도 출력에 포함될지 결정합니다 (기본값: false) |
| -spkf | --scope-prefix-keep-failed | 인수가 전달된 경우, 접두사가 추가된 링크가 404 또는 RequestException 발생 시에도 출력에 유지될지 결정합니다 (기본값: false) |
| -sf | --scope-filter | 링크의 도메인이 지정된 범위에 있는 경우에만 출력 링크를 필터링합니다. 전달된 값이 유효한 파일 이름이면 해당 파일이 사용되고, 그렇지 않으면 문자열 리터럴이 사용됩니다. 입력이 도메인/URL(또는 도메인/URL 파일)인 경우 이 인수는 이제 필수입니다. 범위에 없는 사이트를 크롤링하거나 잘못된 결과를 방지하기 위함입니다. |
| -c | --cookies † | HTTP 요청과 함께 전달할 쿠키를 추가합니다. 형식으로 전달하십시오. |
| -H | --headers † | HTTP 요청과 함께 전달할 사용자 정의 헤더를 추가합니다. 형식으로 전달하십시오. |
| -ra | --regex-after | 출력 전 발견된 엔드포인트에 대한 필터링 목적의 정규식 (예: ). 일치하면 링크가 출력됩니다. |
| -d | --depth † | 검색할 깊이 수준. 예를 들어 값 2가 전달되면 처음에 발견된 모든 링크에서 추가 링크를 검색합니다 (기본값: 1). 이 옵션은 Burp 파일, ZAP 파일, Caido 파일 및 HAR 파일의 경우 크기가 크고 메모리를 많이 소모할 수 있으므로 무시됩니다. 또한 도메인 없이 발견된 링크에 대한 요청을 시도할 수 있도록 () 인수를 사용하는 것이 좋습니다. |
| -p | --processes † | URL 또는 URL 파일(파일이 아닌 Burp, ZAP, Caido 또는 HAR 파일)에 대한 요청 시 기본 멀티스레딩이 수행됩니다. 이 인수는 사용되는 프로세스(스레드) 수를 결정합니다 (기본값: 25) |
| -rl | --rate-limit † | 초당 전송할 최대 요청 수 (기본값: 0, 속도 제한 없음). 이는 대상 서버에 과부하를 방지하는 데 도움이 됩니다. |
| -x | --exclude | 추가 링크 제외 목록 ( 목록 외)을 쉼표로 구분하여 예: |
| -orig | --origin | 출력에 링크의 출처를 포함할지 여부. 출력에 로 표시됩니다 (기본값: false) |
| -prefixed | | 출력에서 접두사가 추가된 링크를 확인할지 여부. 출력에서 링크와 출처 뒤에 를 표시합니다 (기본값: false) |
| -xrel | --exclude-relative-links | 기본적으로 결과에 또는 로 시작하는 링크가 있으면 포함됩니다. 이 인수를 사용하면 이러한 상대 링크가 추가되지 않습니다. |
| -t | --timeout † | 서버가 데이터를 보낼 때까지 기다릴 시간(초) (기본값: 10초) |
| -r | --retries † | 실패(예: 시간 초과, 연결 오류 등) 후 요청을 재시도할 횟수. 최대 5회 재시도로 제한됩니다 (기본값: 0) |
| -inc | --include | 입력() 링크를 출력에 포함시킵니다 (기본값: false) |
| -u | --user-agent † | 사용자 에이전트를 설정합니다. 예: . 가능한 값: , , , . 또한 , , 는 의 하위 집합이지만 별도로 사용할 수 있습니다. |
| -uc | --user-agent-custom † | 모든 요청에 사용할 사용자 정의 User-Agent 문자열입니다. 이는 / 인수를 재정의합니다. 예를 들어 프로그램에서 특정 User-Agent 헤더를 요구할 때 사용할 수 있습니다. |
| -insecure | † | 요청 시 TLS 인증서 검사를 비활성화할지 여부 (기본값: false) |
| -s429 | † | 응답의 95% 이상이 429 Too Many Requests를 반환하면 중지 (기본값: false) |
| -s403 | † | 응답의 95% 이상이 403 Forbidden을 반환하면 중지 (기본값: false) |
| -sTO | † | 요청의 95% 이상이 시간 초과되면 중지 (기본값: false) |
| -sCE | † | 요청의 95% 이상에서 연결 오류가 발생하면 중지 (기본값: false) |
| -m | --memory-threshold | 메모리 임계값 백분율. 시스템 메모리가 임계값을 초과하면 프로그램이 메모리 부족으로 종료되기 전에 정상적으로 중지됩니다 (기본값: 95) |
| -mfs | --max-file-size † | 가 디렉터리인 경우 확인할 파일의 최대 크기(바이트). 이보다 크면 무시됩니다 (기본값: 500 MB). 0으로 설정하면 크기에 관계없이 모든 파일이 무시되지 않습니다. |
| -mrs | --max-response-size † | 다운로드할 최대 응답 크기(MB). 이보다 큰 응답은 건너뜁니다 (기본값: 100 MB). |
| -fp | --forward-proxy † | URL(또는 URL 파일)을 통한 활성 링크 찾기 시 요청을 Burp, Caido 등의 프록시로 재전송합니다. 예: |
| -rp | --request-proxy | 사용할 요청 프록시. 프록시 문자열(예: , ) 또는 프록시 목록 파일(한 줄에 하나씩, 무작위 선택)일 수 있습니다. |
| | --heap | 방문한 URL의 힙 스냅샷을 찍어 브라우저 메모리에서 링크를 추출할지 여부. 시간이 더 걸리지만 표준 정적 분석으로는 발견하기 어려운 동적으로 생성된 링크를 찾을 수 있습니다 (Playwright 설치 필요). |
| -ro | --readable-only | 전달된 경우, 링크 검색 전 BeautifulSoup을 사용하여 HTML 응답/파일에서 사람이 읽을 수 있는 텍스트만 추출합니다. , , , 태그의 내용은 제외됩니다. |
| -ascii-only | | 링크와 매개변수가 ASCII 문자만 포함하는 경우에만 추가할지 여부. 대상이 ASCII 문자를 사용할 가능성이 있고 바이너리 파일에서 거짓 양성이 발생할 때 유용합니다. |
| -mtl | --max-time-limit | 중지하기 전 최대 실행 시간 제한(분) (기본값: 0). 0이면 제한이 없습니다. |
| | --config | YML 설정 파일 경로. 전달되지 않으면 기본 디렉터리(일반적으로 )에서 파일을 찾습니다. |
| -nwlpl | --no-wordlist-plurals | 대상 특화 워드리스트에 단어가 발견되면 기본적으로 단수에서 복수, 그 반대의 경우에도 새 단어가 추가됩니다. 이 인수를 사용하면 이 과정이 수행되지 않습니다. |
| -nwlpw | --no-wordlist-pathwords | 기본적으로 링크에서 발견된 경로 단어는 대상 특화 워드리스트에 대해 처리됩니다. 이 인수를 사용하면 처리되지 않습니다. |
| -nwlpm | --no-wordlist-parameters | 기본적으로 링크에서 발견된 매개변수는 대상 특화 워드리스트에 대해 처리됩니다. 이 인수를 사용하면 처리되지 않습니다. |
| -nwlc | --no-wordlist-comments | 기본적으로 페이지의 주석은 대상 특화 워드리스트에 대해 처리됩니다. 이 인수를 사용하면 처리되지 않습니다. |
| -nwlia | --no-wordlist-imgalt | 기본적으로 이미지의 'alt' 속성은 대상 특화 워드리스트에 대해 처리됩니다. 이 인수를 사용하면 처리되지 않습니다. |
| -nwld | --no-wordlist-digits | 대상 특화 워드리스트에서 숫자가 포함된 단어를 제외합니다. |
| -nwll | --no-wordlist-lowercase | 기본적으로 대문자가 포함된 단어를 추가하면 소문자 버전도 추가됩니다. 이 인수를 사용하면 소문자 단어가 추가되지 않습니다. |
| -wlml | --wordlist-maxlen | 대상 특화 워드리스트에 추가할 단어의 최대 길이 (복수 제외, 기본값: 0 - 제한 없음) |
| -swf | --stopwords-file | 대상 특화 워드리스트에서 단어를 제외하는 데 사용되는 추가 중단어 파일 (YML 설정 파일의 "stopWords"에 추가). 중단어는 자연어 처리에서 사용되며 다양한 라이브러리에서 서로 다른 목록을 찾을 수 있습니다. 대상에 따라 다른 언어의 단어를 추가할 수 있습니다. |
| -brt | --burpfile-remove-tags | 로 전달된 입력이 Burp 파일인 경우 사용자에게 대화식으로 해당 파일에서 불필요한 태그를 제거할지 묻습니다 (때로는 Burp XML 파일에 문제가 있어 불필요한 태그를 제거하면 해결되고 파일 크기도 작아집니다). 스크립트에서 xnLinkFinder를 사용하는 경우 사용자 입력을 기다리지 않도록 또는 를 이 인수로 전달할 수 있습니다. 참고: 이는 파일에 영구적으로 적용됩니다. |
| -all | --all-tlds | TLD가 일반적이지 않더라도 발견된 모든 링크를 반환합니다. 이로 인해 변수 이름 등이 실제 도메인일 가능성이 있는 경우 거짓 양성이 발생할 수 있습니다. 기본적으로 일반 TLD 목록(의 )에 있는 TLD를 가진 링크만 반환됩니다. |
| -cl | --content-length | 크롤링 시 응답의 Content-Length를 표시합니다. |
| -nb | --no-banner | 도구 배너를 숨깁니다. |
| -v | --verbose | 상세 출력 |
| -vv | --vverbose | 더 상세한 출력 |
| | --version | 현재 버전 번호를 표시합니다. |
| -h | --help | 도움말 메시지를 표시하고 종료합니다. |† 디렉토리, BURP XML 파일, ZAP 파일, CAIDO CSV 파일 또는 HAR 파일 입력에는 관련 없음
config.yml 파일(일반적으로 ~/.config/xnLinkFinder/에 위치)에는 사용자의 필요에 맞게 업데이트할 수 있는 키들이 있습니다:
linkExclude - 쉼표로 구분된 문자열 목록(예: .css,.jpg,.jpeg 등). 모든 링크가 이 목록과 대조 확인됩니다. 링크에 이 문자열 중 하나라도 포함되면 출력에서 제외됩니다. 입력이 디렉토리인 경우 파일 이름이 이 목록과 대조 확인됩니다.contentExclude - 쉼표로 구분된 문자열 목록(예: text/css,image/jpeg,image/jpg 등). 모든 응답의 Content-Type 헤더가 이 목록과 대조 확인됩니다. 이러한 콘텐츠 유형을 가진 응답은 제외되며 링크를 확인하지 않습니다.fileExtExclude - 쉼표로 구분된 문자열 목록(예: .zip,.gz,.tar 등). 디렉토리 모드에서 모든 파일이 이 목록과 대조 확인됩니다. 해당 확장자를 가진 파일은 링크 검색 대상에서 제외됩니다. 또한 일반 모드에서 응답에 제외할 콘텐츠 타입이 없으면 URL 끝에서 이러한 확장자를 확인하여 링크 검색 여부를 결정합니다.regexFiles - 파이프 문자로 구분된 파일 타입 목록(예: php|php3|php5 등). 명확한 링크는 아니지만 추출하고 싶은 흥미로운 파일 타입이 발견될 때 링크 찾기 정규식에 사용됩니다. 이 목록에 추가할 경우 올바른 정규식을 위해 점을 이스케이프해야 합니다(예: js\.map).respParamLinksFound † - 응답에서 찾은 링크로부터 잠재적 매개변수를 가져올지 여부: True 또는 † 설정 파일에서 이 값들을 찾을 수 없으면 기본적으로 True로 설정됩니다.
xnLinkFinder -i target.com -sf target.com
### 특정 대상에서 링크 찾기 - 상세
이상적으로는, 주요 도메인(스키마 포함)과 함께 범위 접두사(`-sp`)를 제공하고, 결과를 관련 도메인으로만 필터링하는 범위 필터(`-sf`)를 제공하십시오(파일 또는 인스코프 도메인이 될 수 있음). 또한, 쿠키와 사용자 정의 헤더를 전달하여 인증된 사용자에게만 제공되는 링크를 찾을 수 있습니다.
사용자 에이전트(`-u desktop mobile`)를 지정하면 먼저 데스크톱 사용자 에이전트를 사용하여 모든 링크를 검색한 다음, 모바일 사용자 에이전트를 사용하여 다시 시도합니다. 주어진 사용자 에이전트와 관련된 특정 엔드포인트가 있을 수 있습니다. 깊이 값(`-d`)을 지정하면 이전 깊이 검색에서 발견된 링크에 계속 요청을 보내 더 많은 링크를 찾을 수 있습니다.```
xnLinkFinder -i target.com -sp target_prefix.txt -sf target_scope.txt -spo -inc -vv -H 'Authorization: Bearer XXXXXXXXXXXXXX' -c 'SessionId=MYSESSIONID' -u desktop mobile -d 10
예를 들어 JS 파일 URL 목록이 있는 경우, 해당 파일에서 링크를 찾을 수 있습니다:``` xnLinkFinder -i target_js.txt -sf target.com
참고: 전달된 파일은 첫 줄이 `//` 또는 `http`로 시작하거나 도메인 형식(예: `example.com`, `sub.example.co.uk`)일 경우 URL 목록으로 간주됩니다. 그렇지 않은 경우 Burp, Zap, Caido 또는 HAR 파일이 아니라면, 내용을 검색할 파일로 간주됩니다.
### 파일 내용에서 링크 찾기 - 기본
예를 들어 저장된 응답이 있다면, 해당 응답에서 링크를 찾을 수 있습니다:```
xnLinkFinder -i response.txt -sf target.com
참고: 전달된 파일이 첫 줄이 // 또는 http로 시작하거나 도메인 형식(예: example.com, sub.example.co.uk)인 경우 URL 목록으로 간주되며, 그렇지 않은 경우 내용에서 검색할 파일로 간주됩니다(단, Burp, Zap, Caido 또는 HAR 파일인 경우는 예외).
파일(예: JS 파일, HTTP 응답 등)이 있는 경우, 해당 파일에서 링크를 찾을 수 있습니다:``` xnLinkFinder -i ~/.config/waymore/results/target.com
NOTE: 하위 디렉토리도 확인됩니다. `-mfs` 옵션을 지정하여 특정 크기 이상의 파일을 건너뛸 수 있습니다.
### Burp 프로젝트에서 링크 찾기 - Basic
Burp에서 검색하려는 항목을 선택하려면 예를 들어 범위를 강조 표시하고 마우스 오른쪽 버튼을 클릭한 후 `Save selected items`를 선택합니다. 저장하기 전에 `base64-encode requests and responses` 옵션이 선택되어 있는지 확인하십시오.
파일에서 모든 링크를 가져오려면 (매우 큰 파일도 모든 링크를 얻을 수 있습니다):```
xnLinkFinder -i target_burp.xml
참고: xnLinkFinder는 -i로 전달된 파일의 첫 번째 줄이 <?xml로 시작하면 Burp 파일을 처리하려는 것으로 가정합니다.
이상적으로는, 기본 도메인(스키마 포함)과 함께 범위 접두사(-sp)를 제공하고, 범위 필터(-sf)를 사용하여 결과를 관련 도메인으로만 필터링하십시오.```
xnLinkFinder -i target_burp.xml -o target_burp.txt -sp https://www.target.com -sf target.* -ow -spo -inc -vv
### ZAP 프로젝트에서 링크 찾기 - 기본
ZAP에서, 검색하려는 항목을 선택하려면 예를 들어 History를 강조 표시하고 `Export` 메뉴를 클릭한 다음 `Save Messages...` (또는 이전 버전에서는 `Export Messages to File...`)를 선택하세요. 그러면 검색하려는 모든 요청과 응답이 포함된 ASCII 텍스트 파일을 저장할 수 있습니다.
파일에서 모든 링크를 가져오려면 (심지어 HUGE 파일에서도 모든 링크를 얻을 수 있습니다):```
xnLinkFinder -i target_zap.txt
참고: xnLinkFinder는 -i로 전달된 파일의 첫 번째 줄이 ==== 99 ========== 또는 ===99 ========== 형식일 경우, ZAP ASCII 텍스트 파일을 처리하려는 것으로 가정합니다.
Caido에서 History 섹션으로 이동한 후 Export 옵션을 선택합니다.
Caido Pro 또는 Enterprise 버전을 사용 중이라면 Export current rows 옵션을 선택하고 As CSV를 선택합니다. Exports 섹션으로 이동하여 CSV 파일을 다운로드합니다. 그런 다음 입력으로 전달합니다:``` xnLinkFinder -i 2023-03-18-010332_csv_requests.csv
If you are using Caido Community edition, then you will have to choose the **Export all** option and pick **As CSV**. Go to the **Exports** section and download the CSV file. As you have the full history, you will want to remove anything that is not relevant from the CSV file. Use the example below, where `redbull` is the main part of the domains of the target you are looking at.```
cat 2023-03-18-010332_csv_requests.csv | grep -E '^id|^[0-9]+,[^,]*redbull' > caido_redbull.csv
xnLinkFinder -i caido_redbull.csv
참고: xnLinkFinder는 -i로 전달된 파일의 첫 번째 줄이 id,host,method 형식인 경우, Caido 내보내기 CSV 파일을 처리하려고 하는 것으로 가정합니다.
HAR 파일은 HTTP 요청 및 응답 목록을 포함하는 JSON 파일입니다. HTTP 트래픽을 저장하는 일반적인 형식입니다. 대부분의 웹 브라우저에서 일반적으로 개발자 도구의 네트워크 탭에서 HAR 파일을 내보낼 수 있습니다. 파일을 입력으로 전달하세요:``` xnLinkFinder -i browser.har
NOTE: xnLinkFinder는 파일 이름이 `.har`로 끝나거나 파일의 첫 번째 줄에 `"log"`가 포함되고 `{`로 시작하면 HAR 파일을 처리하려는 것으로 간주합니다.
### Waymore 결과 디렉토리에서 링크 찾기
[waymore](https://github.com/xnl-h4ck3r/waymore) 도구는 다양한 타사 API에서 URL을 가져오고, 다양한 소스에서 보관된 응답을 다운로드하는 데 사용할 수 있습니다. `xnLinKFinder`에 waymore 결과 디렉토리를 전달하면 보관된 응답의 내용을 검색하고, `waymore.txt`의 요청 URL과 `waymore_index.txt`(또는 이전 버전 `waymore`의 `index.txt`)의 보관된 URL에서도 링크를 가져와 더 많은 링크를 얻습니다. `-d`/`--depth`가 0이면 `waymore_index.txt`의 URL은 반환되지만 요청되지는 않습니다.```
xnLinkFinder -i ~/Tools/waymore/results/target.com
참고: 일반 디렉토리로 전달되지만, xnLinkFinder는 이를 waymore 결과 디렉토리로 판단하고 그에 따라 처리합니다. 이는 URL 파일의 기본 명명 규칙이 waymore.txt이고 해당 파일이 보관된 파일과 동일한 디렉토리에 있다는 사실에 의존합니다 (기본적으로 그렇습니다).
xnLinkFinder를 다른 도구로 파이프할 수 있습니다. 모든 오류는 stderr로 전송되고, 발견된 링크는 stdout으로 전송됩니다. 출력 파일은 다음 프로그램으로 파이프되는 링크 외에도 여전히 생성됩니다. 그러나 잠재적 매개변수는 다음 프로그램으로 파이프되지 않지만 파일에는 계속 기록됩니다. 예를 들어:```
xnLinkFinder -i redbull.com -sp https://redbull.com -sf rebbull.* -d 3 | unfurl keys | sort -u
또한 `-i` 대신 `stdin`을 통해 입력을 전달할 수 있습니다.```
cat redbull_subs.txt | xnLinkFinder -sp https://redbull.com -sf rebbull.* -d 3
NOTE: 파이프로 Burp, ZAP, Caido, HAR 파일을 전달할 수 없습니다. 이러한 파일은 -i를 사용하여 전달해야 합니다.
-sp를 사용하세요. 이는 단일 범위 도메인 또는 여러 범위 도메인이 포함된 파일일 수 있습니다.
아래는 사용되는 형식의 예시입니다 (경로를 포함하지 않아야 하며, 와일드카드를 사용하지 않습니다. 스키마는 선택 사항이지만 기본값은 http입니다): ```
http://www.target.com
https://target-payments.com
https://static.target-cdn.com
만약 링크에 도메인이 없는 경우, 예를 들어 /path/to/example.js가 발견되면 -sp http://www.target.com을 전달하면 출력 결과는 http://www.target.com/path/to/example.js가 되며, 깊이(-d)가 1보다 크면 해당 URL로 요청을 보내 더 많은 링크를 검색할 수 있습니다. -sp를 사용하여 도메인 파일을 전달하면 출력에는 각 도메인 뒤에 /path/to/example.js가 포함되어 더 많은 링크를 찾을 가능성이 높아집니다.
-sp를 사용하면서도 원래 링크 /path/to/example.js(도메인 없이)를 출력에 추가로 반환하려면 -spo 인수를 전달합니다.-sf를 사용하세요. 이렇게 하면 출력에 관련 도메인만 반환되며, 더 중요한 것은 깊이(-d)가 1보다 큰 경우 범위를 벗어난 대상에 대해 링크나 매개변수를 검색하지 않습니다. 이는 단일 범위 도메인이거나 여러 범위 도메인이 포함된 파일일 수 있습니다. 아래는 사용되는 형식의 예입니다 (스키마나 경로는 포함하지 않음): ```
target.*
target-payments.com
static.target-cdn.com
이것은 링크 도메인만 필터링하기 위한 것입니다.
-ra를 사용하세요. 정규식 표현이 예상대로 작동하는지 확인하려면 https://regex101.com/을 사용하는 것이 좋습니다.-v 옵션을 사용하세요.-vv 옵션을 사용하면 발생하는 오류가 표시될 수 있으며, 이를 해결할 수 있거나 GitHub에 이슈로 제출할 수 있습니다.-c), 헤더(-H) 및 정규식(-ra) 값은 작은따옴표 안에 전달하세요. 예: -ra '/api/v[0-9]\.[0-9]\*'-o 옵션을 설정하여 Links의 기본 출력 파일 이름인 output.txt 대신 특정 출력 파일 이름을 지정하세요. 대규모 검색을 계획 중이라면 -v 옵션과 함께 깊이 2부터 시작하여 반환되는 내용을 확인하세요. 그런 다음 Depth를 증가시킬 수 있으며, 새 출력은 -ow를 전달하지 않는 한 기존 파일에 추가됩니다.-op 옵션을 설정하여 Potential Parameters의 기본 출력 파일 이름인 parameters.txt 대신 특정 출력 파일 이름을 지정하세요. 출력은 를 전달하지 않는 한 기존 파일에 추가됩니다.문제가 발생하거나 개선 아이디어가 있다면 언제든지 Github에 이슈를 제출해 주세요. 문제가 있을 경우, 실행한 정확한 명령어와 문제에 대한 상세한 설명을 제공해 주시면 도움이 됩니다. 가능하면 -vv로 실행하여 문제를 재현하고 표시되는 오류 메시지를 알려주세요.
도메인에 대한 활성 링크 찾기:
...
파이프 입력 및 출력:
행운을 빌며 좋은 사냥 되세요! 도구(또는 다른 도구)를 정말 좋아하거나 멋진 현상금을 찾는 데 도움이 되었다면 커피 한 잔 사주세요! ☕ (카페인이 필요해요!)
🤘 /XNL-h4ck3r
cli-ow-ow/-sp/-spkf'name1=value1; name2=value2;''Header1: value1; Header2: value2;'/api/v[0-9]\.[0-9]\*-sp--scope-prefixconfig.ymlcareers,forumLINK-URL [ORIGIN-URL](PREFIXED)./../-i-u desktop mobiledesktopmobileset-top-boxesgame-consolemobile-applemobile-androidmobile-windowsmobile-u--user-agent-ihttp://127.0.0.1:8080http://user:[email protected]:8000socks5://host:port<script><style><noscript><template>~/.config/xnLinkFinderconfig.ymlrespParamPathWords가 True이면 -nwlpm/--no-wordlist-parameters도 전달되지 않는 한 이 인수는 효과가 없습니다.-itruefalseconfig.ymlcommonTLDsFalserespParamPathWords † - 검색된 링크의 경로 단어를 잠재적 매개변수로 추가할지 여부: True 또는 FalserespParamJSON † - 응답의 MIME 유형에 JSON이 포함된 경우 JSON 키 값을 잠재적 매개변수로 추가할지 여부: True 또는 FalserespParamJSVars † - var, let 또는 const로 설정된 자바스크립트 변수를 잠재적 매개변수로 추가할지 여부: True 또는 FalserespParamXML † - 응답의 MIME 유형에 XML이 포함된 경우 XML 속성 값을 잠재적 매개변수로 추가할지 여부: True 또는 FalserespParamInputField † - 응답의 MIME 유형에 HTML 또는 JAVASCRIPT가 포함된 경우(HTML이 HTML 내에 구축될 수 있으므로) INPUT(또는 TEXTAREA/SELECT/BUTTON) 필드의 NAME 및 ID 속성을 잠재적 매개변수로 추가할지 여부: True 또는 FalserespParamMetaName † - 응답의 MIME 유형에 HTML이 포함된 경우 META 태그의 NAME 속성을 잠재적 매개변수로 추가할지 여부: True 또는 FalsewordsContentTypes - 쉼표로 구분된 문자열 목록(예: text/html,text/plain). 대상별 단어 목록에 포함될 단어를 검색할 응답 콘텐츠 유형을 지정합니다.stopWords - 쉼표로 구분된 문자열 목록(예: then,this,that). 대상별 단어 목록에서 제외할 단어를 지정합니다. 이 기본 목록은 처음에 영어 한정사, 등위 접속사, 전치사와 Python 머신러닝 라이브러리 Scikit-Learn의 중단 단어 목록으로 구성됩니다.commonTLDs - 가장 일반적인 TLD들의 쉼표로 구분된 목록. -all/--all-tlds 인수가 전달되지 않는 한, 이 목록에 있는 TLD를 가진 도메인의 링크만 반환됩니다.-ow-d)를 사용할 경우 일부 사이트가 동적 링크를 사용하여 계속 새로운 링크를 찾게 될 수 있으니 주의하세요. 새 링크가 더 이상 발견되지 않으면 xnlLinkFinder는 검색을 중단합니다. 중지 플래그(s429, s403, sTO, sCE)를 제공하는 것도 고려해야 합니다.-d 값)가 높고 리소스가 제한된 상태에서 많은 수의 링크를 찾는 경우, 프로그램은 메모리 임계값(-m)에 도달하면 중단되고 데이터를 유지한 채 정상 종료됩니다.Ctrl-C 사용)하기로 결정했다면 인내심을 가지고 기다리세요. 수집된 모든 데이터는 정상 종료 전에 저장됩니다.-orig 옵션을 사용하면 링크가 발견된 URL이 표시됩니다. 동일한 링크가 여러 소스에서 발견된 경우 출력에 중복 링크가 있을 수 있지만, 대괄호 안에 원본 URL이 접미사로 추가됩니다.desktop입니다(-uc/--user-agent-custom 인수를 사용하지 않는 한). 사용자 에이전트 그룹에 따라 다른 링크를 가질 수 있는 대상이 있다면, 예를 들어 -u desktop mobile과 같이 지정하세요(공백으로 구분). mobile 사용자 에이전트 옵션은 mobile-apple, mobile-android 및 mobile-windows의 조합입니다. 가능한 값은 desktop, mobile, set-top-boxes, game-console입니다.-i가 디렉터리로 설정되면 해당 디렉터리 루트에 있는 파일의 내용에서 링크를 검색합니다. 하위 디렉터리의 파일은 검색되지 않습니다. -mfs로 설정된 크기(기본값: 500MB)를 초과하는 파일은 건너뜁니다.-replay-proxy 옵션을 사용할 때 요청 시간이 더 오래 걸릴 수 있습니다. Request Timeout 오류가 더 많이 발생하기 시작하면(-v 또는 -vv 옵션을 사용하면 오류가 표시됨) -t를 사용하여 시간 제한을 높이는 것을 고려하세요.-ascii-only를 전달하는 것을 고려하세요. 이는 이진 데이터에서 반환될 수 있는 많은 거짓 양성을 제거할 수 있습니다.-d/--depth 인수를 전달하는 것이 좋으며, 다른 콘텐츠가 발견될 수 있다고 생각되면 -u/--user-agent도 전달하세요(예: -u desktop mobile).-owl/--output-wordlist 파일 이름을 전달하여 대상별 단어 목록을 저장하세요. 이 목록은 대상 퍼징 시 매우 유용할 수 있습니다.wordsContentTypes 섹션에 명시된 콘텐츠 유형의 응답만 검색됩니다. 기본값은 text/html,application/xml,application/json,text/plain입니다.<meta> 태그 콘텐츠에서 단어 추출 조건:
Property가 og:title 또는 og:description인 경우Name이 description,keywords,twitter:title 또는 twitter:description인 경우alt 속성에서 추출한 단어<style>, <script> 및 <link> 태그 제외)-swf/--stopwords-file 옵션을 사용하여 추가 중지 단어를 제공하세요. 대상에 따라 다른 언어의 중지 단어를 포함할 수 있습니다. 중지 단어는 자연어 처리(NLP)에서 사용되며 다양한 요구에 맞는 많은 중지 단어 목록이 온라인에서 찾을 수 있습니다.