[webhacking.kr] old-47 문제

2026. 1. 26. 22:50·워게임/webhacking.kr

1. 문제 정보

  • 문제 번호 : old -47
  • 문제 점수 : 15점
  • 문제 유형: PHP mail

 


2. 문제 분석

47번 문제에 들어가면 mail subject가 나오고 send 버튼을 누르면 mail has been sent가 나온다.

 

 

소스코드를 봐도 post요청을 하는거만 보인다.

<html>
<head>
<title>Challenge 47</title>
</head>
<body>
<form method=post name=mailfrm>
Mail subject : <input type=text name=subject size=50 value="Flag of webhacking.kr old-47 chall" maxlength=50><input type=submit value=send>
</form>
</pre>
</body>
</html>

3. 풀이

서버에서 동작을 생각해보면 post로 받은 subject를 받고 PHP에서 mail함수에 인자를 넣고 보낼 것이다.

PHP에서 주로 사용하는 메일 함수를 보자  

 

mail(
    string $to,
    string $subject,
    string $message,
    array|string $additional_headers = [],
    string $additional_params = ""
): bool

https://www.php.net/manual/en/function.mail.php  에서 자세한 내용이 확인 가능하다.

 

PHP: mail - Manual

Send mail

www.php.net

 

additional 해더로 'Bcc: birthdaycheck@example.com'; 를 보내면 참조가 가능하다.

그리고 mail함수는 SMTP를 호출한다.

이메일 전송 프로토콜(SMTP)은 헤더와 본문을 구분하기 위해 빈 줄(Empty Line) 하나를 구분자로 사용한다. 이 빈 줄은 기술적으로 \r\n\r\n (CRLF 두 번)으로 표현된다.

따라서 asd\r\n Bcc: birthdaycheck@example.com 을 보내면 birthdaycheck@example.com로 참조 메일로 삼아 메일이 간다.

 

+ 풀이에는 Cc(참조)나 Bcc(숨은 참조) 둘 다 상관없지만, 실제 공격자라면 원본 수신자에게 들키지 않기 위해 Bcc를 주로 사용한다고 한다.

 

 

아래 사진은 burp에서 http요청을 수정한 것이고

 

응답은 아래 사진과 같다

 

 

 


4. 요약

  • PHP mail() 함수의 Subject 파라미터가 입력값 검증 없이 헤더 처리에 사용되는 헤더 인젝션(Header Injection) 취약점을 이용했다.
  • 제목(Subject) 입력값에 개행 문자(%0D%0A, CRLF)를 삽입하여 강제로 줄을 바꾼 뒤, Cc 또는 Bcc 헤더를 추가하여 수신자를 조작했다.
  • 이를 통해 서버가 원래 수신자에게 보내려던 플래그가 포함된 메일을 내 개인 이메일로도 발송되게 만들어 플래그를 획득했다.

'워게임 > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] old-36문제  (0) 2026.01.27
[webhacking.kr] old-42 문제  (0) 2026.01.27
[webhacking.kr] old-58 문제  (0) 2026.01.26
[webhacking.kr] old- 19문제  (0) 2026.01.26
[webhacking.kr] old-25 문제  (0) 2026.01.26
'워게임/webhacking.kr' 카테고리의 다른 글
  • [webhacking.kr] old-36문제
  • [webhacking.kr] old-42 문제
  • [webhacking.kr] old-58 문제
  • [webhacking.kr] old- 19문제
yt_5246
yt_5246
yt5246 님의 블로그 입니다.
  • yt_5246
    yt의 공부 블로그
    yt_5246
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 분류 전체보기 (61)
      • IT (1)
      • Security (11)
        • 시스템해킹 (3)
        • 리버싱 (6)
        • 암호학 (0)
        • tools (2)
      • Book (0)
      • 자격증 (3)
      • 워게임 (46)
        • DVWA (7)
        • WebGoat (4)
        • webhacking.kr (35)
      • 버그바운티 (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
yt_5246
[webhacking.kr] old-47 문제
상단으로

티스토리툴바