CSLF Injection
HTTP 메시지에서는 줄 바꿈을 나타내기 위해서 CR(Carriage Return ,\r)과 LF(Line Feed, \n)라는 특수문자를 사용한다.
이 특수문자를 묶어 CRLF와 같이 함께 사용하는데 CRLF는 메시지의 각 라인이 끝임을 알려주는 중요한 구분자가 된다.
특히, HTTP 메시지에서 헤더와 바디가 구분될 때 빈 줄에는 CRLFCRLF처럼 CRLF가 두 번 사용된다.
이름 | 아스키 코드 | URL 인코딩 | 문자 |
CR( Carriage Return) | ASCII 13 | %0D | \r |
LF(Line Feed) | ASCII 10 | %0A | \n |
CSLF 인젝션 정의
CSLF 인젝션 원리
CSLF 인젝션 공격 방식
User-Agent: maliciousUser\r\nInjected-Header: attackPayload\r\n
HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE html><html><body>\r\nHacked Content\r\n</body></html>
CSLF 인젝션 종류
User-Agent: maliciousUser\r\nInjected-Header: attackPayload\r\n
Cookie: sessionid=123\r\nSet-Cookie: isAdmin=true\r\n
Location: https://malicious-site.com\r\n
To: victim@example.com\r\nSubject: Spoofed Subject\r\n
Malicious input detected\r\nAttacker's payload\r\n
대응방안
HTTP 응답 스플리팅 (HTTP response splitting)
HTTP 응답 스플리팅 정의
HTTP 응답 스플리팅 원리
HTTP 응답 스플리팅 공격 방식
HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nMaliciousHeader: attackPayload\r\n\r\nInjected Content
HTTP/1.1 302 Found\r\nLocation: https://malicious-site.com\r\n\r\n
대응 방안
CRLF 인젝션과 HTTP 응답 스플리팅 차이
목적 | 공격 방식 | 예시 | |
CRLF 인젝션 | - 주로 HTTP 헤더에 삽입된 제어 문자를 통해 공격자가 응용 프로그램의 동작을 변경하거나 악용 - CRLF 문자를 삽입하여 헤더를 조작 |
주로 입력 값에 CRLF 문자를 삽입하여 새로운 헤더를 생성하거나 기존 헤더를 조작 |
User-Agent: maliciousUser\r\nInjected-Header: attackPayload\r\n |
HTTP 응답 스플리팅 | 응답 헤더를 조작하여 여러 응답을 하나로 결합하거나 악성 컨텐츠를 삽입하는 것이 목적 | 주로 CRLF 문자를 이용하여 응답 헤더를 분할하고, 그 사이에 악성 헤더나 컨텐츠를 삽입 | HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nMaliciousHeader: attackPayload\r\n\r\nInjected Content |
■ 차이점
참고자료
OWASP Top 10에 포함되지 않은 10가지 일반적인 웹 취약점 | monitorapp
OWASP Top 10을 벗어난 위협들은 비교적 덜 강조되는 경향이 있습니다. 따라서, 신규 OWASP Top 10이 공개될 것으로 예상되는 이 시점에, OWASP Top 2017에 포함되지 않은 기타 위협들을 알아봅니다.
www.monitorapp.com
접근통제 모델 (0) | 2023.07.25 |
---|---|
보안 컴플라이언스 (compliance / 준법 감시) (0) | 2023.07.19 |
subdomain Takeover/DNS Zone Takeover이란 ? (0) | 2023.07.10 |