Wargame/Webhacking.kr

Webhacking.kr old 47번 문제 풀이

esyeonge 2021. 5. 8. 23:02

47번 문제를 클릭하면 위와 같은 화면이 나온다.

send 버튼을 눌러서 보내보자.

 

Send를 누르면 Mail has been sent라는 메시지가 뜨는 것을 확인할 수 있다.

 

Mail과 관련되어 있고 subject에 값을 입력하는 것을 보고 SMTP Header Injection을 의심했다.

 

SMTP Header Injection
; 사용자가 입력한 값이 검사 없이 헤더에 들어가는 경우에, 공격자가 임의 값을 가진 추가 헤더를 주입하는 공격을 말한다. 이 공격은 제3자에게 전자 메일의 복사본을 전송, 바이러스 첨부, 피싱 공격 전달, 전자 메일의 내용 변경 시 사용된다. 이때 cc(참조)나 bcc(숨은 참조)를 이용하여 메일을 특정 이메일로 전송하는 방식으로 많이 사용된다.

참고 : portswigger.net/kb/issues/00200800_smtp-header-injection

 

SMTP header injection

SMTP header injection vulnerabilities arise when user input is placed into email headers without adequate sanitization, allowing an attacker to inject additional headers with arbitrary values. This behavior can be exploited to send copies of emails to thir

portswigger.net

 

STMP Header Injection 공격을 수행하기 위해, 입력폼을 textarea로 변경하였다.

이메일이 길 경우, maxlength의 값도 변경해주어야 한다.

 

그런 다음 위와 같이 Mail subject와 Bcc 헤더 값에 본인의 이메일을 넣으면

 

FLAG가 뜨면서 문제가 풀리게 된다.

이때 Bcc: 이메일 이렇게 중간에 공백을 넣어주어야 한다.