Wargame/webhacking.kr

Challenge old 47 (150)

마띠(쥔장) 2020. 2. 11. 03:38

메인 화면은 위와 같고, 소스는 별거 없습니다

메일 폼은 post 방식이며 input 박스의 최대 길이는 50이라는 것!

일단 그대로 send 버튼을 눌러볼게요

이런 게 뜹니다

또 넣어보려고 하니 10초 제한이 뜨네요^^

10초가 지난 뒤 flag?라는 문자열을 넣어보니 위와 같이 떴습니다.

표시된 날짜와 시간은 임의로 정해진 것 같네요

도대체 눈치가 안와서 구글링을 해보고 "Mail Header Injection" 문제라는 것을 알아냈슴다..

 

PHP에서 메일을 보내는 함수, 즉 mail()은 다음과 같은 인자를 갖는데요

mail(수신자, 제목, 내용, 옵션)

여기서 옵션은 헤더라고도 하고, 이 헤더 부분을 조작하는 공격이라 Mail Header Injection인 겁니다

 

이제 헤더에 무언가를 추가하여 변조해볼텐데요, 크게 From, Cc, Bcc 등을 넣어볼 수 있어요

여기서 우리는 메일을 받는, 즉 수신자에 관한 참조를 봅시다.

수신하는 주소에 관한 필드는 3가지가 있는데 다음과 같습니다.

To: 받는 사람

Cc(Carbon Copy): 받는 사람 외 해당 메일을 참조하는 사람

Bcc(Blind Carbon Copy): 받는 사람 외 해당 메일을 "송신자만 알게" 참조하는 사람

 

저는 Bcc를 이용해서 숨은 참조인에 제 메일 주소를 넣어보도록 하겠습니다

일단, Bcc 삽입을 위해 인풋 박스에 개행을 할 수 있도록 해야 합니다

text 타입의 인풋 박스를 textarea로 변경했습니다.

그럼 이제 여기에 Bcc 변조를 넣어볼게요

다음은 send 버튼을 누른 뒤 이동한 페이지입니다

레드라인 위에는 Blah Blah~라고, 제가 친 내용이

검정 박스에는 제 메일 주소가 있습니다

가장 밑에는 Mail has been sent라는 문구도 적혀있어요

Bcc를 이용해 no-existed@webhacking.kr에게만 보내져야 했던 메일이, 저한테도 오게 된 것이죠

 

..그런데 메일함에는 아무 것도 없었습니닼..

다시 시도해봐도 감감x소식

그래서 혹시 몰라 gmail 대신 naver를 넣어봤어여

바로 왔습니다!

728x90

'Wargame > webhacking.kr' 카테고리의 다른 글

Challenge old 51 (250)  (1) 2020.02.11
Challenge old 48 (350)  (0) 2020.02.11
Challenge old 46 (300)  (0) 2020.02.11
Challenge old 38 (100)  (0) 2020.02.04
*Challenge old 37 (250)  (0) 2020.02.04