Cache Poisoning to DoS
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
이 페이지에서는 캐시 서버에 유효한 요청에 대해 웹 서버가 오류로 응답하도록 시도할 수 있는 다양한 변형을 찾을 수 있습니다.
HTTP Header Oversize (HHO)
웹 서버가 지원하는 것보다 큰 헤더 크기로 요청을 보내되, 캐시 서버가 지원하는 것보다 작은 헤더 크기로 요청을 보냅니다. 웹 서버는 캐시될 수 있는 400 응답으로 응답할 것입니다:
HTTP 메타 문자 (HMC) 및 예상치 못한 값
해로운 메타 문자가 포함된 헤더를 전송합니다. 공격이 작동하려면 먼저 캐시를 우회해야 합니다.
A badly configured header could be just \:
as a header.
이것은 예상치 못한 값이 전송될 경우에도 작동할 수 있습니다. 예를 들어 예상치 못한 Content-Type:
Unkeyed header
일부 웹사이트는 요청에 특정 헤더가 포함되어 있으면 오류 상태 코드를 반환합니다. 예를 들어 X-Amz-Website-Location-Redirect: someThing 헤더가 있습니다:
HTTP 메서드 오버라이드 공격 (HMO)
서버가 X-HTTP-Method-Override
, X-HTTP-Method
또는 X-Method-Override
와 같은 헤더로 HTTP 메서드를 변경하는 것을 지원하는 경우, 메서드를 변경하여 유효한 페이지를 요청할 수 있습니다. 이렇게 하면 서버가 이를 지원하지 않으므로 잘못된 응답이 캐시됩니다:
키 없는 포트
Host 헤더의 포트가 응답에 반영되고 캐시 키에 포함되지 않는 경우, 사용되지 않는 포트로 리디렉션할 수 있습니다:
Long Redirect DoS
다음 예와 같이, x는 캐시되지 않으므로 공격자는 리디렉션 응답 동작을 악용하여 리디렉션이 너무 큰 URL을 보내도록 만들어 오류를 반환할 수 있습니다. 그런 다음 uncached x 키 없이 URL에 접근하려는 사람들은 오류 응답을 받게 됩니다:
호스트 헤더 대소문자 정규화
호스트 헤더는 대소문자를 구분하지 않아야 하지만 일부 웹사이트는 소문자로 되어 있기를 기대하며 그렇지 않을 경우 오류를 반환합니다:
경로 정규화
일부 페이지는 경로에 데이터 URL 인코딩을 보내면 오류 코드를 반환하지만, 캐시 서버는 경로를 URL 디코딩하고 URL 디코딩된 경로에 대한 응답을 저장합니다:
Fat Get
일부 캐시 서버, 예를 들어 Cloudflare 또는 웹 서버는 본문이 있는 GET 요청을 중단하므로, 이를 악용하여 잘못된 응답을 캐시할 수 있습니다:
References
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Last updated