**응답의 HTTP 헤더 및 쿠키**는 사용 중인 **기술** 및/또는 **버전**을 식별하는 데 매우 유용할 수 있습니다. **Nmap 스캔**은 서버 버전을 식별할 수 있지만 [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech)또는 [**https://builtwith.com/**](https://builtwith.com)**:**와 같은 도구도 유용할 수 있습니다.
[**testssl.sh**](https://github.com/drwetter/testssl.sh)를 사용하여 **취약점**을 확인하고([**a2sv**](https://github.com/hahwul/a2sv)를 사용하여 취약점을 재확인하세요. (버그 바운티 프로그램에서는 아마도 이러한 유형의 취약점이 허용되지 않을 것입니다)
웹 내부에 어떤 종류의 **스파이더**를 실행합니다. 스파이더의 목표는 테스트된 애플리케이션에서 **가능한 많은 경로를 찾는 것**입니다. 따라서 웹 크롤링 및 외부 소스를 사용하여 가능한 많은 유효한 경로를 찾아야 합니다.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML 스파이더, JS 파일 및 외부 소스(LinkFinder)에서 링크를 찾습니다 (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML 스파이더, JS 파일 및 외부 소스(Archive.org)에서 링크를 찾습니다.
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML 스파이더, "juicy files"도 표시합니다.
* [**evine** ](https://github.com/saeeddhqan/evine)(go): 대화식 CLI HTML 스파이더. 또한 Archive.org에서 검색합니다.
* [**meg**](https://github.com/tomnomnom/meg) (go): 이 도구는 스파이더가 아니지만 유용할 수 있습니다. 호스트 및 경로가 포함된 파일을 지정하면 meg가 각 호스트의 각 경로를 가져와 응답을 저장합니다.
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS 렌더링 기능을 갖춘 HTML 스파이더입니다. 그러나 유지 관리되지 않는 것으로 보이며, 미리 컴파일된 버전이 오래되었고 현재 코드는 컴파일되지 않습니다.
* [**gau**](https://github.com/lc/gau) (go): 외부 제공업체(wayback, otx, commoncrawl)를 사용하는 HTML 스파이더
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): 이 스크립트는 매개변수가 포함된 URL을 찾아 나열합니다.
* [**galer**](https://github.com/dwisiswant0/galer) (go): JS 렌더링 기능을 갖춘 HTML 스파이더
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): JS 파일에서 새 경로를 검색할 수 있는 JS 뷰티파이 기능을 갖춘 HTML 스파이더입니다. [JSScanner](https://github.com/dark-warlord14/JSScanner)도 살펴볼 가치가 있습니다.
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): HTML 소스 및 포함된 javascript 파일에서 엔드포인트를 추출합니다. 버그 헌터, 레드 팀, 정보 보안 닌자에 유용합니다.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Tornado 및 JSBeautifier를 사용하여 JavaScript 파일에서 상대적인 URL을 구문 분석하는 Python 2.7 스크립트입니다. AJAX 요청을 쉽게 발견하는 데 유용합니다. 유지 관리되지 않는 것으로 보입니다.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): 파일(HTML)이 주어지면 미관한(압축된) 파일에서 상대적인 URL을 찾아 추출하는 데 사용되는 귀여운 정규식을 사용합니다.
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): 무헤드 브라우저에서 페이지를 로드하고 페이지 로드에 사용된 모든 URL을 출력합니다.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): 이전 도구의 여러 옵션을 혼합한 콘텐츠 발견 도구
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JS 파일에서 경로 및 매개변수를 찾기 위한 Burp 확장 프로그램
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URL이 주어지면 JS 코드를 아름답게 가져옵니다.
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): 주어진 대상의 엔드포인트를 발견하는 데 사용되는 도구입니다.
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** wayback machine에서 링크를 발견합니다(wayback에서 응답을 다운로드하고 더 많은 링크를 찾습니다)
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): 특정 정규식을 사용하여 크롤링(양식 작성 포함)하고 민감한 정보를 찾습니다.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): 사이버 보안 전문가를 위해 설계된 고급 다기능 GUI 웹 보안 크롤러/스파이더
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): JavaScript 소스 코드에서 URL, 경로, 비밀 및 기타 흥미로운 데이터를 추출하기 위한 Go 패키지 및 [명령줄 도구](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice)입니다.
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): 요청에서 매개변수 및 엔드포인트를 추출하여 퍼징 및 열거를 위한 사용자 정의 워드리스트를 생성하는 간단한 **Burp Suite 확장 프로그램**입니다.
루트 폴더부터 **무차별 대입**을 시작하고 **이 방법**을 사용하여 찾은 **모든 디렉토리**를 무차별 대입하고 **스파이더링**에 의해 발견된 모든 디렉토리를 무차별 대입합니다(이 무차별 대입을 **재귀적**으로 수행하고 발견된 디렉토리의 이름을 사용된 워드리스트의 시작 부분에 추가합니다).\
도구:
* **Dirb** / **Dirbuster** - Kali에 포함되어 있으며 **오래되었지만**(그리고 **느립니다**) 기능이 있습니다. 자동 서명된 인증서 및 재귀적 검색을 허용합니다. 다른 옵션과 비교하여 너무 느립니다.
* [**링크 깨진 링크 확인기**](https://github.com/stevenvachon/broken-link-checker): 탈취 가능성이 있는 HTML 내의 깨진 링크 찾기
* **파일 백업**: 모든 파일을 찾은 후, 모든 실행 파일("_.php_", "_.aspx_" 등)의 백업을 찾아보세요. 백업의 일반적인 변형은 다음과 같습니다: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp 및 file.old._ [**bfac**](https://github.com/mazen160/bfac) **또는** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**를 사용할 수도 있습니다.**
* **새 매개변수 발견**: [**Arjun**](https://github.com/s0md3v/Arjun)**, **[**parameth**](https://github.com/maK-/parameth)**, **[**x8**](https://github.com/sh1yo/x8) **및** [**Param Miner**](https://github.com/PortSwigger/param-miner) **와 같은 도구를 사용하여 숨겨진 매개변수를 발견할 수 있습니다. 가능하다면 각 실행 웹 파일에서 숨겨진 매개변수를 찾아보세요.**
* _Arjun 모든 기본 워드리스트:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* **코멘트:** 모든 파일의 코멘트를 확인하면 **자격 증명**이나 **숨겨진 기능**을 찾을 수 있습니다.
* **CTF**를 진행 중이라면, 페이지의 **오른쪽**에 **수백 개의 공백**을 사용하여 데이터를 숨겨 브라우저로 소스 코드를 열어도 데이터를 보이지 않게 하는 **코멘트**에 **정보**를 숨기는 "일반적인" 트릭이 있습니다. 다른 가능성은 **여러 개의 새 줄**을 사용하여 웹 페이지 **하단**에 코멘트에 **정보**를 숨기는 것입니다.
* **API 키**: **API 키**를 찾으면 다양한 플랫폼의 API 키를 사용하는 방법을 안내하는 가이드가 있습니다: [**keyhacks**](https://github.com/streaak/keyhacks)**, **[**zile**](https://github.com/xyele/zile.git)**, **[**truffleHog**](https://github.com/trufflesecurity/truffleHog)**, **[**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**, **[**RegHex**](https://github.com/l4yton/RegHex\)/)**, **[**DumpsterDive**](https://github.com/securing/DumpsterDiver)**, **[**EarlyBird**](https://github.com/americanexpress/earlybird)
* Google API 키: **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik와 같은 API 키를 찾으면 프로젝트 [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner)를 사용하여 키가 액세스할 수 있는 API를 확인할 수 있습니다.
* **API 엔드포인트**를 찾으면 [테스트해야 합니다](web-api-pentesting.md). 이들은 파일이 아니지만 아마도 파일처럼 보일 것입니다.
* **JS 파일**: JS 파일에서 경로를 추출할 수 있는 여러 도구가 언급되었습니다. 또한, 발견된 각 JS 파일을 **모니터링**하는 것이 흥미로울 수 있습니다. 때로는 코드에 잠재적인 취약점이 도입되었음을 나타낼 수 있습니다. 예를 들어 [**JSMon**](https://github.com/robre/jsmon)**을 사용할 수 있습니다.**
* 발견된 JS 파일을 [**RetireJS**](https://github.com/retirejs/retire.js/) 또는 [**JSHole**](https://github.com/callforpapers-source/jshole)로 취약한지 확인해야 합니다.
* **Javascript Deobfuscator 및 Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
해당 코드로 응답하는 페이지가 있으면 아마도 잘못 구성된 프록시입니다. `GET https://google.com HTTP/1.1` (호스트 헤더 및 기타 일반적인 헤더와 함께)와 같은 HTTP 요청을 보내면 **프록시**가 _**google.com**_에 액세스하려고 시도하고 SSRF를 발견할 수 있습니다.
**NTLM 인증 - 정보 노출**
인증을 요청하는 실행 중인 서버가 **Windows**인 경우 또는 자격 증명을 요청하고 **도메인 이름**을 요청하는 경우 정보 노출을 유발할 수 있습니다.\
`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` 헤더를 **전송**하면 **NTLM 인증**이 작동하는 방식으로 인해 서버가 "WWW-Authenticate" 헤더 내부 정보 (IIS 버전, Windows 버전 등)로 응답합니다.\
이를 **자동화**하려면 "_http-ntlm-info.nse_" **nmap 플러그인**을 사용할 수 있습니다.
**HTTP Redirect (CTF)**
**리다이렉션**에 **콘텐츠**를 넣을 수 있습니다. 이 콘텐츠는 사용자에게 표시되지 않을 것이므로 (브라우저가 리다이렉션을 실행할 것이기 때문에) 그 안에 **숨겨진 내용**이 있을 수 있습니다.
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}
<summary><strong>htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 제로부터 전문가까지 배우세요</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team 전문가)</strong></a><strong>!</strong></summary>