webhacking 47번
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
47번 문제이다.

문제 풀기에 앞서 이번 문제는 여러 가지 시도를 했지만 도무지 감이 잡히지 않아 검색하였다.
그 결과, 내 컴퓨터에서는 정상적으로 문제 화면이 보이질 않았다..
문제를 풀기 위한 조건이 제대로 갖추어지지 않은 상태로 문제를 풀려하니 감도 안 잡힐 수밖에..
물론 mail injection을 아는 사람이라면 추측할 수 있었겠지만..
이번엔 문제를 푸는 방법을 포스팅하겠다.

send 버튼을 눌렀을 때 보이는 화면이다.
기존에는 Mail has been sent가 나오기 전 메일의 헤더 부분이 나와야 하지만, 어째서인지 나의 컴퓨터에선 나오지 않는다.
이 문제는 mail header injection 문제다.
메일 헤더에서 Cc를 사용하면 문제가 해결된다.
Cc란?
Carbon Copy의 약자로 원본 메시지를 참조할 때 사용한다.
A라는 사람에게 보내는 메시지를 B도 참조할 필요가 있다고 생각하면 사용하는 것이다.
메일의 헤더에 들어가며 Cc: B이메일 형식으로 사용하면 된다.
풀어보자.

일단 2줄 이상을 사용해야 하기에 색칠된 부분의 input을 textarea로 바꾸어 2줄 이상 입력할 수 있게 한다.
제목
Cc: 자신의 이메일주소
형식에 맞춘 후 send 버튼을 눌러준다.
Cc: 후에 띄어쓰기를 꼭 해준후 이메일을 작성해야 정상적으로 작동한다.

send를 누르면 Auth가 나오며 문제가 해결된다.

옛날에 문제를 푼 사람들의 글을 찾아보면, 자신의 이메일에 auth값을 받아 문제를 해결했다고 하는데, 필자가 푸는 시점에서는 그냥 flag가 웹 페이지에 뜬다.
무언가 수정이 있었나 보다.
검증해보자.

문제 해결
시행착오 & 느낀 점
1. 메일 헤더 공격이라는 새로운 공격 방법을 접하고 관련 원리를 찾아보아 공부하였다.