웹 취약점 방법론

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 지원하기

모든 Web Pentest에는 잠재적으로 취약할 수 있는 여러 숨겨진 곳과 명백한 곳이 있습니다. 이 문서는 가능한 모든 장소에서 취약점을 찾았는지 확인하기 위한 체크리스트입니다.

프록시

tip

요즘 대부분의 웹 애플리케이션은 어떤 형태의 중간자 proxies를 사용합니다. 이러한 프록시는 취약점 공격에 (ab)used될 수 있습니다. 이러한 취약점은 취약한 프록시가 존재해야 하지만, 보통 백엔드의 추가 취약점을 함께 필요로 합니다.

사용자 입력

tip

대부분의 웹 애플리케이션은 나중에 처리될 데이터를 사용자가 입력할 수 있도록 허용합니다.
서버가 기대하는 데이터 구조에 따라 일부 취약점은 적용되거나 적용되지 않을 수 있습니다.

반사된 값

입력한 데이터가 응답에 어떤 식으로든 반사된다면, 해당 페이지는 여러 문제에 취약할 수 있습니다.

언급된 일부 취약점은 특별한 조건을 필요로 하고, 다른 것들은 단순히 내용이 반사되기만 해도 가능합니다. 빠르게 취약점을 테스트할 수 있는 흥미로운 polygloths는 다음에서 찾을 수 있습니다:

Reflecting Techniques - PoCs and Polygloths CheatSheet

검색 기능

해당 기능이 백엔드 내부의 데이터를 검색하는 데 사용될 수 있다면, 이를 (ab)use하여 임의의 데이터를 검색할 수 있을지도 모릅니다.

Forms, WebSockets and PostMsgs

websocket이 메시지를 전송하거나 사용자가 동작을 수행할 수 있는 form에서는 취약점이 발생할 수 있습니다.

HTTP Headers

웹 서버가 제공하는 HTTP 헤더에 따라 일부 취약점이 존재할 수 있습니다.

우회 방법

몇몇 특정 기능에서는 우회 방법이 유용할 수 있습니다.

구조화된 객체 / 특정 기능

일부 기능은 데이터가 매우 특정한 형식(예: 언어 직렬화 객체나 XML)으로 구조화되어야 합니다. 따라서 애플리케이션이 그런 종류의 데이터를 처리하는지 여부로 취약성 여부를 판단하기가 더 쉽습니다.
또한 일부 특정 기능은 입력의 특정 형식(예: Email Header Injections)을 사용할 때 취약할 수 있습니다.

Files

파일 업로드를 허용하는 기능은 여러 문제에 취약할 수 있습니다.
사용자 입력을 포함해 파일을 생성하는 기능은 예기치 않은 코드를 실행할 수 있습니다.
사용자나 자동 생성된 파일(사용자 입력 포함)을 여는 사용자도 위험에 노출될 수 있습니다.

External Identity Management

기타 유용한 취약점

이러한 취약점들은 다른 취약점을 익스플로잇하는 데 도움이 될 수 있습니다.

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 지원하기