티스토리 뷰

hacking/webhacking.kr

<webhacking.kr> - 47번

khe0616 2018. 1. 31. 22:32

47단계의 초기화면

 

 

 

 

 

 

 

주석처리되어 잇는 index.phps가 힌트인 것 같다.

 

 

 

 

 

 

index.phps로 들어가면 소스코드가 나온다. POST방식으로 전달받은 "email"이 존재하는 경우 if안의 내용이 실행되도록 구성되어 있다.

 

 

mail()함수는 이메일을 보내는 함수이다.

mail(받는 사람 주소, 제목, 내용, 이메일 헤더(참조)<생략가능>)

 

위 코드는 email의 값을 POST방식으로 전달하면

 

받는이 : admin@webhacking.kr

제목    : readme

내용    : password is $pass

헤더(참조) : From : [폼에 입력한 문자열]

 

와 같은 이메일을 보내게 된다.

이 이메일에는 password정보가 담겨있다.

그러나 이 메일을 받는사람은 admin@webhacking.kr 뿐이므로 나는 내용을 확인할 수 없다.

패스워드를 확인하기 위해서는 나도 이 메일의 수신자가 될 수 있어야 한다.

 

 

 

이 프로그램에서 내가 조작할 수 있는 값은 네번째 인자인 이메일 헤더가 유일하다.

이 부분에는 To, From, Cc, Bcc등의 내용이 들어가게 된다.

to       ->    받는이를 설정

from    ->    보낸이를 설정

cc       ->    함께 메일을 수신하는 대상 설정

bcc     ->    함께 메일을 수신하는 대상 설정

 

cc와 bcc의 차이점은 다음과 같다.

cc(참조)        -> 수신자가 함께 메일을 수신한 참조인의 정보(메일 주소)를 알 수 있다.

bcc(숨은참조) -> 수신자는 함께 메일을 수신한 참조인의 정보(메일 주소)를 알 수 없다.

 

 

 

 

 

이중에서 cc를 이용하면 나도 메일의 수신자가 될 수 있다.

 

 

 

방법1

 

sender%0D%0Acc:user@naver.com을 입력하고 제출을 누르면 다음과 같은 헤더부분이 포함된 이메일이 전송된다.

From:sender

cc:user@naver.com

 

 

---참고---

%0D == \r

%0A == \n

 

그러나 서버상의 문제로 인해 위의 문장은 먹히지 않는다. 따라서 burp suite를 이용하여(방법2) POST값을 직접 입력한 후 전송하면 된다.

 

 

 

 

방법2

 

Burp Suite를 이용해서 "email"을 다음과 같이 변경시킨 후 전송하면 다음과 같은 헤더부분이 포함된 메일이 전송된다.

From:sender                      -> 보내는이

cc:user@naver.com              -> 나의 메일주소(참조인이므로 메일을 받게됨)

 

 

 

 

 

 

 

 

 

 

서버상의 문제로 주석처리후 하드코딩 했기때문에 실제로 메일이 전송되지는 않고 그대신 패스워드가 화면에 바로 나타난다.

 

 

 

 

 

 

 

 

 

 

클리어

 

 

 

 

 

 

 

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

<webhacking.kr> - 42번  (0) 2018.02.01
<webhacking.kr> - 25번  (0) 2018.02.01
<webhacking.kr> - 38번  (0) 2018.01.31
<webhacking.kr> - 26번  (0) 2018.01.26
<webhacking.kr> - 24번  (0) 2018.01.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함