해킹
HTTP 응답 분할(HTTP Response Splitting, CRLF) 취약점
widruv
2016. 5. 8. 18:26
※ 무분별하게 또는 악의적으로 사용하게 되면 법적 처벌을 받을 수 있습니다. 함부로 사용하지 마세요.
CWE-113
HTTP Response Splitting
- HTTP Request에 있는 파라미터가 HTTP Response의 헤더로 다시 전달 되는 경우 파라미터 내 개행문자 CR,LF가 존재하면 HTTP Response가 분리될 수 있다.
- 이런 취약점을 이용해 Response에 악의적인 코드를 주입함으로써 XSS 및 캐시를 훼손하는 취약점
= Request =
GET /?test=abc HTTP/1.1
...
= Response =
HTTP/1.1 200 OK
Server: ...
test: abc
이러한 구조라면 Request의 파라미터 값에 아래의 값을 넣어주면
%0d%0aContentLength:%200%d%0d%0a%0aHTTP/1.1%20200%20OK......
= Request =
GET /?test=abc%0d%0aContent-Length:%200%d%0d%0a%0aHTTP/1.1%20200%20OK...... HTTP/1.1
...
= Response =
HTTP/1.1 200 OK
Server: ...
test: abc
Content-Length: 0
HTTP/1.1 200 OK
...
이렇게 2개의 Response로 분할되어 오게 된다.
그럼 두 번째 Response에 대해서 공격자가 마음대로 수정이 가능하게 되므로 공격에 노출됨