웹 취약점 방법론
Reading time: 5 minutes
tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:
HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
모든 Web Pentest에는 잠재적으로 취약할 수 있는 여러 숨겨진 곳과 명백한 곳이 있습니다. 이 문서는 가능한 모든 장소에서 취약점을 찾았는지 확인하기 위한 체크리스트입니다.
프록시
tip
요즘 대부분의 웹 애플리케이션은 어떤 형태의 중간자 proxies를 사용합니다. 이러한 프록시는 취약점 공격에 (ab)used될 수 있습니다. 이러한 취약점은 취약한 프록시가 존재해야 하지만, 보통 백엔드의 추가 취약점을 함께 필요로 합니다.
- Abusing hop-by-hop headers
- Cache Poisoning/Cache Deception
- HTTP Request Smuggling
- H2C Smuggling
- Server Side Inclusion/Edge Side Inclusion
- Uncovering Cloudflare
- XSLT Server Side Injection
- Proxy / WAF Protections Bypass
사용자 입력
tip
대부분의 웹 애플리케이션은 나중에 처리될 데이터를 사용자가 입력할 수 있도록 허용합니다.
서버가 기대하는 데이터 구조에 따라 일부 취약점은 적용되거나 적용되지 않을 수 있습니다.
반사된 값
입력한 데이터가 응답에 어떤 식으로든 반사된다면, 해당 페이지는 여러 문제에 취약할 수 있습니다.
- Client Side Template Injection
- Command Injection
- CRLF
- Dangling Markup
- File Inclusion/Path Traversal
- Open Redirect
- Prototype Pollution to XSS
- Server Side Inclusion/Edge Side Inclusion
- Server Side Request Forgery
- Server Side Template Injection
- Reverse Tab Nabbing
- XSLT Server Side Injection
- XSS
- XSSI
- XS-Search
언급된 일부 취약점은 특별한 조건을 필요로 하고, 다른 것들은 단순히 내용이 반사되기만 해도 가능합니다. 빠르게 취약점을 테스트할 수 있는 흥미로운 polygloths는 다음에서 찾을 수 있습니다:
Reflecting Techniques - PoCs and Polygloths CheatSheet
검색 기능
해당 기능이 백엔드 내부의 데이터를 검색하는 데 사용될 수 있다면, 이를 (ab)use하여 임의의 데이터를 검색할 수 있을지도 모릅니다.
Forms, WebSockets and PostMsgs
websocket이 메시지를 전송하거나 사용자가 동작을 수행할 수 있는 form에서는 취약점이 발생할 수 있습니다.
HTTP Headers
웹 서버가 제공하는 HTTP 헤더에 따라 일부 취약점이 존재할 수 있습니다.
우회 방법
몇몇 특정 기능에서는 우회 방법이 유용할 수 있습니다.
- 2FA/OTP Bypass
- Bypass Payment Process
- Captcha Bypass
- Login Bypass
- Race Condition
- Rate Limit Bypass
- Reset Forgotten Password Bypass
- Registration Vulnerabilities
구조화된 객체 / 특정 기능
일부 기능은 데이터가 매우 특정한 형식(예: 언어 직렬화 객체나 XML)으로 구조화되어야 합니다. 따라서 애플리케이션이 그런 종류의 데이터를 처리하는지 여부로 취약성 여부를 판단하기가 더 쉽습니다.
또한 일부 특정 기능은 입력의 특정 형식(예: Email Header Injections)을 사용할 때 취약할 수 있습니다.
- Deserialization
- Email Header Injection
- JWT Vulnerabilities
- XML External Entity
- GraphQL Attacks
- gRPC-Web Attacks
Files
파일 업로드를 허용하는 기능은 여러 문제에 취약할 수 있습니다.
사용자 입력을 포함해 파일을 생성하는 기능은 예기치 않은 코드를 실행할 수 있습니다.
사용자나 자동 생성된 파일(사용자 입력 포함)을 여는 사용자도 위험에 노출될 수 있습니다.
External Identity Management
기타 유용한 취약점
이러한 취약점들은 다른 취약점을 익스플로잇하는 데 도움이 될 수 있습니다.
- Domain/Subdomain takeover
- IDOR
- Mass Assignment (CWE-915)
- Parameter Pollution
- Unicode Normalization vulnerability
tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:
HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks