mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
132 lines
6.9 KiB
Markdown
132 lines
6.9 KiB
Markdown
# 웹 취약점 방법론
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
모든 웹 펜테스트에서 **취약할 수 있는 여러 숨겨진 및 명백한 장소가 존재합니다**. 이 게시물은 모든 가능한 장소에서 취약점을 검색했는지 확인하기 위한 체크리스트입니다.
|
|
|
|
## 프록시
|
|
|
|
> [!TIP]
|
|
> 요즘 **웹** **애플리케이션**은 일반적으로 어떤 종류의 **중개** **프록시**를 사용하며, 이는 취약점을 악용하는 데 (악용)될 수 있습니다. 이러한 취약점은 취약한 프록시가 필요하지만, 일반적으로 백엔드에서 추가적인 취약점도 필요합니다.
|
|
|
|
- [ ] [**Hop-by-hop 헤더 악용**](abusing-hop-by-hop-headers.md)
|
|
- [ ] [**캐시 오염/캐시 기만**](cache-deception/index.html)
|
|
- [ ] [**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)
|
|
|
|
## **사용자 입력**
|
|
|
|
> [!TIP]
|
|
> 대부분의 웹 애플리케이션은 **사용자가 나중에 처리될 데이터를 입력할 수 있도록 허용합니다.**\
|
|
> 데이터의 구조에 따라 서버가 기대하는 취약점이 적용될 수도 있고 그렇지 않을 수도 있습니다.
|
|
|
|
### **반사된 값**
|
|
|
|
입력된 데이터가 응답에 반영될 수 있다면, 페이지는 여러 문제에 취약할 수 있습니다.
|
|
|
|
- [ ] [**클라이언트 측 템플릿 주입**](client-side-template-injection-csti.md)
|
|
- [ ] [**명령 주입**](command-injection.md)
|
|
- [ ] [**CRLF**](crlf-0d-0a.md)
|
|
- [ ] [**떠 있는 마크업**](dangling-markup-html-scriptless-injection/index.html)
|
|
- [ ] [**파일 포함/경로 탐색**](file-inclusion/index.html)
|
|
- [ ] [**열린 리다이렉트**](open-redirect.md)
|
|
- [ ] [**XSS로의 프로토타입 오염**](deserialization/nodejs-proto-prototype-pollution/index.html#client-side-prototype-pollution-to-xss)
|
|
- [ ] [**서버 측 포함/엣지 측 포함**](server-side-inclusion-edge-side-inclusion-injection.md)
|
|
- [ ] [**서버 측 요청 위조**](ssrf-server-side-request-forgery/index.html)
|
|
- [ ] [**서버 측 템플릿 주입**](ssti-server-side-template-injection/index.html)
|
|
- [ ] [**리버스 탭 납치**](reverse-tab-nabbing.md)
|
|
- [ ] [**XSLT 서버 측 주입**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
|
|
- [ ] [**XSS**](xss-cross-site-scripting/index.html)
|
|
- [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
|
|
- [ ] [**XS-검색**](xs-search/index.html)
|
|
|
|
언급된 취약점 중 일부는 특별한 조건이 필요하고, 다른 일부는 단순히 내용이 반영되기만 하면 됩니다. 다음에서 취약점을 빠르게 테스트할 수 있는 흥미로운 폴리글롯을 찾을 수 있습니다:
|
|
|
|
{{#ref}}
|
|
pocs-and-polygloths-cheatsheet/
|
|
{{#endref}}
|
|
|
|
### **검색 기능**
|
|
|
|
기능이 백엔드 내에서 어떤 종류의 데이터를 검색하는 데 사용될 수 있다면, 이를 (악용)하여 임의의 데이터를 검색할 수 있습니다.
|
|
|
|
- [ ] [**파일 포함/경로 탐색**](file-inclusion/index.html)
|
|
- [ ] [**NoSQL 주입**](nosql-injection.md)
|
|
- [ ] [**LDAP 주입**](ldap-injection.md)
|
|
- [ ] [**ReDoS**](regular-expression-denial-of-service-redos.md)
|
|
- [ ] [**SQL 주입**](sql-injection/index.html)
|
|
- [ ] [**XPATH 주입**](xpath-injection.md)
|
|
|
|
### **양식, 웹소켓 및 PostMsg**
|
|
|
|
웹소켓이 메시지를 게시하거나 사용자가 작업을 수행할 수 있도록 하는 양식이 있을 때 취약점이 발생할 수 있습니다.
|
|
|
|
- [ ] [**교차 사이트 요청 위조**](csrf-cross-site-request-forgery.md)
|
|
- [ ] [**교차 사이트 웹소켓 탈취 (CSWSH)**](websocket-attacks.md)
|
|
- [ ] [**PostMessage 취약점**](postmessage-vulnerabilities/index.html)
|
|
|
|
### **HTTP 헤더**
|
|
|
|
웹 서버에서 제공하는 HTTP 헤더에 따라 일부 취약점이 존재할 수 있습니다.
|
|
|
|
- [ ] [**클릭재킹**](clickjacking.md)
|
|
- [ ] [**콘텐츠 보안 정책 우회**](content-security-policy-csp-bypass/index.html)
|
|
- [ ] [**쿠키 해킹**](hacking-with-cookies/index.html)
|
|
- [ ] [**CORS - 잘못된 구성 및 우회**](cors-bypass.md)
|
|
|
|
### **우회**
|
|
|
|
일부 특정 기능에서는 우회할 수 있는 몇 가지 해결 방법이 유용할 수 있습니다.
|
|
|
|
- [ ] [**2FA/OTP 우회**](2fa-bypass.md)
|
|
- [ ] [**결제 프로세스 우회**](bypass-payment-process.md)
|
|
- [ ] [**캡차 우회**](captcha-bypass.md)
|
|
- [ ] [**로그인 우회**](login-bypass/index.html)
|
|
- [ ] [**경쟁 조건**](race-condition.md)
|
|
- [ ] [**요금 제한 우회**](rate-limit-bypass.md)
|
|
- [ ] [**비밀번호 재설정 우회**](reset-password.md)
|
|
- [ ] [**등록 취약점**](registration-vulnerabilities.md)
|
|
|
|
### **구조화된 객체 / 특정 기능**
|
|
|
|
일부 기능은 **데이터가 매우 특정한 형식으로 구조화되어야** 합니다 (예: 언어 직렬화 객체 또는 XML). 따라서 애플리케이션이 해당 종류의 데이터를 처리해야 하므로 취약점을 식별하기가 더 쉽습니다.\
|
|
일부 **특정 기능**은 **특정 형식의 입력이 사용될 경우** 취약할 수 있습니다 (예: 이메일 헤더 주입).
|
|
|
|
- [ ] [**역직렬화**](deserialization/index.html)
|
|
- [ ] [**이메일 헤더 주입**](email-injections.md)
|
|
- [ ] [**JWT 취약점**](hacking-jwt-json-web-tokens.md)
|
|
- [ ] [**XML 외부 엔티티**](xxe-xee-xml-external-entity.md)
|
|
- [ ] [**GraphQL 공격**](../network-services-pentesting/pentesting-web/graphql.md)
|
|
- [ ] [**gRPC-Web 공격**](grpc-web-pentest.md)
|
|
|
|
### 파일
|
|
|
|
파일 업로드를 허용하는 기능은 여러 문제에 취약할 수 있습니다.\
|
|
사용자 입력을 포함한 파일을 생성하는 기능은 예기치 않은 코드를 실행할 수 있습니다.\
|
|
사용자가 업로드한 파일이나 사용자 입력을 포함한 자동 생성된 파일을 열면 손상될 수 있습니다.
|
|
|
|
- [ ] [**파일 업로드**](file-upload/index.html)
|
|
- [ ] [**수식 주입**](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/index.html)
|
|
|
|
### **기타 유용한 취약점**
|
|
|
|
이러한 취약점은 다른 취약점을 악용하는 데 도움이 될 수 있습니다.
|
|
|
|
- [ ] [**도메인/서브도메인 탈취**](domain-subdomain-takeover.md)
|
|
- [ ] [**IDOR**](idor.md)
|
|
- [ ] [**매개변수 오염**](parameter-pollution.md)
|
|
- [ ] [**유니코드 정규화 취약점**](unicode-injection/index.html)
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|