hacktricks/network-services-pentesting/pentesting-web
2024-04-18 03:39:53 +00:00
..
buckets Translated to Korean 2024-02-10 21:30:13 +00:00
electron-desktop-apps Translated ['crypto-and-stego/hash-length-extension-attack.md', 'forensi 2024-04-18 03:39:53 +00:00
php-tricks-esp Translated ['network-services-pentesting/pentesting-web/php-tricks-esp/R 2024-04-07 23:06:30 +00:00
tomcat Translated ['network-services-pentesting/pentesting-web/tomcat/README.md 2024-04-11 00:57:26 +00:00
403-and-401-bypasses.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-29 21:25:26 +00:00
aem-adobe-experience-cloud.md Translated to Korean 2024-02-10 21:30:13 +00:00
angular.md Translated to Korean 2024-02-10 21:30:13 +00:00
apache.md Translated to Korean 2024-02-10 21:30:13 +00:00
artifactory-hacking-guide.md Translated to Korean 2024-02-10 21:30:13 +00:00
bolt-cms.md Translated to Korean 2024-02-10 21:30:13 +00:00
cgi.md Translated to Korean 2024-02-10 21:30:13 +00:00
code-review-tools.md Translated ['network-services-pentesting/pentesting-web/code-review-tool 2024-04-18 02:45:22 +00:00
dotnetnuke-dnn.md Translated to Korean 2024-02-10 21:30:13 +00:00
drupal.md Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/ 2024-04-07 23:01:30 +00:00
flask.md Translated to Korean 2024-02-10 21:30:13 +00:00
git.md Translated to Korean 2024-02-10 21:30:13 +00:00
golang.md Translated to Korean 2024-02-10 21:30:13 +00:00
grafana.md Translated to Korean 2024-02-10 21:30:13 +00:00
graphql.md GitBook: No commit message 2024-04-06 18:36:54 +00:00
gwt-google-web-toolkit.md Translated to Korean 2024-02-10 21:30:13 +00:00
h2-java-sql-database.md Translated to Korean 2024-02-10 21:30:13 +00:00
iis-internet-information-services.md Translated ['crypto-and-stego/hash-length-extension-attack.md', 'forensi 2024-04-18 03:39:53 +00:00
imagemagick-security.md Translated to Korean 2024-02-10 21:30:13 +00:00
jboss.md Translated ['forensics/basic-forensic-methodology/specific-software-file 2024-02-18 14:48:35 +00:00
jira.md Translated ['binary-exploitation/basic-binary-exploitation-methodology/t 2024-04-17 05:41:19 +00:00
joomla.md Translated ['network-services-pentesting/pentesting-web/joomla.md'] to k 2024-04-10 11:57:29 +00:00
jsp.md Translated to Korean 2024-02-10 21:30:13 +00:00
laravel.md Translated to Korean 2024-02-10 21:30:13 +00:00
moodle.md Translated ['forensics/basic-forensic-methodology/specific-software-file 2024-02-18 14:48:35 +00:00
nginx.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-29 21:25:26 +00:00
nodejs-express.md Translated to Korean 2024-02-10 21:30:13 +00:00
put-method-webdav.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-29 21:25:26 +00:00
python.md Translated to Korean 2024-02-10 21:30:13 +00:00
README.md Translated ['binary-exploitation/basic-binary-exploitation-methodology/t 2024-04-17 05:41:19 +00:00
rocket-chat.md Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/ 2024-04-07 23:01:30 +00:00
special-http-headers.md Translated ['generic-methodologies-and-resources/external-recon-methodol 2024-04-10 13:40:56 +00:00
spring-actuators.md Translated to Korean 2024-02-10 21:30:13 +00:00
symphony.md Translated to Korean 2024-02-10 21:30:13 +00:00
tomcat.md Translated ['README.md', 'forensics/basic-forensic-methodology/partition 2024-03-14 23:45:38 +00:00
uncovering-cloudflare.md Translated ['generic-methodologies-and-resources/external-recon-methodol 2024-04-10 13:40:56 +00:00
vmware-esx-vcenter....md Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/ 2024-04-07 23:01:30 +00:00
waf-bypass.md Translated to Korean 2024-02-10 21:30:13 +00:00
web-api-pentesting.md Translated ['linux-hardening/privilege-escalation/README.md', 'network-s 2024-04-16 04:05:07 +00:00
werkzeug.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-29 21:25:26 +00:00
wordpress.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-29 21:25:26 +00:00

80,443 - 웹 Pentesting 방법론

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅이 될 때까지 AWS 해킹을 배우세요**!

HackTricks를 지원하는 다른 방법:

해킹 경력에 관심이 있다면, 해킹할 수 없는 것을 해킹하고 싶다면 - 저희가 채용 중입니다! (포괄적인 폴란드어 작문 및 구사 능력 필요).

{% embed url="https://www.stmcyber.com/careers" %}

기본 정보

웹 서비스는 가장 일반적이고 광범위한 서비스이며 다양한 종류의 취약점이 존재합니다.

기본 포트: 80 (HTTP), 443(HTTPS)

PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0

웹 API 안내

{% content-ref url="web-api-pentesting.md" %} web-api-pentesting.md {% endcontent-ref %}

방법론 요약

이 방법론에서는 도메인(또는 서브도메인)을 공격할 것으로 가정합니다. 따라서 발견된 각 도메인, 서브도메인 또는 스코프 내부에 웹 서버가 있는 IP에 대해이 방법론을 적용해야합니다.

  • 먼저 웹 서버에서 사용되는 기술식별합니다. 기술을 성공적으로 식별하면 나머지 테스트 중에 기억해야 할 트릭을 찾아보세요.
  • 해당 기술 버전의 알려진 취약점이 있나요?
  • 잘 알려진 기술을 사용 중인가요? 더 많은 정보를 추출하기 위한 유용한 트릭이 있나요?
  • 실행할 전문 스캐너가 있나요 (예: wpscan)?
  • 일반 목적 스캐너를 실행합니다. 무언가를 발견할지 또는 흥미로운 정보를 찾을지 알 수 없습니다.
  • 초기 확인부터 시작하세요: 로봇, 사이트맵, 404 오류 및 SSL/TLS 스캔 (HTTPS의 경우).
  • 웹 페이지를 스파이더링합니다: 가능한 모든 파일, 폴더사용 중인 매개변수를 찾아보세요. 또한 특별한 발견을 확인하세요.
  • 브루트 포싱이나 스파이더링 중에 새 디렉토리가 발견될 때마다 해당 디렉토리를 스파이더링해야합니다.
  • 디렉토리 브루트 포싱: 발견된 모든 폴더를 브루트 포싱하여 새 파일디렉토리를 찾으세요.
  • 브루트 포싱이나 스파이더링 중에 새 디렉토리가 발견될 때마다 해당 디렉토리를 브루트 포싱해야합니다.
  • 백업 확인: 일반적인 백업 확장자를 추가하여 발견된 파일의 백업을 찾을 수 있는지 테스트하세요.
  • 매개변수 브루트 포싱: 숨겨진 매개변수를 찾아보세요.
  • 모든 사용자 입력을 수용하는 모든 엔드포인트식별한 후 해당 취약점을 확인하세요.
  • 이 체크리스트를 따르세요

서버 버전 (취약점이 있나요?)

식별

실행 중인 서버 버전에 대한 알려진 취약점이 있는지 확인하세요.
응답의 HTTP 헤더 및 쿠키는 사용 중인 기술 및/또는 버전을 식별하는 데 매우 유용할 수 있습니다. Nmap 스캔은 서버 버전을 식별할 수 있지만 whatweb, webtech 또는 https://builtwith.com/**:**와 같은 도구도 유용할 수 있습니다.

whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2

웹 응용 프로그램 취약점 버전을 검색하십시오

WAF 여부 확인

웹 기술 트릭

다양한 잘 알려진 기술에서 취약점을 찾는 데 도움이 되는 몇 가지 트릭:

같은 도메인이 다른 포트, 폴더서브도메인에서 다른 기술을 사용할 수 있다는 점을 고려하십시오.
웹 응용 프로그램이 이전에 나열된 잘 알려진 기술/플랫폼 또는 다른 것을 사용하는 경우 인터넷에서 새로운 트릭을 검색하고 저에게 알려주세요!

소스 코드 검토

응용 프로그램의 소스 코드github제공되는 경우, 응용 프로그램의 백색 상자 테스트를 진행하는 것 외에도 현재 블랙박스 테스트에 유용한 일부 정보가 있을 수 있습니다:

  • 변경 로그 또는 Readme 또는 버전 정보가 웹을 통해 액세스 가능한 파일이 있는지 확인하십시오.
  • 자격 증명은 어디에 저장되며 어떻게 저장되었습니까? 자격 증명 (사용자 이름 또는 비밀번호)이 있는 (액세스 가능한?) 파일이 있습니까?
  • 비밀번호평문, 암호화되었거나 사용된 해싱 알고리즘은 무엇입니까?
  • 어떤 것을 암호화하는 데 마스터 키를 사용하고 있습니까? 사용된 알고리즘은 무엇입니까?
  • 어떤 취약점을 이용하여 이러한 파일에 액세스할 수 있습니까?
  • github의 (해결된 것과 해결되지 않은 것) 이슈흥미로운 정보가 있습니까? 또는 커밋 히스토리에 (이전 커밋에 비밀번호가 포함된 것일 수도 있음) 있습니까?

{% content-ref url="code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}

자동 스캐너

일반 목적 자동 스캐너

nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>

# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"

CMS 스캐너

만약 CMS가 사용된다면 스캐너를 실행하는 것을 잊지 마세요. 어쩌면 중요한 정보가 발견될 수 있습니다:

Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin 웹사이트의 보안 취약점을 찾습니다. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal 또는 (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress

cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs

이 시점에서는 이미 클라이언트가 사용하는 웹 서버에 대한 일부 정보(제공된 데이터가 있는 경우)와 테스트 중에 염두에 두어야 할 몇 가지 요령이 있어야 합니다. 운이 좋다면 CMS를 찾았고 일부 스캐너를 실행했을 수도 있습니다.

웹 애플리케이션 발견 단계별 절차

이제부터 웹 애플리케이션과 상호 작용을 시작할 것입니다.

초기 확인 사항

흥미로운 정보가 있는 기본 페이지:

  • /robots.txt
  • /sitemap.xml
  • /crossdomain.xml
  • /clientaccesspolicy.xml
  • /.well-known/
  • 주요 및 보조 페이지의 주석도 확인하세요.

에러 강제

웹 서버는 이상한 데이터가 전송될 때 예기치 않게 작동할 수 있습니다. 이는 취약점을 노출하거나 민감한 정보를 누설할 수 있습니다.

  • /whatever_fake.php (.aspx, .html 등)와 같은 가짜 페이지에 액세스
  • 쿠키 값매개 변수 값에 "[]", "]]", 및 "[["를 추가하여 오류 생성
  • URL 끝에 **/~randomthing/%s**로 입력하여 오류 생성
  • PATCH, DEBUG 등과 같은 다른 HTTP 동사 또는 잘못된 FAKE 시도

파일 업로드 가능 여부 확인 (PUT 동사, WebDav)

WebDav활성화되어 있지만 루트 폴더에 파일을 업로드할 권한이 충분하지 않은 경우 다음을 시도해 보세요:

  • 자격 증명 브루트 포스
  • WebDav를 통해 파일을 업로드하여 웹 페이지 내의 다른 폴더에 업로드할 수 있는 권한이 있는지 확인하세요.

SSL/TLS 취약점

  • 응용 프로그램이 HTTPS 사용을 강제하지 않는 경우, MitM에 취약합니다.
  • 응용 프로그램이 HTTP를 사용하여 민감한 데이터(암호)를 전송하는 경우, 높은 취약성이 있습니다.

testssl.sh를 사용하여 취약점을 확인하고(버그 바운티 프로그램에서는 아마도 이러한 유형의 취약점이 허용되지 않을 것입니다) a2sv를 사용하여 취약점을 다시 확인하세요:

./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also

# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>

SSL/TLS 취약점에 대한 정보:

스파이더링

웹 내부에 어떤 종류의 스파이더를 실행합니다. 스파이더의 목표는 테스트된 애플리케이션에서 가능한 많은 경로를 찾는 것입니다. 따라서 웹 크롤링 및 외부 소스를 사용하여 가능한 많은 유효한 경로를 찾아야 합니다.

  • gospider (go): HTML 스파이더, JS 파일 및 외부 소스(LinkFinder)에서 링크 찾기 (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
  • hakrawler (go): HML 스파이더, JS 파일 및 외부 소스(Archive.org)에 대한 LinkFider 포함.
  • dirhunt (python): HTML 스파이더, "juicy files"도 표시합니다.
  • evine (go): 대화식 CLI HTML 스파이더. 또한 Archive.org에서 검색합니다.
  • meg (go): 이 도구는 스파이더가 아니지만 유용할 수 있습니다. 호스트 및 경로가 포함된 파일을 지정하면 meg가 각 호스트의 각 경로를 가져와 응답을 저장합니다.
  • urlgrab (go): JS 렌더링 기능을 갖춘 HTML 스파이더. 그러나 유지 관리되지 않는 것으로 보이며, 사전 컴파일된 버전이 오래되었고 현재 코드는 컴파일되지 않는 것으로 보입니다.
  • gau (go): 외부 제공업체(wayback, otx, commoncrawl)를 사용하는 HTML 스파이더
  • ParamSpider: 이 스크립트는 매개변수가 포함된 URL을 찾아 나열합니다.
  • galer (go): JS 렌더링 기능을 갖춘 HTML 스파이더.
  • LinkFinder (python): JS 파일에서 새 경로를 검색할 수 있는 JS 뷰티파이 기능을 갖춘 HTML 스파이더. JSScanner도 살펴볼 가치가 있습니다.
  • goLinkFinder (go): HTML 소스 및 포함된 javascript 파일에서 엔드포인트를 추출하는 도구. 버그 헌터, 레드 팀, 정보 보안 닌자에 유용합니다.
  • JSParser (python2.7): Tornado 및 JSBeautifier를 사용하여 JavaScript 파일에서 상대적인 URL을 구문 분석하는 Python 2.7 스크립트. AJAX 요청을 쉽게 발견하는 데 유용합니다. 유지 관리되지 않는 것으로 보입니다.
  • relative-url-extractor (ruby): 파일(HTML)이 주어지면 해당 파일에서 상대 URL을 추출하는 데 사용되는 깔끔한 정규식을 사용합니다.
  • JSFScan (bash, 여러 도구): 여러 도구를 사용하여 JS 파일에서 흥미로운 정보 수집.
  • subjs (go): JS 파일 찾기.
  • page-fetch (go): 무헤드 브라우저에서 페이지를 로드하고 페이지 로드에 사용된 모든 URL을 출력합니다.
  • Feroxbuster (rust): 이전 도구의 여러 옵션을 혼합한 콘텐츠 발견 도구
  • Javascript Parsing: JS 파일에서 경로 및 매개변수를 찾기 위한 Burp 확장 프로그램.
  • Sourcemapper: .js.map URL이 주어지면 정리된 JS 코드를 가져올 수 있는 도구
  • xnLinkFinder: 주어진 대상의 엔드포인트를 발견하는 데 사용되는 도구입니다.
  • waymore: wayback machine에서 링크 발견(wayback의 응답을 다운로드하고 더 많은 링크를 찾습니다
  • HTTPLoot (go): 특정 정규식을 사용하여 크롤링(양식 작성 포함)하고 민감한 정보를 찾습니다.
  • SpiderSuite: 사이버 보안 전문가를 위해 설계된 고급 다기능 GUI 웹 보안 크롤러/스파이더
  • jsluice (go): JavaScript 소스 코드에서 URL, 경로, 비밀 및 기타 흥미로운 데이터를 추출하기 위한 Go 패키지 및 명령줄 도구.
  • ParaForge: 요청에서 매개변수 및 엔드포인트를 추출하여 퍼징 및 열거를 위한 사용자 정의 워드리스트를 생성하는 간단한 Burp Suite 확장 프로그램.
  • katana (go): 이 도구는 훌륭합니다.

디렉토리 및 파일 브루트 포스

루트 폴더부터 브루트 포스를 시작하고 이 방법을 사용하여 찾은 모든 디렉토리를 브루트 포스해야 하며 스파이더링에 의해 발견된 모든 디렉토리를 브루트 포스해야 합니다(발견된 디렉토리의 이름을 사용한 워드리스트의 시작 부분에 추가하여 재귀적으로 수행할 수 있습니다).
도구:

  • Dirb / Dirbuster - Kali에 포함되어 있으며 오래되었지만(그리고 느립니다) 기능이 있습니다. 자동 서명된 인증서 및 재귀적 검색을 허용합니다. 다른 옵션과 비교하여 너무 느립니다.
  • Dirsearch (python): 자동 서명된 인증서를 허용하지 않지만 재귀적 검색을 허용합니다.
  • Gobuster (go): 자동 서명된 인증서를 허용하며, 재귀적 검색을 하지 않습니다.
  • Feroxbuster - 빠르며, 재귀적 검색을 지원합니다.
  • wfuzz wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
  • ffuf - 빠릅니다: ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
  • uro (python): 이것은 스파이더가 아니지만 발견된 URL 목록을 사용하여 "중복" URL을 삭제하는 도구입니다.
  • Scavenger: 다양한 페이지의 burp 히스토리에서 디렉토리 목록을 생성하는 Burp 확장 프로그램
  • TrashCompactor: 중복 기능을 가진 URL을 제거합니다(JS 가져오기를 기반으로 함)
  • Chamaleon: 사용된 기술을 감지하고 사용할 워드리스트를 선택하기 위해 wapalyzer를 사용합니다.

추천하는 사전:

브루트 포싱이나 스파이더링 중에 새 디렉토리를 발견할 때마다 브루트 포싱해야 합니다.

각 발견된 파일에서 확인해야 할 사항

  • 링크 깨진 링크 확인기: 탈취 가능성이 있는 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 또는 backup-gen 도구를 사용할 수도 있습니다.
  • 새 매개변수 발견: Arjun, parameth, x8 Param Miner **와 같은 도구를 사용하여 숨겨진 매개변수를 발견할 수 있습니다. 가능하다면 각 실행 가능한 웹 파일에서 숨겨진 매개변수를 찾아보세요.
  • Arjun의 모든 기본 단어 목록: https://github.com/s0md3v/Arjun/tree/master/arjun/db
  • Param-miner의 "params": https://github.com/PortSwigger/param-miner/blob/master/resources/params
  • Assetnote의 "parameters_top_1m": https://wordlists.assetnote.io/
  • nullenc0de의 "params.txt": https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
  • 코멘트: 모든 파일의 코멘트를 확인하세요. 여기서 자격 증명이나 숨겨진 기능을 찾을 수 있습니다.
  • CTF를 진행 중이라면, 페이지의 오른쪽수백 개의 공백을 사용하여 데이터를 숨겨서 소스 코드를 브라우저로 열 때 데이터가 보이지 않도록 하는 것이 일반적인 트릭입니다. 또 다른 가능성은 여러 개의 새 줄을 사용하여 웹 페이지 하단에 코멘트를 숨기는 것입니다.
  • API 키: API 키를 발견하면 다양한 플랫폼의 API 키를 사용하는 방법을 안내하는 가이드가 있습니다: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
  • Google API 키: AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik와 같은 API 키를 발견하면 프로젝트 gmapapiscanner를 사용하여 해당 키가 액세스할 수 있는 API를 확인할 수 있습니다.
  • S3 버킷: 스파이더링 중에 서브도메인이나 링크가 어떤 S3 버킷과 관련이 있는지 확인하세요. 그 경우, 버킷의 권한을 확인하세요.

특별한 발견

스파이더링브루트 포싱을 수행하는 동안 주목해야 할 흥미로운 사항을 발견할 수 있습니다.

흥미로운 파일

  • CSS 파일 내의 다른 파일로의 링크를 찾아보세요.
  • .git 파일을 발견하면 일부 정보를 추출할 수 있습니다.
  • .env 파일을 발견하면 API 키, 데이터베이스 암호 등의 정보를 찾을 수 있습니다.
  • API 엔드포인트를 발견하면 테스트해야 합니다. 이들은 파일이 아니지만 파일처럼 보일 수 있습니다.
  • JS 파일: JS 파일에서 경로를 추출할 수 있는 여러 도구가 언급되었습니다. 또한, 코드에 잠재적인 취약점이 도입되었을 수 있으므로 발견된 각 JS 파일을 모니터링하는 것이 흥미로울 수 있습니다. 예를 들어 JSMon을 사용할 수 있습니다.
  • 발견된 JS 파일을 RetireJS 또는 JSHole로 확인하여 취약한지 확인해야 합니다.
  • Javascript Deobfuscator 및 Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
  • Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
  • JsFuck 해독 (문자:"[]!+"를 사용한 javascript https://ooze.ninja/javascript/poisonjs/)
  • TrainFuck: +72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
  • 여러 경우에는 사용된 정규 표현식을 이해해야 할 수도 있습니다. 이 링크가 유용할 것입니다: https://regex101.com/
  • 또한 양식이 감지된 파일을 모니터링해야 할 수도 있습니다. 매개변수의 변경이나 새 양식의 나타남은 잠재적인 취약 기능을 나타낼 수 있습니다.

403 Forbidden/Basic Authentication/401 Unauthorized (bypass)

{% content-ref url="403-and-401-bypasses.md" %} 403-and-401-bypasses.md {% endcontent-ref %}

502 Proxy Error

해당 코드로 응답하는 페이지가 있으면 아마도 잘못 구성된 프록시입니다. 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)

리다이렉션콘텐츠를 넣을 수 있습니다. 이 콘텐츠는 사용자에게 표시되지 않을 것이므로 (브라우저가 리다이렉션을 실행할 것이기 때문에) 여기에 숨겨진 내용이 있을 수 있습니다.

웹 취약점 확인

이제 웹 애플리케이션의 포괄적인 열거가 수행되었으므로 가능한 많은 취약점을 확인할 차례입니다. 여기에서 체크리스트를 찾을 수 있습니다:

{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %} web-vulnerabilities-methodology.md {% endcontent-ref %}

웹 취약점에 대한 자세한 정보는 다음에서 확인할 수 있습니다:

변경 사항 모니터링 페이지

https://github.com/dgtlmoon/changedetection.io와 같은 도구를 사용하여 취약점을 삽입할 수 있는 수정 사항을 모니터링할 수 있습니다.

해킹 경력에 관심이 있고 해킹할 수 없는 것을 해킹하고 싶다면 - 저희가 채용 중입니다! (유창한 폴란드어 작문 및 구사 능력 필요).

{% embed url="https://www.stmcyber.com/careers" %}

HackTricks 자동 명령어

Protocol_Name: Web    #Protocol Abbreviation if there is one.
Port_Number:  80,443     #Comma separated if there is more than one.
Protocol_Description: Web         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web

Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}

Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}

Entry_5:
Name: Directory Brute Force Non-Recursive
Description:  Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10

Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200

Entry_8:
Name: Nmap Web Vuln Scan
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}

Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration

Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e

Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}
htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요!

다른 방법으로 HackTricks를 지원하는 방법: