
send를 누르면 특정메일 주소로 메일이 보내지는 것으로 보인다.
생각나는 공격이 마땅히 없어서 검색을 하던 중 메일헤더인젝션 공격이라는 것을 찾아내었다.
메일헤더의 구성은 이러하다.
그중에 우리는 subject(제목)의 입력을 주고 있는 것이다.
보낸사람: verify@velog.io
받는사람:
날짜: 2023. 3. 7. 오전 10:26
제목: Velog 로그인
발송 도메인:: amazonses.com
인증기관: velog.io
보안: 표준 암호화(TLS) 자세히 알아보기
숨은참조를 통해 추가로 내가 원하는 메일주소로 메일을 보낼 수 있다.
그렇다면
subject: "xxx"\n
Bcc: "~@~.com"(내가원하는 메일주소)
발송 도메인:~~
....
이런 형식으로 만들어주면 문제가 풀릴 것으로 보인다.
cf. CC: 받는사람외에 해당 메일을 참조하는 사람
BCC: CC와 동일하나 받는사람의 정의가 노출되지 않는다. 발송한 쪽에서만 확인이 가능, 본 수신자는 모른다.
enter를 입력하기 위해서는 형식을 textarea로 바꾸어 주어야한다.
추가로 Bcc와 :는 붙여야 한다.
Auth에서 뽑은 flag를 제출하면 된다.