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

155 lines
8.9 KiB
Markdown
Raw Normal View History

2024-02-10 21:30:13 +00:00
# 웹 취약점 방법론
2022-09-12 18:43:22 +00:00
<details>
2024-02-10 21:30:13 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2024-01-01 17:15:42 +00:00
2024-02-10 21:30:13 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](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)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)를 **팔로우**하세요.
* **Hacking 트릭을 공유하려면** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하세요.
2022-09-12 18:43:22 +00:00
</details>
2024-02-10 21:30:13 +00:00
웹 펜테스트에서는 **취약할 수 있는 여러 가지 숨겨진 곳과 명백한 곳**이 있습니다. 이 게시물은 모든 가능한 곳에서 취약점을 검색했는지 확인하기 위한 체크리스트입니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
## 프록시
2022-09-12 18:43:22 +00:00
{% hint style="info" %}
2024-02-10 21:30:13 +00:00
현재 **웹 애플리케이션**은 일종의 **중개 프록시**를 사용하는 경우가 많습니다. 이러한 취약점은 취약한 프록시가 필요하지만 일반적으로 백엔드에도 추가적인 취약점이 필요합니다.
2022-09-12 18:43:22 +00:00
{% endhint %}
2024-02-10 21:30:13 +00:00
* [ ] [**hop-by-hop 헤더 남용**](../abusing-hop-by-hop-headers.md)
* [ ] [**캐시 조작/캐시 속이기**](../cache-deception.md)
* [ ] [**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)
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
## **사용자 입력**
2022-09-12 18:43:22 +00:00
{% hint style="info" %}
2024-02-10 21:30:13 +00:00
대부분의 웹 애플리케이션은 사용자가 나중에 처리할 데이터를 입력할 수 있도록 허용합니다.\
데이터의 구조에 따라 서버가 예상하는 취약점이 적용될 수도 있고 그렇지 않을 수도 있습니다.
2022-09-12 18:43:22 +00:00
{% endhint %}
2024-02-10 21:30:13 +00:00
### **반사된 값**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
입력된 데이터가 응답에 어떤 방식으로든 반영될 수 있다면 페이지는 여러 가지 문제에 취약할 수 있습니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**클라이언트 측 템플릿 삽입**](../client-side-template-injection-csti.md)
* [ ] [**명령 삽입**](../command-injection.md)
2022-09-12 18:43:22 +00:00
* [ ] [**CRLF**](../crlf-0d-0a.md)
2024-02-10 21:30:13 +00:00
* [ ] [**매달린 마크업**](../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)
2022-09-12 18:43:22 +00:00
* [ ] [**XSS**](../xss-cross-site-scripting/)
* [ ] [**XSSI**](../xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Search**](../xs-search.md)
2024-02-10 21:30:13 +00:00
언급된 취약점 중 일부는 특정 조건이 필요하며, 다른 취약점은 콘텐츠가 반영되기만 하면 됩니다. 다음에서 빠르게 취약점을 테스트하기 위한 흥미로운 폴리글롯을 찾을 수 있습니다:
2022-09-12 18:43:22 +00:00
{% content-ref url="../pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](../pocs-and-polygloths-cheatsheet/)
{% endcontent-ref %}
2024-02-10 21:30:13 +00:00
### **검색 기능**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
기능이 백엔드 내에서 어떤 종류의 데이터를 검색하는 데 사용될 수 있는 경우 임의의 데이터를 검색하기 위해 (남용)할 수 있습니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**파일 포함/경로 조작**](../file-inclusion/)
* [ ] [**NoSQL 삽입**](../nosql-injection.md)
* [ ] [**LDAP 삽입**](../ldap-injection.md)
2022-09-12 18:43:22 +00:00
* [ ] [**ReDoS**](../regular-expression-denial-of-service-redos.md)
2024-02-10 21:30:13 +00:00
* [ ] [**SQL 삽입**](../sql-injection/)
* [ ] [**XPATH 삽입**](../xpath-injection.md)
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
### **양식, 웹소켓 및 포스트메시지**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
웹소켓이 메시지를 게시하거나 사용자가 작업을 수행할 수 있는 양식을 게시하는 경우 취약점이 발생할 수 있습니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**크로스 사이트 요청 위조**](../csrf-cross-site-request-forgery.md)
* [ ] [**크로스 사이트 웹소켓 하이재킹 (CSWSH)**](../websocket-attacks.md)
* [ ] [**PostMessage 취약점**](../postmessage-vulnerabilities/)
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
### **HTTP 헤더**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
웹 서버가 제공하는 HTTP 헤더에 따라 취약점이 발생할 수 있습니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**클릭재킹**](../clickjacking.md)
* [ ] [**콘텐츠 보안 정책 우회**](../content-security-policy-csp-bypass/)
* [**쿠키 해킹**](../hacking-with-cookies/)
* [ ] [**CORS - 잘못된 구성 및 우회**](../cors-bypass.md)
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
### **우회**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
일부 특정 기능에서는 일부 우회 방법이 유용할 수 있습니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**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)
### **구조화된 객체 / 특정 기능**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
일부 기능은 **매우 특정한 형식으로 데이터가 구조화되어야** 하는 경우가 있습니다(예: 언어 직렬화된 객체 또는 XML). 따라서 해당 유형의 데이터를 처리해야만 취약점이 있는지 쉽게 식별할 수 있습니다.\
일부 **특정 기능**은 또한 **특정 형식의 입력**을 사용할 경우 취약할 수 있습니다(예: 이메일 헤더 삽입).
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**역직렬화**](../deserialization/)
* [ ] [**이메일 헤더 삽입**](../email-injections.md)
* [ ] [**JWT 취약점**](../hacking-jwt-json-web-tokens.md)
* [ ] [**XML 외부 엔티티**](../xxe-xee-xml-external-entity.md)
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
### 파일
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
파일 업로드를 허용하는 기능은 여러 문제에 취약할 수 있습니다.\
사용자 입력을 포함한 파일 생성 기능은 예기치 않은 코드를 실행할 수 있습니다.\
사용자가 업로드한 파일이나 자동으로 생성된 파일을 열면 사용자가 손상될 수 있습니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**파일 업로드**](../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)
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
### **외부 ID 관리**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**OAUTH를 통한 계정 탈취**](../oauth-to-account-takeover.md)
* [ ] [**SAML 공격**](../saml-attacks/)
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
### **기타 유용한 취약점**
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
이러한 취약점은 다른 취약점을 악용하는 데 도움이 될 수 있습니다.
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
* [ ] [**도메인/하위 도메인 탈취**](../domain-subdomain-takeover.md)
2022-09-12 18:43:22 +00:00
* [ ] [**IDOR**](../idor.md)
2024-02-10 21:30:13 +00:00
* [ ] [**매개변수 오염**](../parameter-pollution.md)
* [ ] [**유니코드 정규화 취약점**](../unicode-injection/)
2022-09-12 18:43:22 +00:00
<details>
2024-02-10 21:30:13 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
2022-09-12 18:43:22 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2024-01-01 17:15:42 +00:00
2024-02-10 21:30:13 +00:00
* HackTricks에서 **회사 광고를 보거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFT**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **HackTricks**와 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
2022-09-12 18:43:22 +00:00
</details>