[webhacking.kr] 47번 문제 풀이[SMTP Header Injection]
💡 Webhacking.kr challenge(old) 47번 문제에 대한 풀이입니다.
문제
send를 누르면 어딘가로 메일을 보내고 있는거 같습니다. 일단 제목을 보니, 메일안에 Flag가 있는 것으로 보이니 해당 메일이 저의 이메일로 오도록 하면 됩니다.
문제 풀이
해당 문제는 SMTP Header Injection 취약점을 이용한 문제입니다.
다음은 이해를 돕기위한 예시로 실제로 제가 받은 메일 헤더의 일부를 적어봤습니다.
From: no-reply-aws@amazon.com
To: kms00129@naver.com
Message-ID: <0100017ea3cd482d-e610c809-51ce-4c43-aa35-4b0dbf1b564e-000000@email.amazonses.com>
Subject: AWS Free Tier limit alert
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_Part_14614864_489097825.1643425646632"
메일을 보내면 위와같은 형태로 전달이 되는데, 이때 각각의 헤더는 \r\n 즉 줄바꿈을 토대로 구분됩니다.
따라서 현재 문제에서 Subject부분을 조작할 수 있으니, subject에 줄바꿈을 추가하여 헤더를 추가할 수 있습니다.
그리고 메일에서는 수신자를 To: 에 명시해 주는데 이와 별개로 참조의 기능을 이용하여 여러명이 수신가능하도록 할 수 있습니다.
subject에서 참조를 의미하는 Cc 와 Bcc 기능을 이용해서 해당메일이 제 메일에도 보내지도록 해주면 됩니다.
줄바꿈이 가능하도록 현재 input type을 textarea로 변경해 줍니다.
<textarea name="subject"> </textarea>
입력칸에 다음과 같이 입력해 줍니다. 이때 대소문자와 띄어쓰기를 주의해서 입력해 줍니다.
subject
Bcc: kms00129@naver.com
# Cc: kms00129@naver.com Cc를 이용해도 됩니다.
그러면 플래그가 출력됩니다.
댓글남기기