본문 바로가기

SWUFORCE 워게임👊🏻

[워게임 추가 실습] Log Injeciton

https://informysecurity.tistory.com/120

 

[Webhacking] old - 38 ; web

1. Log injection 글자와 함께 입력할 수 있는 칸이 있다. 우선 log injection에 대해 검색해 정보를 얻었다. 공격자가 로그 파일에 악의적인 데이터를 삽입함으로써, 로그의 무결성을 해치고, 보안 경고

informysecurity.tistory.com

윗 글에서는 줄바꿈을 이용하여 로그를 생성하는 워게임을 풀이하였다. 

 

<Log Injeciton이란?>

공격자가 로그 파일에 악의적인 데이터를 삽입함으로써, 로그의 무결성을 해치고, 보안 경고 탐지를 우회하거나, 로그를 조작하여 포렌식 분석을 어렵게 만드는 공격 기법이다. 이 공격은 입력값을 제대로 검증하지 않고 로그에 기록할 때 발생한다. 로그 인젝션 공격에서는 보통 줄바꿈(\n)을 이용해 로그 포맷을 깨거나 조작한다.

 

추가로 Log Injeciton 관련 실습을 진행해보겠다.

 

 

< Apache 웹서버 로그를 이용한 Log Injection 실습 >

 

  • Kali Linux (또는 Ubuntu도 OK)
  • Apache 웹 서버 (apache2)
  • curl 또는 웹 브라우저

 

1. Apache 웹 서버 설치

2. 웹 서버 시작

3. 'http://localhost'에 접속해 웹 서버가 잘 작동하는지 확인

 

4. Apache 액세스 로그 경로 확인 

기본적으로 Apache의 로그는 다음 위치에 저장되며, 이 파일은 웹 요청이 들어올 때마다 자동으로 로그가 쌓인다.

 

5. curl을 이용해 Log Injection 시도

특수한 User-Agent를 가진 요청을 보내서, 로그에 악의적인 내용을 삽입해보겠다.

  • -A는 User-Agent 헤더를 지정하는 옵션
  • \n을 이용해 줄바꿈 삽입 → 새로운 로그 라인을 만들어냄

 

6. 로그 확인

여기서 로그를 보면, 내가 넣은 User-Agent가 줄바꿈된 상태로 기록된 걸 볼 수 있다.

 

'127.0.0.1 - - [13/May/2025:12:00:00 +0000] "GET / HTTP/1.1" 200 45 "-" "BadBot
[WARNING] Unauthorized access from 133.7.133.7"' 

이 로그는 관리자에게 실제 경고 메시지처럼 보이게 만들 수 있다.

 

 

<실습 요약> 

 

목적 : 로그에 조작된 메시지를 삽입하여 관리자의 혼동을 유발하기

사용한 기법 : Http user-agent 헤더에 줄바꿈 포함하기

결과 : 로그 포맷이 깨지거나 조작된 메시지처름 보이게 만듦.