hacktricks/pentesting-web/web-vulnerabilities-methodology.md

154 lines
8.7 KiB
Markdown

# 웹 취약점 방법론
<details>
<summary><strong>htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요</strong></a><strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사가 HackTricks에 광고되길 원하거나 PDF로 HackTricks를 다운로드하고 싶다면** [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 굿즈**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [Discord 그룹](https://discord.gg/hRep4RUj7f)** 또는 [텔레그램 그룹](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **해킹 요령을 공유하려면** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하세요.
</details>
모든 웹 펜테스트에는 **취약할 수 있는 숨겨진 곳과 명백한 곳이 여러 군데** 있습니다. 이 게시물은 모든 가능한 곳에서 취약점을 찾았는지 확인하기 위한 체크리스트 역할을 합니다.
## 프록시
{% hint style="info" %}
현재 **웹 애플리케이션**은 일반적으로 **중개 프록시**를 사용하는데, 이러한 프록시는 취약점을 악용할 수 있습니다. 이러한 취약점은 취약한 프록시가 필요하지만 일반적으로 백엔드에 추가적인 취약점이 필요합니다.
{% endhint %}
* [ ] [**Hop-by-hop 헤더 악용**](abusing-hop-by-hop-headers.md)
* [ ] [**캐시 위조/캐시 속임수**](cache-deception/)
* [ ] [**HTTP 요청 스머글링**](http-request-smuggling/)
* [ ] [**H2C 스머글링**](h2c-smuggling.md)
* [ ] [**서버 측 포함/엣지 측 포함**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Cloudflare 노출**](../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)
* [ ] [**XSLT 서버 측 삽입**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**프록시 / WAF 보호 우회**](proxy-waf-protections-bypass.md)
## 사용자 입력
{% hint style="info" %}
대부분의 웹 애플리케이션은 **나중에 처리될 데이터를 입력할 수 있게 허용**합니다.\
서버가 예상하는 데이터의 구조에 따라 일부 취약점이 적용될 수도 있고 아닐 수도 있습니다.
{% endhint %}
### 반사된 값
입력된 데이터가 응답에 어떤 식으로든 반영될 수 있다면 페이지는 여러 문제에 취약할 수 있습니다.
* [ ] [**클라이언트 측 템플릿 삽입**](client-side-template-injection-csti.md)
* [ ] [**명령 삽입**](command-injection.md)
* [ ] [**CRLF**](crlf-0d-0a.md)
* [ ] [**둔감한 마크업**](dangling-markup-html-scriptless-injection/)
* [ ] [**파일 포함/경로 이탈**](file-inclusion/)
* [ ] [**오픈 리다이렉트**](open-redirect.md)
* [ ] [**XSS로의 프로토타입 오염**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**서버 측 포함/엣지 측 포함**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**서버 측 요청 위조**](ssrf-server-side-request-forgery/)
* [ ] [**서버 측 템플릿 삽입**](ssti-server-side-template-injection/)
* [ ] [**역 탭 납빙**](reverse-tab-nabbing.md)
* [ ] [**XSLT 서버 측 삽입**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**XSS**](xss-cross-site-scripting/)
* [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Search**](xs-search/)
언급된 취약점 중 일부는 특별한 조건이 필요하며, 다른 것들은 반영만 되면 됩니다. 빠르게 취약점을 테스트하기 위한 몇 가지 흥미로운 polyglot을 찾을 수 있습니다:
{% content-ref url="pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/)
{% endcontent-ref %}
### 검색 기능
기능이 백엔드 내에서 어떤 종류의 데이터를 검색하는 데 사용될 수 있다면 임의의 데이터를 검색하는 데 사용할 수 있습니다.
* [ ] [**파일 포함/경로 이탈**](file-inclusion/)
* [ ] [**NoSQL Injection**](nosql-injection.md)
* [ ] [**LDAP Injection**](ldap-injection.md)
* [ ] [**ReDoS**](regular-expression-denial-of-service-redos.md)
* [ ] [**SQL Injection**](sql-injection/)
* [ ] [**XPATH Injection**](xpath-injection.md)
### 양식, 웹소켓 및 PostMsgs
웹소켓이 메시지를 게시하거나 사용자가 작업을 수행할 수 있는 양식이 있는 경우 취약점이 발생할 수 있습니다.
* [ ] [**크로스 사이트 요청 위조**](csrf-cross-site-request-forgery.md)
* [ ] [**크로스 사이트 웹소켓 하이재킹 (CSWSH)**](websocket-attacks.md)
* [ ] [**PostMessage 취약점**](postmessage-vulnerabilities/)
### HTTP 헤더
웹 서버가 제공하는 HTTP 헤더에 따라 취약점이 존재할 수 있습니다.
* [ ] [**클릭재킹**](clickjacking.md)
* [ ] [**콘텐츠 보안 정책 우회**](content-security-policy-csp-bypass/)
* [ ] [**쿠키 해킹**](hacking-with-cookies/)
* [ ] [**CORS - Misconfigurations & Bypass**](cors-bypass.md)
### 우회
일부 특정 기능에서 일부 해결책이 우회에 유용할 수 있습니다.
* [ ] [**2FA/OTP 우회**](2fa-bypass.md)
* [ ] [**결제 프로세스 우회**](bypass-payment-process.md)
* [ ] [**캡차 우회**](captcha-bypass.md)
* [ ] [**로그인 우회**](login-bypass/)
* [ ] [**경주 조건**](race-condition.md)
* [ ] [**속도 제한 우회**](rate-limit-bypass.md)
* [ ] [**잊어버린 비밀번호 재설정 우회**](reset-password.md)
* [ ] [**등록 취약점**](registration-vulnerabilities.md)
### 구조화된 객체 / 특정 기능
일부 기능은 **데이터가 매우 특정 형식으로 구조화**되어야 하며(예: 언어 직렬화된 객체 또는 XML), 해당 유형의 데이터를 처리해야 하므로 취약할 수 있습니다.\
일부 **특정 기능**은 **입력의 특정 형식이 사용**될 때 취약할 수도 있습니다(예: 이메일 헤더 삽입).
* [ ] [**직렬화**](deserialization/)
* [ ] [**이메일 헤더 삽입**](email-injections.md)
* [**JWT 취약점**](hacking-jwt-json-web-tokens.md)
* [ ] [**XML 외부 엔티티**](xxe-xee-xml-external-entity.md)
### 파일
파일 업로드를 허용하는 기능은 여러 문제에 취약할 수 있습니다.\
사용자 입력을 포함한 파일을 생성하는 기능은 예상치 못한 코드를 실행할 수 있습니다.\
사용자가 사용자가 업로드한 파일이나 자동으로 생성된 파일을 열면 위험에 노출될 수 있습니다.
* [ ] [**파일 업로드**](file-upload/)
* [ ] [**수식 삽입**](formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**PDF 삽입**](xss-cross-site-scripting/pdf-injection.md)
* [ ] [**서버 측 XSS**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
### **외부 식별 관리**
* [ ] [**OAUTH를 통한 계정 탈취**](oauth-to-account-takeover.md)
* [ ] [**SAML 공격**](saml-attacks/)
### **기타 유용한 취약점**
이러한 취약점은 다른 취약점을 악용하는 데 도움이 될 수 있습니다.
* [ ] [**도메인/서브도메인 탈취**](domain-subdomain-takeover.md)
* [ ] [**IDOR**](idor.md)
* [ ] [**매개변수 오염**](parameter-pollution.md)
* [ ] [**유니코드 정규화 취약점**](unicode-injection/)
<details>
<summary><strong>제로부터 AWS 해킹을 전문가로 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 PDF로 다운로드하려면** [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [**디스코드 그룹**](https://discord.gg/hRep4RUj7f)에 가입하거나 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나** 트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **HackTricks 및 HackTricks Cloud** 깃허브 저장소에 PR을 제출하여 **해킹 트릭을 공유하세요.**
</details>